diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 134140e48207243b53b1849046752bd230022e5b..09c062799ef54a9e81ecb4bc85c2f933e658a260 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,11 +2,11 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> - <uses-permission android:name="android.permission.INTERNET"/> - <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> - <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> + <uses-permission android:name="android.permission.INTERNET" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:name=".BondowowoApp" @@ -22,7 +22,11 @@ <activity android:name=".MainActivity" android:exported="false" - android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme.NoActionBar" /> + <activity + android:name=".ui.transaction.TransactionActivity" + android:exported="false" + android:theme="@style/AppTheme.NoActionBar" /> <activity android:name=".LoginActivity" android:exported="true" diff --git a/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt b/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt index c52591accbab03846ed52308e2396d774068895a..b3bf28ecf14175afe24cd093bbcdd92be8ac813d 100644 --- a/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt +++ b/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt @@ -23,12 +23,12 @@ class BondowowoApp : Application() { } override fun onTokenInvalid() { - val intent = Intent(context, LoginActivity::class.java) - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK - context.startActivity(intent) - if (context is Activity) { - context.finish() - } +// val intent = Intent(context, LoginActivity::class.java) +// intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK +// context.startActivity(intent) +// if (context is Activity) { +// context.finish() +// } } override fun onNetworkError() { diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt index 1249c07397ce1cc4ac6003679346cc8e22040369..1c5bb6d557559979b1bd78dfa4e37e928cc4665c 100644 --- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt +++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt @@ -3,32 +3,35 @@ package com.atm.bondowowo.ui.transaction import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.atm.bondowowo.MainActivity import com.atm.bondowowo.R -import com.atm.bondowowo.ui.transaction.TransactionFragment.TransactionInteractionListener -class TransactionActivity : AppCompatActivity(), TransactionInteractionListener { +class TransactionActivity : AppCompatActivity(), TransactionInputFragment.TransactionInputListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.fragment_transaction) + setContentView(R.layout.activity_transaction) - val fragment = TransactionFragment() - fragment.setListener(this) + val transactionInputFragment = TransactionInputFragment() + + // Get the id passed from the intent + val id = intent.getIntExtra("id", -1) + + // Pass the id to the fragment + val args = Bundle().apply { + putInt("id", id) + } + transactionInputFragment.arguments = args + + transactionInputFragment.setListener(this) supportFragmentManager.beginTransaction() - .replace(R.id.transactionFragment, fragment) + .add(R.id.fragment_container, transactionInputFragment) .commit() } - override fun onTransactionItemClick(transactionId: Int?) { - val intent = Intent(this, TransactionInputFragment::class.java) - intent.putExtra("id", transactionId) - startActivity(intent) - } - - override fun onAddTransactionButtonClick() { - // Navigasi ke TransactionInputFragment - val intent = Intent(this, TransactionInputFragment::class.java) - startActivity(intent) + override fun onTransactionSubmitted() { + startActivity(Intent(this, MainActivity::class.java)) + finish() } } diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt index 5029176ffec9b6f68c60a5372a4915638f6607fb..41cf1c5c2db8ea686a7729b483d2aa315a0d3f77 100644 --- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt +++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt @@ -2,6 +2,7 @@ package com.atm.bondowowo.ui.transaction import android.app.AlertDialog import android.content.DialogInterface +import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -17,13 +18,7 @@ import com.atm.bondowowo.data.entity.Transaction import com.google.android.material.floatingactionbutton.FloatingActionButton - class TransactionFragment : Fragment() { - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { - return inflater.inflate(R.layout.fragment_transaction, container, false) - } private lateinit var recyclerView: RecyclerView private lateinit var fab: FloatingActionButton @@ -37,9 +32,6 @@ class TransactionFragment : Fragment() { fun onAddTransactionButtonClick() } - fun setListener(listener: TransactionInteractionListener) { - this.listener = listener - } override fun onCreateView( inflater: LayoutInflater, @@ -58,17 +50,20 @@ class TransactionFragment : Fragment() { override fun onClick(position: Int) { val dialog = AlertDialog.Builder(requireContext()) dialog.setTitle(list[position].nama) - dialog.setItems(R.array.transaction_option, - DialogInterface.OnClickListener { dialog, which -> - if (which == 0) { - listener.onTransactionItemClick(list[position].id) - } else if (which == 1) { - database.transactionDao().delete(list[position]) - getData() - } else { - dialog.dismiss() - } - }) + dialog.setItems(R.array.transaction_option + ) { dialog, which -> + if (which == 0) { + val intent = + Intent(requireContext(), TransactionActivity::class.java) + intent.putExtra("id", list[position].id) + startActivity(intent) + } else if (which == 1) { + database.transactionDao().delete(list[position]) + getData() + } else { + dialog.dismiss() + } + } val dialogView = dialog.create() dialogView.show() } @@ -81,7 +76,7 @@ class TransactionFragment : Fragment() { ) fab.setOnClickListener { - listener.onAddTransactionButtonClick() + startActivity(Intent(requireContext(), TransactionActivity::class.java)) } return view diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt index 92f03587636e2c9b1d8a0d16bf3c2b8572b6ad18..4ecbf1f361e9c6b6fe717426b67a2f6a5172b1e3 100644 --- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt +++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt @@ -1,6 +1,8 @@ package com.atm.bondowowo.ui.transaction +import android.content.Intent import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -9,6 +11,7 @@ import android.widget.EditText import android.widget.Toast import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController +import com.atm.bondowowo.MainActivity import com.atm.bondowowo.R import com.atm.bondowowo.data.AppDatabase import com.atm.bondowowo.data.entity.Transaction @@ -21,8 +24,17 @@ class TransactionInputFragment : Fragment() { private lateinit var lokasi_transaksi: EditText private lateinit var btnSave: Button private lateinit var database: AppDatabase + private lateinit var listener: TransactionInputListener - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + interface TransactionInputListener { + fun onTransactionSubmitted() + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { val view = inflater.inflate(R.layout.fragment_transaction_input, container, false) nama_transaksi = view.findViewById(R.id.nama_transaksi) @@ -68,7 +80,7 @@ class TransactionInputFragment : Fragment() { lokasi_transaksi.text.toString() ) ) - findNavController().navigate(R.id.action_transactionInputFragment_to_transactionFragment) + listener.onTransactionSubmitted() } } else { Toast.makeText(requireContext(), "Input invalid", Toast.LENGTH_SHORT).show() @@ -77,4 +89,8 @@ class TransactionInputFragment : Fragment() { return view } + + fun setListener(listener: TransactionInputListener) { + this.listener = listener + } } diff --git a/app/src/main/res/layout/activity_transaction.xml b/app/src/main/res/layout/activity_transaction.xml new file mode 100644 index 0000000000000000000000000000000000000000..35e6cbbe24299f460262a5be1d9c819b1cc66a45 --- /dev/null +++ b/app/src/main/res/layout/activity_transaction.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/fragment_container" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <!-- Other layout elements for the Activity --> +</FrameLayout> \ No newline at end of file