From b8ef1610e467763c506b09a3ea29523f2a6e9e54 Mon Sep 17 00:00:00 2001 From: Christophorus Dharma Winata <13521009@std.stei.itb.ac.id> Date: Wed, 3 Apr 2024 17:49:52 +0700 Subject: [PATCH] feat: toast feedbacks fix: transaction order fix: fab color --- .../exe_android/data/database/TransactionDao.kt | 2 +- .../pbd/tubes/exe_android/ui/login/LoginActivity.kt | 7 +++++++ .../pbd/tubes/exe_android/ui/scan/ScanFragment.kt | 13 +++++++------ .../ui/transactions/AddTransactionFragment.kt | 10 +++++++--- .../ui/transactions/TransactionsFragment.kt | 4 ++++ app/src/main/res/layout-land/activity_main.xml | 1 + 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt index 913f959..3f0de38 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt @@ -27,7 +27,7 @@ interface TransactionDao { @Query("SELECT * from transactions") fun getAllTransactions(): Flow<List<Transaction>> - @Query("SELECT * from transactions ORDER BY date DESC") + @Query("SELECT * from transactions ORDER BY id DESC") fun getAllTransactionsByRecent(): Flow<List<Transaction>> @Query("SELECT * from transactions WHERE date = :date") diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt b/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt index c6584b1..d92719f 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.EditText +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -57,7 +58,13 @@ class LoginActivity : AppCompatActivity() { startActivity(Intent(this@LoginActivity, MainActivity::class.java)) finish() } + Toast.makeText(baseContext, + "Log In Success!", + Toast.LENGTH_SHORT).show() } else { + Toast.makeText(baseContext, + "Log In Failed!", + Toast.LENGTH_SHORT).show() Log.d("MyApp", "Failed login (error response)") } } catch (e: Exception) { diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/scan/ScanFragment.kt b/app/src/main/java/pbd/tubes/exe_android/ui/scan/ScanFragment.kt index e0bb55e..f6d02c7 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/scan/ScanFragment.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/scan/ScanFragment.kt @@ -159,11 +159,7 @@ class ScanFragment : Fragment() { ContextCompat.checkSelfPermission( requireContext(), it) == PackageManager.PERMISSION_GRANTED } - override fun onDestroyView() { - super.onDestroyView() - _binding = null - cameraExecutor.shutdown() - } + private val activityResultLauncher = registerForActivityResult( ActivityResultContracts.RequestMultiplePermissions()) @@ -208,9 +204,14 @@ class ScanFragment : Fragment() { private const val FILENAME_FORMAT = "yyyy-MM-dd-HH-mm-ss-SSS" private val REQUIRED_PERMISSIONS = mutableListOf ( - "CAMERA" + "CAMERA" // FIXME(this should state list of permissions, not strings) ).apply { add("WRITE_EXTERNAL_STORAGE") }.toTypedArray() } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + cameraExecutor.shutdown() + } } \ No newline at end of file diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionFragment.kt b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionFragment.kt index ee4936c..62fc655 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionFragment.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionFragment.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.RadioButton +import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope @@ -109,8 +110,14 @@ class AddTransactionFragment : Fragment() { chooseCategory()!!, transactionLocation.editText!!.text.toString(), ) + Toast.makeText(requireContext(), + "Transaction ${transactionName.editText!!.text} is added", + Toast.LENGTH_SHORT).show() findNavController().navigate(R.id.navigation_transactions) } catch (e : NullPointerException) { + Toast.makeText(requireContext(), + "Error! $e", + Toast.LENGTH_SHORT).show() Log.e("NULL", "Input has null") } } @@ -118,9 +125,6 @@ class AddTransactionFragment : Fragment() { return root } - - - override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsFragment.kt b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsFragment.kt index 7d39319..3424269 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsFragment.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsFragment.kt @@ -5,6 +5,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager @@ -40,6 +41,9 @@ class TransactionsFragment : Fragment() { onDeleteClickListener = { Log.d("MyApp", "Delete button is clicked") viewModel.deleteItem(it) + Toast.makeText(requireContext(), + "Transaction ${it.name} has been deleted", + Toast.LENGTH_SHORT).show() }, onEditClickListener = { Log.d("MyApp", "Edit button is clicked") diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml index c3f3f22..7c8cd7b 100644 --- a/app/src/main/res/layout-land/activity_main.xml +++ b/app/src/main/res/layout-land/activity_main.xml @@ -30,6 +30,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_gravity="bottom|end" + android:backgroundTint="@color/design_default_color_primary" /> <fragment -- GitLab