diff --git a/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt b/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt index e37a2be9ad8340150ce60768fbc2e38e4104e2f0..b0ba205fba51770a6adc4809d3bc5390729123a1 100644 --- a/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt +++ b/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt @@ -13,13 +13,14 @@ import androidx.recyclerview.widget.RecyclerView import com.example.bondoman.R import com.example.bondoman.activities.EditTransaction import com.example.bondoman.entities.Transaction +import com.example.bondoman.lib.SecurePreferences import com.example.bondoman.viewModels.TransactionsViewModel import java.text.SimpleDateFormat import java.time.LocalDate import java.time.format.DateTimeFormatter import java.util.Locale -class TransactionListAdapter(private val transactions : TransactionsViewModel, private val startEditIntent: (Intent) -> Unit) : ListAdapter<Transaction, TransactionListAdapter.TransactionViewHolder>(TransactionComparator()) { +class TransactionListAdapter(private val transactions : TransactionsViewModel, private val startEditIntent: (Intent) -> Unit, securePreferences: SecurePreferences) : ListAdapter<Transaction, TransactionListAdapter.TransactionViewHolder>(TransactionComparator()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TransactionViewHolder { return TransactionViewHolder.create(parent, transactions, startEditIntent) diff --git a/app/src/main/java/com/example/bondoman/fragments/GrafFragment.kt b/app/src/main/java/com/example/bondoman/fragments/GrafFragment.kt index caeb1bd6a6915ba89bce214f23d152a369b8e0ed..c81b5a2e52e0a29d08cb39b127ef2a50e77f48e5 100644 --- a/app/src/main/java/com/example/bondoman/fragments/GrafFragment.kt +++ b/app/src/main/java/com/example/bondoman/fragments/GrafFragment.kt @@ -11,6 +11,7 @@ import com.example.bondoman.database.TransactionDatabase import com.example.bondoman.databinding.FragmentGrafBinding import com.example.bondoman.entities.Transaction import com.example.bondoman.lib.ITransactionGraphAdapter +import com.example.bondoman.lib.SecurePreferences import com.example.bondoman.lib.TransactionPieChartAdapter import com.example.bondoman.repositories.TransactionRepository import com.example.bondoman.viewModels.TransactionViewModelFactory @@ -23,13 +24,14 @@ class GrafFragment : Fragment() { private var _binding: FragmentGrafBinding? = null private val binding get() = _binding!! private lateinit var graphAdapter: ITransactionGraphAdapter<PieChart> + private lateinit var securePreferences: SecurePreferences private val transactionViewModel: TransactionsViewModel by viewModels { TransactionViewModelFactory( TransactionRepository( TransactionDatabase.getInstance(requireContext(), CoroutineScope( SupervisorJob() ) - ).transactionDao()) + ).transactionDao(), securePreferences) ) } private lateinit var transactions: List<Transaction> @@ -37,6 +39,8 @@ class GrafFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) graphAdapter = TransactionPieChartAdapter() + securePreferences = SecurePreferences(requireContext()) + Log.i("EMAIL", securePreferences.getEmail() ?: "KOSONG") transactionViewModel.allTransaction.observe(this) { transactions = it } diff --git a/app/src/main/java/com/example/bondoman/fragments/ScanFragment.kt b/app/src/main/java/com/example/bondoman/fragments/ScanFragment.kt index b0af2a122ff926e3fd38d81cd82e22e58fa4d271..d565eb2215871a2db1d0506260902d5cf3a65b36 100644 --- a/app/src/main/java/com/example/bondoman/fragments/ScanFragment.kt +++ b/app/src/main/java/com/example/bondoman/fragments/ScanFragment.kt @@ -60,7 +60,7 @@ class ScanFragment : Fragment() { TransactionDatabase.getInstance(requireContext(), CoroutineScope( SupervisorJob() ) - ).transactionDao()) + ).transactionDao(), securePreferences) ) } private var loadingDialog: Dialog? = null diff --git a/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt b/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt index 982bcc9737e49c2b760f6991af4b8d556a703d83..02b177ade5dfae0e5362742d42830177ffc67b20 100644 --- a/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt +++ b/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt @@ -46,6 +46,7 @@ import java.util.Locale class SettingsFragment : Fragment() { private var _binding: FragmentSettingsBinding? = null private val binding get() = _binding!! + private lateinit var securePreferences: SecurePreferences private val transactionViewModel: TransactionsViewModel by viewModels { TransactionViewModelFactory( TransactionRepository( @@ -54,7 +55,7 @@ class SettingsFragment : Fragment() { CoroutineScope( SupervisorJob() ) - ).transactionDao() + ).transactionDao(), securePreferences ) ) } @@ -62,18 +63,19 @@ class SettingsFragment : Fragment() { private lateinit var transactions: List<Transaction> private lateinit var transactionFileAdapter: ITransactionFileAdapter private lateinit var transactionDownloader: TransactionDownloader - private lateinit var securePreferences: SecurePreferences private val XLSX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" private val XLS_MIME_TYPE = "application/vnd.ms-excel" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + securePreferences = SecurePreferences(requireContext()) transactionViewModel.allTransaction.observe(this) { transactions = it } transactionFileAdapter = TransactionExcelAdapter() transactionDownloader = TransactionDownloader() authRepository = AuthRepository(SecurePreferences(requireContext())) + } override fun onCreateView( diff --git a/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt b/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt index 01244ec2ef1814a277bcf9a211784ff33584bb4f..637784ae3200acad88f00fc414faf1387aa73ded 100644 --- a/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt +++ b/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt @@ -18,6 +18,7 @@ import com.example.bondoman.activities.EditTransaction import com.example.bondoman.adapter.TransactionListAdapter import com.example.bondoman.database.TransactionDatabase import com.example.bondoman.entities.Transaction +import com.example.bondoman.lib.SecurePreferences import com.example.bondoman.repositories.TransactionRepository import com.example.bondoman.viewModels.TransactionViewModelFactory import com.example.bondoman.viewModels.TransactionsViewModel @@ -30,18 +31,20 @@ class TransaksiFragment : Fragment() { private lateinit var adapter: TransactionListAdapter private val newTransactionRequestCode = 1 private val editTransactionRequestCode = 2 + private lateinit var securePreferences: SecurePreferences private val wordViewModel: TransactionsViewModel by viewModels { TransactionViewModelFactory( TransactionRepository( TransactionDatabase.getInstance(requireContext(), CoroutineScope( SupervisorJob() ) - ).transactionDao()) + ).transactionDao(), securePreferences) ) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + securePreferences = SecurePreferences(requireContext()) } @@ -53,7 +56,7 @@ class TransaksiFragment : Fragment() { val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view) - adapter = TransactionListAdapter(wordViewModel, ::itemEditRequest) + adapter = TransactionListAdapter(wordViewModel, ::itemEditRequest, securePreferences) recyclerView.layoutManager = LinearLayoutManager(requireContext()) recyclerView.adapter = adapter @@ -91,7 +94,7 @@ class TransaksiFragment : Fragment() { amount = amount, location = location, date = Date(), - userEmail = "testing" + userEmail = securePreferences.getEmail() ?: "" ) wordViewModel.insert(transaction) } else if (requestCode == editTransactionRequestCode && resultCode == Activity.RESULT_OK) { diff --git a/app/src/main/java/com/example/bondoman/interfaces/ITransactionDao.kt b/app/src/main/java/com/example/bondoman/interfaces/ITransactionDao.kt index a7502af0b3eb7bd154f2e6f7a16e8d73ba4e9a10..4c21ee91af898bd67eeba11bcd7192607811cf8c 100644 --- a/app/src/main/java/com/example/bondoman/interfaces/ITransactionDao.kt +++ b/app/src/main/java/com/example/bondoman/interfaces/ITransactionDao.kt @@ -13,7 +13,7 @@ import kotlinx.coroutines.flow.Flow @Dao interface ITransactionDao { - @Query("SELECT * FROM transactions WHERE userEmail = :userEmail OR userEmail != :userEmail ORDER BY date DESC") + @Query("SELECT * FROM transactions WHERE userEmail = :userEmail ORDER BY date DESC") fun getAll(userEmail : String): Flow<List<Transaction>> @Insert(onConflict = OnConflictStrategy.IGNORE) suspend fun insert(transaction: Transaction) diff --git a/app/src/main/java/com/example/bondoman/repositories/TransactionRepository.kt b/app/src/main/java/com/example/bondoman/repositories/TransactionRepository.kt index f6d0e13f6a8398012bd0f97d05ba03fd092afa1d..2ee2b3dbfb4a0412d887d8103e3cce9141ba1f8a 100644 --- a/app/src/main/java/com/example/bondoman/repositories/TransactionRepository.kt +++ b/app/src/main/java/com/example/bondoman/repositories/TransactionRepository.kt @@ -3,10 +3,11 @@ package com.example.bondoman.repositories import androidx.annotation.WorkerThread import com.example.bondoman.entities.Transaction import com.example.bondoman.interfaces.ITransactionDao +import com.example.bondoman.lib.SecurePreferences import kotlinx.coroutines.flow.Flow -class TransactionRepository(private val transactionDao: ITransactionDao) { - val allTransaction : Flow<List<Transaction>> = transactionDao.getAll("testing") +class TransactionRepository(private val transactionDao: ITransactionDao, securePreferences: SecurePreferences) { + val allTransaction : Flow<List<Transaction>> = transactionDao.getAll(securePreferences.getEmail() ?: "") @Suppress("RedundantSuspendModifier") @WorkerThread