Skip to content

Commit 96e21bf

Browse files
committed
Add ReportAct And Optimization
1 parent 69be44e commit 96e21bf

File tree

10 files changed

+136
-24
lines changed

10 files changed

+136
-24
lines changed

build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ dependencies {
4343
implementation 'com.intuit.sdp:sdp-android:1.0.6'
4444
implementation platform('com.google.firebase:firebase-bom:28.0.1')
4545
implementation 'com.google.firebase:firebase-analytics'
46-
// implementation 'com.github.samanzamani.persiandate:PersianDate:0.8'
47-
//noinspection GradleCompatible
46+
implementation 'com.github.GrenderG:Toasty:1.5.0'
4847
//noinspection GradleCompatible
4948
implementation 'com.android.support:recyclerview-v7:28.0.0'
50-
//noinspection GradleCompatible
5149
implementation 'com.github.tapadoo:alerter:7.1.0'
5250
//noinspection GradleCompatible
51+
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
52+
//noinspection GradleCompatible
5353
implementation 'com.android.support:cardview-v7:28.0.0'
5454
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
5555
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

release/app-release.apk

164 KB
Binary file not shown.

src/main/java/ir/maryamsh/financialmanagement/HomeAdapter.java

+23-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import android.content.Context;
44
import android.content.Intent;
5+
import android.content.SharedPreferences;
6+
import android.util.Log;
57
import android.view.LayoutInflater;
68
import android.view.View;
79
import android.view.ViewGroup;
@@ -12,11 +14,14 @@
1214
import java.util.ArrayList;
1315

1416
public class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.HomeAdapterholder> {
15-
Context context;
17+
Context context;
18+
int earn=0,co=0;
19+
SharedPreferences shPref;
1620
ArrayList<NewTransaction> newTransactions;
1721
public HomeAdapter(Context context, ArrayList<NewTransaction> newTransactions) {
1822
this.context = context;
1923
this.newTransactions = newTransactions;
24+
shPref = context.getSharedPreferences("shPref", context.MODE_PRIVATE);
2025
}
2126
@Override
2227
public HomeAdapterholder onCreateViewHolder(ViewGroup parent, int viewType) {
@@ -25,16 +30,19 @@ public HomeAdapterholder onCreateViewHolder(ViewGroup parent, int viewType) {
2530
}
2631
@Override
2732
public void onBindViewHolder(HomeAdapterholder holder, int position) {
28-
if(newTransactions.get(position).getType().contains("د")){
33+
String type="درآمد";
34+
if(newTransactions.get(position).getType().contains("1")){
2935
holder.img_home_items.setBackgroundResource(R.drawable.earning);
3036
holder.more_home.setBackgroundResource(R.drawable.earning);
37+
type="درآمد";
3138
}
3239
else{
3340
holder.img_home_items.setBackgroundResource(R.drawable.expenditures);
3441
holder.more_home.setBackgroundResource(R.drawable.expenditures);
42+
type="هزینه";
3543
}
3644
NewTransaction transaction = newTransactions.get(position);
37-
holder.txttitle.setText(transaction.getType());
45+
holder.txttitle.setText(type);
3846
holder.txtdes.setText(transaction.getDes());
3947
holder.txtdate.setText(transaction.getDate());
4048
holder.more_home.setOnClickListener(new View.OnClickListener() {
@@ -51,6 +59,18 @@ public void onClick(View v) {
5159
context.startActivity(i);
5260
}
5361
});
62+
if (newTransactions.get(position).getType().contains("1")) {
63+
earn += Integer.parseInt(newTransactions.get(position).getPrice());
64+
Log.i("tag", "daramad" + newTransactions);
65+
} else if(newTransactions.get(position).getType().contains("0")) {
66+
co += Integer.parseInt(newTransactions.get(position).getPrice());
67+
Log.i("tag", "hasineh" + co);
68+
}
69+
SharedPreferences.Editor editor = shPref.edit();
70+
editor.putString("co",String.valueOf(co));
71+
editor.putString("earn",String.valueOf(earn));
72+
editor.commit();
73+
5474
}
5575
@Override
5676
public int getItemCount() {

src/main/java/ir/maryamsh/financialmanagement/MainActivity.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ public boolean onItemSelect(int i) {
4040
case 2:
4141
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,new prof_fragment(MainActivity.this)).commit();
4242
break;
43-
43+
case 3:
44+
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,new report_fragement(MainActivity.this)).commit();
45+
break;
4446
}
4547
return true;
4648
}

src/main/java/ir/maryamsh/financialmanagement/add_fragment.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.view.LayoutInflater;
1313
import android.view.View;
1414
import android.view.ViewGroup;
15+
import android.widget.AdapterView;
1516
import android.widget.ArrayAdapter;
1617
import android.widget.Button;
1718
import android.widget.DatePicker;
@@ -56,6 +57,7 @@ public class add_fragment extends Fragment {
5657
SharedPreferences shPref;
5758
TextView tvtdate;
5859
Boolean ischange=false;
60+
int Position=0;
5961
public add_fragment(Context context){
6062
this.context=context;
6163
}
@@ -74,6 +76,17 @@ public void onClick(View v) {
7476
ShowDateOicker();
7577
}
7678
});
79+
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
80+
@Override
81+
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
82+
Position=position;
83+
}
84+
85+
@Override
86+
public void onNothingSelected(AdapterView<?> parent) {
87+
88+
}
89+
});
7790
AddDate.setOnClickListener(new View.OnClickListener() {
7891
@RequiresApi(api = Build.VERSION_CODES.O)
7992
@Override
@@ -156,7 +169,7 @@ private void InsertData() {
156169
String email=shPref.getString("email", null);
157170
String date=tvtdate.getText().toString().trim();
158171
String id = database.collection("transaction").document().getId();
159-
newTransaction=new NewTransaction(email,TxtPrice.getText().toString().trim(),date,TxtDes.getText().toString().trim(),spinner.getSelectedItem().toString(),id);
172+
newTransaction=new NewTransaction(email,TxtPrice.getText().toString().trim(),date,TxtDes.getText().toString().trim(),String.valueOf(Position),id);
160173
database.collection("transaction")
161174
.document().set(newTransaction).addOnCompleteListener(new OnCompleteListener<Void>() {
162175
@Override

src/main/java/ir/maryamsh/financialmanagement/prof_fragment.java

+1-7
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,7 @@ public void afterTextChanged(Editable s) {
117117
public void onClick(View v) {
118118
if (ImgEdit.getTag() == "0") {
119119
TxtName.setEnabled(true);
120-
TxtPass.setEnabled(true);
121-
TxtEmail.setEnabled(true);
122-
ShowAlert("حالت ویرایش فعال شد (:",R.drawable.ic_edit,R.color.green);
120+
ShowAlert("حالت ویرایش نام فعال شد (:",R.drawable.ic_edit,R.color.green);
123121
ImgEdit.setImageResource(R.drawable.ic_done);
124122
ImgEdit.setTag("1");
125123
}
@@ -187,10 +185,6 @@ private boolean validata() {
187185
ShowAlert("ایمیل معتبر نیست",R.drawable.ic_prof,R.color.red);
188186
return false;
189187
}
190-
else if(!(matcherpass.matches())){
191-
ShowAlert("رمز معتبر نیست",R.drawable.ic_prof,R.color.red);
192-
return false;
193-
}
194188
else if(TxtEmail.getText().toString().trim().isEmpty() || TxtPass.getText().toString().trim().isEmpty() || TxtName.getText().toString().trim().isEmpty()){
195189
ShowAlert("لطفا فیلد ها را کامل پر کنید",R.drawable.ic_prof,R.color.red);
196190
return false;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package ir.maryamsh.financialmanagement;
2+
3+
import android.content.Context;
4+
import android.content.SharedPreferences;
5+
import android.graphics.Color;
6+
import android.graphics.Typeface;
7+
import android.os.Bundle;
8+
import android.view.LayoutInflater;
9+
import android.view.View;
10+
import android.view.ViewGroup;
11+
12+
import androidx.annotation.NonNull;
13+
import androidx.annotation.Nullable;
14+
import androidx.fragment.app.Fragment;
15+
16+
import com.github.mikephil.charting.charts.BarChart;
17+
import com.github.mikephil.charting.charts.PieChart;
18+
import com.github.mikephil.charting.components.XAxis;
19+
import com.github.mikephil.charting.data.BarData;
20+
import com.github.mikephil.charting.data.BarDataSet;
21+
import com.github.mikephil.charting.data.BarEntry;
22+
import com.github.mikephil.charting.data.PieData;
23+
import com.github.mikephil.charting.data.PieDataSet;
24+
import com.github.mikephil.charting.data.PieEntry;
25+
import com.github.mikephil.charting.utils.ColorTemplate;
26+
import com.google.android.material.transition.MaterialSharedAxis;
27+
28+
import java.util.ArrayList;
29+
30+
public class report_fragement extends Fragment {
31+
View view;
32+
Context context;
33+
SharedPreferences shPrefs;
34+
PieChart pieChart;
35+
public report_fragement(Context context){
36+
this.context=context;
37+
}
38+
39+
@Override
40+
public void onCreate( Bundle savedInstanceState) {
41+
super.onCreate(savedInstanceState);
42+
}
43+
44+
@Override
45+
public View onCreateView( LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
46+
view =inflater.inflate(R.layout.report_fragment,container,false);
47+
SharedPreferences shPref = context.getSharedPreferences("shPref", context.MODE_PRIVATE);
48+
String co=shPref.getString("co", "12");
49+
String earn=shPref.getString("earn", "12");
50+
pieChart=view.findViewById(R.id.piechart);
51+
ArrayList<PieEntry> pieEntries=new ArrayList<>();
52+
pieEntries.add(new PieEntry(Integer.parseInt(co),"هزینه"));
53+
pieEntries.add(new PieEntry(Integer.parseInt(earn),"درآمد"));
54+
pieEntries.add(new PieEntry(Integer.parseInt(earn) - Integer.parseInt(co),"باقی مانده"));
55+
56+
PieDataSet pieDataSet=new PieDataSet(pieEntries,"عنوان");
57+
58+
pieDataSet.setColors(ColorTemplate.MATERIAL_COLORS);
59+
pieDataSet.setValueTextColor(Color.BLACK);
60+
pieDataSet.setValueTextSize(16f);
61+
pieDataSet.setValueTypeface(Typeface.createFromAsset(context.getAssets(), "kalameh_regular.ttf"));
62+
63+
64+
PieData pieData=new PieData(pieDataSet);
65+
pieChart.setData(pieData);
66+
pieChart.getDescription().setEnabled(false);
67+
pieChart.setCenterText("گزارش مالی");
68+
pieChart.setCenterTextTypeface(Typeface.createFromAsset(context.getAssets(), "kalameh_regular.ttf"));
69+
pieChart.animate();
70+
return view;
71+
}
72+
}
+15-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_width="match_parent"
44
android:background="#EEEEEE"
5+
android:orientation="vertical"
56
android:layout_height="match_parent">
6-
<TextView
7-
android:layout_width="wrap_content"
8-
android:layout_height="wrap_content"
9-
android:layout_centerInParent="true"
10-
android:text="report "/>
11-
</RelativeLayout>
7+
<include
8+
layout="@layout/toolbar"
9+
android:layout_alignParentTop="true"
10+
android:layout_width="match_parent"
11+
android:layout_height="?attr/actionBarSize"
12+
/>
13+
<com.github.mikephil.charting.charts.PieChart
14+
android:layout_width="match_parent"
15+
android:layout_height="match_parent"
16+
android:padding="@dimen/_23sdp"
17+
android:id="@+id/piechart"
18+
/>
19+
</LinearLayout>

src/main/res/layout/toolbar.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<TextView
77
android:layout_width="wrap_content"
88
android:layout_height="wrap_content"
9-
android:text="گودزیلا خوش آمدید"
9+
android:text=" خوش آمدید"
1010
android:textColor="#fff"
1111
android:fontFamily="@font/kalameh_bold"
1212
android:layout_centerInParent="true"

src/main/res/menu/bottom_menu.xml

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,8 @@
1414
android:id="@+id/prof_item"
1515
android:title="پروفایل"
1616
android:icon="@drawable/ic_profile_menu"/>
17-
17+
<item
18+
android:id="@+id/repot_item"
19+
android:title="گزارش"
20+
android:icon="@drawable/ic_report"/>
1821
</menu>

0 commit comments

Comments
 (0)