From 72f4821627518c37c3e27ef130fe07c4ed3c745b Mon Sep 17 00:00:00 2001 From: Aditya Pulipaka Date: Wed, 6 Jul 2022 15:05:43 -0500 Subject: [PATCH] Add files via upload --- .../budgeteer/ExampleInstrumentedTest.java | 26 ++ src/main/AndroidManifest.xml | 30 ++ .../pulipakaa24/budgeteer/BudgetActivity.java | 130 +++++++ .../pulipakaa24/budgeteer/BudgetAdapter.java | 79 +++++ .../budgeteer/BudgetcreateActivity.java | 54 +++ .../pulipakaa24/budgeteer/MainActivity.java | 192 ++++++++++ .../budgeteer/ResetConfirmActivity.java | 30 ++ .../pulipakaa24/budgeteer/Transaction.java | 20 ++ .../budgeteer/TransactionActivity.java | 67 ++++ .../pulipakaa24/budgeteer/TransactionDao.java | 27 ++ .../budgeteer/TransactionDatabase.java | 10 + .../drawable-v24/ic_launcher_foreground.xml | 30 ++ src/main/res/drawable/border.xml | 5 + .../res/drawable/ic_launcher_background.xml | 170 +++++++++ src/main/res/layout/activity_budget.xml | 78 +++++ src/main/res/layout/activity_budgetcreate.xml | 69 ++++ src/main/res/layout/activity_main.xml | 327 ++++++++++++++++++ src/main/res/layout/activity_resetconfirm.xml | 50 +++ src/main/res/layout/activity_transaction.xml | 82 +++++ src/main/res/layout/transaction_row.xml | 35 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3593 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5339 bytes src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2636 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3388 bytes src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7472 bytes src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11873 bytes src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16570 bytes src/main/res/values-night/themes.xml | 16 + src/main/res/values/colors.xml | 10 + src/main/res/values/strings.xml | 3 + src/main/res/values/themes.xml | 16 + .../budgeteer/ExampleUnitTest.java | 17 + 37 files changed, 1583 insertions(+) create mode 100644 src/androidTest/java/com/pulipakaa24/budgeteer/ExampleInstrumentedTest.java create mode 100644 src/main/AndroidManifest.xml create mode 100644 src/main/java/com/pulipakaa24/budgeteer/BudgetActivity.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/BudgetAdapter.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/BudgetcreateActivity.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/MainActivity.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/ResetConfirmActivity.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/Transaction.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/TransactionActivity.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/TransactionDao.java create mode 100644 src/main/java/com/pulipakaa24/budgeteer/TransactionDatabase.java create mode 100644 src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src/main/res/drawable/border.xml create mode 100644 src/main/res/drawable/ic_launcher_background.xml create mode 100644 src/main/res/layout/activity_budget.xml create mode 100644 src/main/res/layout/activity_budgetcreate.xml create mode 100644 src/main/res/layout/activity_main.xml create mode 100644 src/main/res/layout/activity_resetconfirm.xml create mode 100644 src/main/res/layout/activity_transaction.xml create mode 100644 src/main/res/layout/transaction_row.xml create mode 100644 src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src/main/res/values-night/themes.xml create mode 100644 src/main/res/values/colors.xml create mode 100644 src/main/res/values/strings.xml create mode 100644 src/main/res/values/themes.xml create mode 100644 src/test/java/com/pulipakaa24/budgeteer/ExampleUnitTest.java diff --git a/src/androidTest/java/com/pulipakaa24/budgeteer/ExampleInstrumentedTest.java b/src/androidTest/java/com/pulipakaa24/budgeteer/ExampleInstrumentedTest.java new file mode 100644 index 0000000..498e535 --- /dev/null +++ b/src/androidTest/java/com/pulipakaa24/budgeteer/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.pulipakaa24.budgeteer; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.pulipakaa24.budgeteer", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml new file mode 100644 index 0000000..184ba58 --- /dev/null +++ b/src/main/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/pulipakaa24/budgeteer/BudgetActivity.java b/src/main/java/com/pulipakaa24/budgeteer/BudgetActivity.java new file mode 100644 index 0000000..7f1a34d --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/BudgetActivity.java @@ -0,0 +1,130 @@ +package com.pulipakaa24.budgeteer; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.util.List; + +import static com.pulipakaa24.budgeteer.MainActivity.database; +import static com.pulipakaa24.budgeteer.MainActivity.shared_prefs; +import static com.pulipakaa24.budgeteer.TransactionActivity.decimalFormat; + +public class BudgetActivity extends AppCompatActivity { + public static BudgetAdapter adapter; + public static String category; + Context context; + private List transactions; + private TextView categoryTotal; + private TextView budgetAmount; + private float total; + + + @SuppressLint("SetTextI18n") + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_budget); + + TextView categoryName = findViewById(R.id.category_name); + categoryTotal = findViewById(R.id.category_amount); + RecyclerView recyclerView = findViewById(R.id.category_recyclerView); + budgetAmount = findViewById(R.id.budget_amount); + + context = this; + + Intent intent = getIntent(); + category = intent.getStringExtra("category"); + categoryName.setText(category); + + transactions = database.transactionDao().getAll(category); + total = 0; + + for (int i = 0; i < transactions.size(); i++) { + total += transactions.get(i).amount; + } + + categoryTotal.setText("$" + decimalFormat.format(total)); + budgetButton(); + + adapter = new BudgetAdapter(); + RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this); + recyclerView.setLayoutManager(layoutManager); + recyclerView.setAdapter(adapter); + + FloatingActionButton addTransac = findViewById(R.id.add_transac_button); + addTransac.setOnClickListener(v -> { + int id = (int) database.transactionDao().create(intent.getStringExtra("category")); + adapter.reload(); + + Context context = v.getContext(); + Intent intent1 = new Intent(context, TransactionActivity.class); + intent1.putExtra("id", id); + context.startActivity(intent1); + }); + } + + @SuppressLint("SetTextI18n") + private void budgetButton () { + SharedPreferences sharedPreferences = getSharedPreferences(shared_prefs, MODE_PRIVATE); + float f = sharedPreferences.getFloat(category, 0.00f); + if (f != 0) { + budgetAmount.setText("Budget $" + decimalFormat.format(f)); + if (total > f) { + categoryTotal.setTextColor(Color.RED); + } + + else { + categoryTotal.setTextColor(Color.GREEN); + } + } + + else { + budgetAmount.setText("Add Budget"); + categoryTotal.setTextColor(Color.GREEN); + } + + budgetAmount.setOnClickListener(v -> { + Context context = v.getContext(); + Intent intent1 = new Intent(context, BudgetcreateActivity.class); + intent1.putExtra("category", category); + intent1.putExtra("amount", f); + context.startActivity(intent1); + }); + } + + @Override + protected void onResume() { + super.onResume(); + adapter.reload(); + + transactions = database.transactionDao().getAll(category); + total = 0; + + for (int i = 0; i < transactions.size(); i++) { + total += transactions.get(i).amount; + } + + final String total1 = "$" + decimalFormat.format(total); + + categoryTotal.setText(total1); + + budgetButton(); + } + + public void back(View view) { + finish(); + } +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/BudgetAdapter.java b/src/main/java/com/pulipakaa24/budgeteer/BudgetAdapter.java new file mode 100644 index 0000000..9b90a96 --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/BudgetAdapter.java @@ -0,0 +1,79 @@ +package com.pulipakaa24.budgeteer; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; +import java.util.List; + +import static com.pulipakaa24.budgeteer.BudgetActivity.category; +import static com.pulipakaa24.budgeteer.MainActivity.database; +import static com.pulipakaa24.budgeteer.TransactionActivity.decimalFormat; + +public class BudgetAdapter extends RecyclerView.Adapter { + + public static class TransactionViewHolder extends RecyclerView.ViewHolder { + public RelativeLayout containerView; + public TextView transacNameView; + public TextView transacAmountView; + + public TransactionViewHolder(@NonNull View view) { + super(view); + this.containerView = view.findViewById(R.id.transaction_row); + this.transacAmountView = view.findViewById(R.id.transacAmountView); + this.transacNameView = view.findViewById(R.id.transacNameView); + + this.containerView.setOnClickListener(v -> { + Context context = v.getContext(); + Transaction transaction = (Transaction) containerView.getTag(); + Intent intent = new Intent(v.getContext(), TransactionActivity.class); + intent.putExtra("id", transaction.id); + intent.putExtra("name", transaction.transacName); + intent.putExtra("amount", transaction.amount); + + context.startActivity(intent); + }); + } + } + + public static List transactions = new ArrayList<>(); + + @NonNull + @Override + public TransactionViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.transaction_row, parent, false); + + return new TransactionViewHolder(view); + } + + @SuppressLint("SetTextI18n") + @Override + public void onBindViewHolder(@NonNull BudgetAdapter.TransactionViewHolder holder, int position) { + Transaction current = transactions.get(position); + holder.containerView.setTag(current); + holder.transacNameView.setText(current.transacName); + holder.transacAmountView.setText("$" + decimalFormat.format(current.amount)); + } + + @Override + public int getItemCount() { + return transactions.size(); + } + + public void reload() { + notifyDataSetChanged(); + transactions = database.transactionDao().getAll(category); + notifyDataSetChanged(); + } + +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/BudgetcreateActivity.java b/src/main/java/com/pulipakaa24/budgeteer/BudgetcreateActivity.java new file mode 100644 index 0000000..0b4c3b4 --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/BudgetcreateActivity.java @@ -0,0 +1,54 @@ +package com.pulipakaa24.budgeteer; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import static com.pulipakaa24.budgeteer.MainActivity.shared_prefs; +import static com.pulipakaa24.budgeteer.TransactionActivity.decimalFormat; + +public class BudgetcreateActivity extends AppCompatActivity { + private EditText budgetEdit; + private View v; + private String category; + @SuppressLint("SetTextI18n") + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_budgetcreate); + budgetEdit = findViewById(R.id.budgetEdit); + + Intent intent = getIntent(); + category = intent.getStringExtra("category"); + float f = intent.getFloatExtra("amount", 0.00f); + if (f != 0) { + budgetEdit.setText(decimalFormat.format(f)); + } + } + + public void back(View view) { + v = view; + SharedPreferences sharedPreferences = getSharedPreferences(shared_prefs, MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + if (!budgetEdit.getText().toString().equals("")) { + editor.putFloat(category, Float.parseFloat(budgetEdit.getText().toString().replaceAll("\\$", ""))); + } + else { + editor.putFloat(category, 0.00f); + } + editor.apply(); + finish(); + } + + @Override + protected void onPause() { + super.onPause(); + back(v); + } +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/MainActivity.java b/src/main/java/com/pulipakaa24/budgeteer/MainActivity.java new file mode 100644 index 0000000..a74f4c8 --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/MainActivity.java @@ -0,0 +1,192 @@ +package com.pulipakaa24.budgeteer; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.room.Room; + +import java.util.List; + +import static com.pulipakaa24.budgeteer.TransactionActivity.decimalFormat; + +public class MainActivity extends AppCompatActivity { + public static TransactionDatabase database; + public static final String shared_prefs = "SHARED_PREFS"; + public static final String total_budget = "TOTAL_BUDGET"; + public static final String fbudget = "Food and Drink"; + public static final String gbudget = "Grocery"; + public static final String ebudget = "Entertainment"; + public static final String tbudget = "Travel"; + public static final String hebudget = "Health"; + public static final String cbudget = "Clothing"; + public static final String ubudget = "Utilities"; + public static final String hobudget = "Home"; + public static final String obudget = "Other"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + + + database = Room + .databaseBuilder(getApplicationContext(), TransactionDatabase.class, "transactions") + .allowMainThreadQueries() + .build(); + + init(); + budgetButton(); + } + + @SuppressLint("SetTextI18n") + private void budgetButton() { + SharedPreferences sharedPreferences = getSharedPreferences(shared_prefs, MODE_PRIVATE); + TextView totalBudget = findViewById(R.id.budgetText); + + if (sharedPreferences.getFloat(total_budget, 0.00f) == 0.0) { + totalBudget.setText("Add Total Budget"); + } + + else { + totalBudget.setText("Budget $" + decimalFormat.format( + sharedPreferences.getFloat(total_budget, 0.00f))); + } + + totalBudget.setOnClickListener(v -> { + Context context = v.getContext(); + Intent intent = new Intent(context, BudgetcreateActivity.class); + intent.putExtra("category", total_budget); + intent.putExtra("amount", sharedPreferences.getFloat(total_budget, 0.00f)); + context.startActivity(intent); + }); + } + + private void init () { + List transactions = database.transactionDao().getEverything(); + TextView totalView = findViewById(R.id.totalAmountText); + SharedPreferences sharedPreferences = getSharedPreferences(shared_prefs, MODE_PRIVATE); + float f = sharedPreferences.getFloat(total_budget, 0.00f); + checkBudget(totalView, setTotalString(transactions, totalView), f); + TextView food = findViewById(R.id.foodAmountView); + TextView entert = findViewById(R.id.entertAmountView); + TextView trav = findViewById(R.id.TravelAmountView); + TextView health = findViewById(R.id.HealthAmountView); + TextView cloth = findViewById(R.id.clothingAmountView); + TextView util = findViewById(R.id.utilAmountView); + TextView home = findViewById(R.id.homeAmountView); + TextView other = findViewById(R.id.otherAmountView); + TextView groc = findViewById(R.id.GroceriesAmountView); + + float foodDrink = sharedPreferences.getFloat(fbudget, 0.00f); + float entertBud = sharedPreferences.getFloat(ebudget, 0.00f); + float travelBud = sharedPreferences.getFloat(tbudget, 0.00f); + float healthBud = sharedPreferences.getFloat(hebudget, 0.00f); + float clothBud = sharedPreferences.getFloat(cbudget, 0.00f); + float utilBud = sharedPreferences.getFloat(ubudget, 0.00f); + float homeBud = sharedPreferences.getFloat(hobudget, 0.00f); + float otherBud = sharedPreferences.getFloat(obudget, 0.00f); + float grocBud = sharedPreferences.getFloat(gbudget, 0.00f); + + List foodDrinkTransac = database.transactionDao().getAll("Food and Drink"); + checkBudget(food, setTotalString(foodDrinkTransac, food), foodDrink); + List entertTransac = database.transactionDao().getAll("Entertainment"); + checkBudget(entert, setTotalString(entertTransac, entert), entertBud); + List travelTransac = database.transactionDao().getAll("Travel"); + checkBudget(trav, setTotalString(travelTransac, trav), travelBud); + List healthTransac = database.transactionDao().getAll("Health"); + checkBudget(health, setTotalString(healthTransac, health), healthBud); + List clothingTransac = database.transactionDao().getAll("Clothing"); + checkBudget(cloth, setTotalString(clothingTransac, cloth), clothBud); + List utilityTransac = database.transactionDao().getAll("Utilities"); + checkBudget(util, setTotalString(utilityTransac, util), utilBud); + List homeTransac = database.transactionDao().getAll("Home"); + checkBudget(home, setTotalString(homeTransac, home), homeBud); + List otherTransac = database.transactionDao().getAll("Other"); + checkBudget(other, setTotalString(otherTransac, other), otherBud); + List groceryTransac = database.transactionDao().getAll("Grocery"); + checkBudget(groc, setTotalString(groceryTransac, groc), grocBud); + } + + public static void checkBudget (TextView t, float f, float y) { + if (f > y & y != 0) { + t.setTextColor(Color.RED); + } + + else { + t.setTextColor(Color.GREEN); + } + } + + @SuppressLint("SetTextI18n") + private float setTotalString (List transactions, TextView textView) { + float total = 0; + for (int i = 0; i < transactions.size(); i++) { + total += transactions.get(i).amount; + } + textView.setText("$" + decimalFormat.format(total)); + return total; + } + + @SuppressLint("SetTextI18n") + @Override + protected void onResume() { + super.onResume(); + init(); + budgetButton(); + } + + private void open(Context context, String category) { + Intent intent = new Intent(context, BudgetActivity.class); + intent.putExtra("category", category); + context.startActivity(intent); + } + + public void openFoodDrink(View view) { + open(view.getContext(), fbudget); + } + + public void openEntertainment(View view) { + open(view.getContext(), ebudget); + } + + public void openGrocery(View view) { + open(view.getContext(), gbudget); + } + + public void openTravel(View view) { + open(view.getContext(), tbudget); + } + + public void openHealth(View view) { + open(view.getContext(), hebudget); + } + + public void openClothing(View view) { + open(view.getContext(), cbudget); + } + + public void openUtilities(View view) { + open(view.getContext(), ubudget); + } + + public void openHome(View view) { + open(view.getContext(), hobudget); + } + + public void openOther(View view) { + open(view.getContext(), obudget); + } + + public void openReset(View view) { + Context context = view.getContext(); + context.startActivity(new Intent(context, ResetConfirmActivity.class)); + } +} \ No newline at end of file diff --git a/src/main/java/com/pulipakaa24/budgeteer/ResetConfirmActivity.java b/src/main/java/com/pulipakaa24/budgeteer/ResetConfirmActivity.java new file mode 100644 index 0000000..69d7abd --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/ResetConfirmActivity.java @@ -0,0 +1,30 @@ +package com.pulipakaa24.budgeteer; + +import android.graphics.Color; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import static com.pulipakaa24.budgeteer.MainActivity.database; + +public class ResetConfirmActivity extends AppCompatActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_resetconfirm); + TextView sure = findViewById(R.id.sure); + sure.setTextColor(Color.RED); + } + + public void yes(View view) { + database.transactionDao().deleteAll(); + finish(); + } + + public void no(View view) { + finish(); + } +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/Transaction.java b/src/main/java/com/pulipakaa24/budgeteer/Transaction.java new file mode 100644 index 0000000..a67111b --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/Transaction.java @@ -0,0 +1,20 @@ +package com.pulipakaa24.budgeteer; + +import androidx.room.ColumnInfo; +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +@Entity(tableName = "transactions") +public class Transaction { + @PrimaryKey + public int id; + + @ColumnInfo(name = "category") + public String category; + + @ColumnInfo(name = "transacName") + public String transacName; + + @ColumnInfo(name = "amount") + public float amount; +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/TransactionActivity.java b/src/main/java/com/pulipakaa24/budgeteer/TransactionActivity.java new file mode 100644 index 0000000..e3477ad --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/TransactionActivity.java @@ -0,0 +1,67 @@ +package com.pulipakaa24.budgeteer; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import java.text.DecimalFormat; + +import static com.pulipakaa24.budgeteer.BudgetActivity.adapter; +import static com.pulipakaa24.budgeteer.MainActivity.database; + +public class TransactionActivity extends AppCompatActivity { + private EditText nameEdit; + private EditText amountEdit; + public static DecimalFormat decimalFormat = new DecimalFormat("0.00"); + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_transaction); + nameEdit = findViewById(R.id.transacNameEdit); + amountEdit = findViewById(R.id.transacAmountEdit); + + Intent intent = getIntent(); + nameEdit.setText(intent.getStringExtra("name")); + float amount = intent.getFloatExtra("amount", 0.00f); + if (amount != 0) { + amountEdit.setText(decimalFormat.format(amount)); + } + } + + @Override + protected void onPause() { + super.onPause(); + + Intent intent = getIntent(); + int id = intent.getIntExtra("id", 0); + + String s = amountEdit.getText().toString(); + float f; + + if (!s.equals("")) { + f = Float.parseFloat(s); + } + + else { + f = 0.00f; + } + + database.transactionDao().save(nameEdit.getText().toString(), f, id); + adapter.reload(); + } + + public void delete(View view) { + database.transactionDao().delete(getIntent().getIntExtra("id", 0)); + finish(); + } + + public void back(View view) { + onPause(); + finish(); + } +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/TransactionDao.java b/src/main/java/com/pulipakaa24/budgeteer/TransactionDao.java new file mode 100644 index 0000000..9ad8a37 --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/TransactionDao.java @@ -0,0 +1,27 @@ +package com.pulipakaa24.budgeteer; + +import androidx.room.Dao; +import androidx.room.Query; + +import java.util.List; + +@Dao +public interface TransactionDao { + @Query("Insert into transactions (category, transacName, amount) values (:category, '', 0)") + long create(String category); + + @Query("select * from transactions where category = :category") + List getAll(String category); + + @Query("update transactions set transacName = :transacName, amount = :amount where id = :id") + void save(String transacName, float amount, int id); + + @Query("delete from transactions where id = :id") + void delete(int id); + + @Query("select * from transactions") + List getEverything(); + + @Query("delete from transactions") + void deleteAll(); +} diff --git a/src/main/java/com/pulipakaa24/budgeteer/TransactionDatabase.java b/src/main/java/com/pulipakaa24/budgeteer/TransactionDatabase.java new file mode 100644 index 0000000..d3c8848 --- /dev/null +++ b/src/main/java/com/pulipakaa24/budgeteer/TransactionDatabase.java @@ -0,0 +1,10 @@ +package com.pulipakaa24.budgeteer; + + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +@Database(entities = {Transaction.class}, version = 1) +public abstract class TransactionDatabase extends RoomDatabase { + public abstract TransactionDao transactionDao(); +} diff --git a/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..cc14f03 --- /dev/null +++ b/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/res/drawable/border.xml b/src/main/res/drawable/border.xml new file mode 100644 index 0000000..fa9ab05 --- /dev/null +++ b/src/main/res/drawable/border.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/res/drawable/ic_launcher_background.xml b/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..a4f78de --- /dev/null +++ b/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/res/layout/activity_budget.xml b/src/main/res/layout/activity_budget.xml new file mode 100644 index 0000000..2073a61 --- /dev/null +++ b/src/main/res/layout/activity_budget.xml @@ -0,0 +1,78 @@ + + + +