From 91763f5b9f32407c47b065e02fe55349c8404610 Mon Sep 17 00:00:00 2001 From: Christophorus Dharma Winata <13521009@std.stei.itb.ac.id> Date: Tue, 2 Apr 2024 01:21:38 +0700 Subject: [PATCH] refactor: login and database --- .../main/java/pbd/tubes/exe_android/MainActivity.kt | 10 +++++----- .../java/pbd/tubes/exe_android/data/AppContainer.kt | 3 +++ .../{ => database}/OfflineTransactionsRepository.kt | 7 ++++--- .../exe_android/data/{ => database}/TransactionDao.kt | 4 ++-- .../data/{ => database}/TransactionDatabase.kt | 4 ++-- .../data/{ => database}/TransactionsRepository.kt | 4 ++-- .../data/{ => database}/helper/CategoryNominal.kt | 2 +- .../data/{ => database}/helper/DateConverter.kt | 2 +- .../tubes/exe_android/{ui => data}/login/ApiService.kt | 4 +--- .../tubes/exe_android/data/{ => login}/LoginRequest.kt | 2 +- .../exe_android/data/{ => login}/LoginResponse.kt | 2 +- .../pbd/tubes/exe_android/ui/chart/ChartViewModel.kt | 4 ++-- .../pbd/tubes/exe_android/ui/login/LoginActivity.kt | 10 +++++----- .../java/pbd/tubes/exe_android/ui/scan/ScanFragment.kt | 2 -- .../tubes/exe_android/ui/settings/SettingsFragment.kt | 8 ++++---- .../tubes/exe_android/ui/settings/SettingsViewModel.kt | 2 +- .../ui/transactions/AddTransactionFragment.kt | 2 +- .../ui/transactions/AddTransactionViewModel.kt | 2 +- .../ui/transactions/EditTransactionFragment.kt | 2 +- .../ui/transactions/EditTransactionViewModel.kt | 2 +- .../ui/transactions/TransactionsFragment.kt | 2 -- .../ui/transactions/TransactionsViewModel.kt | 2 +- 22 files changed, 40 insertions(+), 42 deletions(-) rename app/src/main/java/pbd/tubes/exe_android/data/{ => database}/OfflineTransactionsRepository.kt (89%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => database}/TransactionDao.kt (92%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => database}/TransactionDatabase.kt (89%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => database}/TransactionsRepository.kt (92%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => database}/helper/CategoryNominal.kt (91%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => database}/helper/DateConverter.kt (85%) rename app/src/main/java/pbd/tubes/exe_android/{ui => data}/login/ApiService.kt (61%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => login}/LoginRequest.kt (64%) rename app/src/main/java/pbd/tubes/exe_android/data/{ => login}/LoginResponse.kt (55%) diff --git a/app/src/main/java/pbd/tubes/exe_android/MainActivity.kt b/app/src/main/java/pbd/tubes/exe_android/MainActivity.kt index 7a0d461..f6aaa2c 100644 --- a/app/src/main/java/pbd/tubes/exe_android/MainActivity.kt +++ b/app/src/main/java/pbd/tubes/exe_android/MainActivity.kt @@ -1,6 +1,11 @@ package pbd.tubes.exe_android +import android.content.Context +import android.content.Intent +import android.net.ConnectivityManager +import android.net.NetworkCapabilities import android.os.Bundle +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration @@ -8,11 +13,6 @@ import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupWithNavController import com.google.android.material.bottomnavigation.BottomNavigationView import pbd.tubes.exe_android.databinding.ActivityMainBinding -import android.content.Intent -import android.content.Context -import android.net.ConnectivityManager -import androidx.appcompat.app.AlertDialog -import android.net.NetworkCapabilities class MainActivity : AppCompatActivity() { diff --git a/app/src/main/java/pbd/tubes/exe_android/data/AppContainer.kt b/app/src/main/java/pbd/tubes/exe_android/data/AppContainer.kt index 52f38b5..473b6e9 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/AppContainer.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/AppContainer.kt @@ -1,6 +1,9 @@ package pbd.tubes.exe_android.data import android.content.Context +import pbd.tubes.exe_android.data.database.OfflineTransactionsRepository +import pbd.tubes.exe_android.data.database.TransactionDatabase +import pbd.tubes.exe_android.data.database.TransactionsRepository /** * App container for Dependency injection. diff --git a/app/src/main/java/pbd/tubes/exe_android/data/OfflineTransactionsRepository.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/OfflineTransactionsRepository.kt similarity index 89% rename from app/src/main/java/pbd/tubes/exe_android/data/OfflineTransactionsRepository.kt rename to app/src/main/java/pbd/tubes/exe_android/data/database/OfflineTransactionsRepository.kt index 272874d..2d4486a 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/OfflineTransactionsRepository.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/OfflineTransactionsRepository.kt @@ -1,11 +1,12 @@ -package pbd.tubes.exe_android.data +package pbd.tubes.exe_android.data.database import kotlinx.coroutines.flow.Flow -import pbd.tubes.exe_android.data.helper.CategoryNominal +import pbd.tubes.exe_android.data.database.helper.CategoryNominal import pbd.tubes.exe_android.models.Transaction import java.time.LocalDate -class OfflineTransactionsRepository (private val transactionDao: TransactionDao) : TransactionsRepository{ +class OfflineTransactionsRepository (private val transactionDao: TransactionDao) : + TransactionsRepository { override fun getAllTransactionsStream(): Flow<List<Transaction>> = transactionDao.getAllTransactions() override fun getTransactionStream(id: Int): Flow<Transaction?> = transactionDao.getTransaction(id) diff --git a/app/src/main/java/pbd/tubes/exe_android/data/TransactionDao.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt similarity index 92% rename from app/src/main/java/pbd/tubes/exe_android/data/TransactionDao.kt rename to app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt index f227998..913f959 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/TransactionDao.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDao.kt @@ -1,4 +1,4 @@ -package pbd.tubes.exe_android.data +package pbd.tubes.exe_android.data.database import androidx.room.Dao import androidx.room.Delete import androidx.room.Insert @@ -6,7 +6,7 @@ import androidx.room.OnConflictStrategy import androidx.room.Query import androidx.room.Update import kotlinx.coroutines.flow.Flow -import pbd.tubes.exe_android.data.helper.CategoryNominal +import pbd.tubes.exe_android.data.database.helper.CategoryNominal import pbd.tubes.exe_android.models.Transaction import java.time.LocalDate diff --git a/app/src/main/java/pbd/tubes/exe_android/data/TransactionDatabase.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDatabase.kt similarity index 89% rename from app/src/main/java/pbd/tubes/exe_android/data/TransactionDatabase.kt rename to app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDatabase.kt index 1326844..bd64dac 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/TransactionDatabase.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionDatabase.kt @@ -1,11 +1,11 @@ -package pbd.tubes.exe_android.data +package pbd.tubes.exe_android.data.database import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.TypeConverters -import pbd.tubes.exe_android.data.helper.DateConverter +import pbd.tubes.exe_android.data.database.helper.DateConverter import pbd.tubes.exe_android.models.Transaction @Database(entities = [Transaction::class], version = 3, exportSchema = false) diff --git a/app/src/main/java/pbd/tubes/exe_android/data/TransactionsRepository.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionsRepository.kt similarity index 92% rename from app/src/main/java/pbd/tubes/exe_android/data/TransactionsRepository.kt rename to app/src/main/java/pbd/tubes/exe_android/data/database/TransactionsRepository.kt index f696858..47e457e 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/TransactionsRepository.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/TransactionsRepository.kt @@ -1,6 +1,6 @@ -package pbd.tubes.exe_android.data +package pbd.tubes.exe_android.data.database import kotlinx.coroutines.flow.Flow -import pbd.tubes.exe_android.data.helper.CategoryNominal +import pbd.tubes.exe_android.data.database.helper.CategoryNominal import pbd.tubes.exe_android.models.Transaction import java.time.LocalDate diff --git a/app/src/main/java/pbd/tubes/exe_android/data/helper/CategoryNominal.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/helper/CategoryNominal.kt similarity index 91% rename from app/src/main/java/pbd/tubes/exe_android/data/helper/CategoryNominal.kt rename to app/src/main/java/pbd/tubes/exe_android/data/database/helper/CategoryNominal.kt index aac248e..234cda4 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/helper/CategoryNominal.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/helper/CategoryNominal.kt @@ -1,4 +1,4 @@ -package pbd.tubes.exe_android.data.helper +package pbd.tubes.exe_android.data.database.helper import androidx.room.ColumnInfo import pbd.tubes.exe_android.models.TransactionCategory diff --git a/app/src/main/java/pbd/tubes/exe_android/data/helper/DateConverter.kt b/app/src/main/java/pbd/tubes/exe_android/data/database/helper/DateConverter.kt similarity index 85% rename from app/src/main/java/pbd/tubes/exe_android/data/helper/DateConverter.kt rename to app/src/main/java/pbd/tubes/exe_android/data/database/helper/DateConverter.kt index 38f6b91..786b48c 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/helper/DateConverter.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/database/helper/DateConverter.kt @@ -1,4 +1,4 @@ -package pbd.tubes.exe_android.data.helper +package pbd.tubes.exe_android.data.database.helper import androidx.room.TypeConverter import java.time.LocalDate diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/login/ApiService.kt b/app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt similarity index 61% rename from app/src/main/java/pbd/tubes/exe_android/ui/login/ApiService.kt rename to app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt index 730f806..e4ca829 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/login/ApiService.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt @@ -1,7 +1,5 @@ -package pbd.tubes.exe_android.ui.login +package pbd.tubes.exe_android.data.login -import pbd.tubes.exe_android.data.LoginRequest -import pbd.tubes.exe_android.data.LoginResponse import retrofit2.Response import retrofit2.http.Body import retrofit2.http.POST diff --git a/app/src/main/java/pbd/tubes/exe_android/data/LoginRequest.kt b/app/src/main/java/pbd/tubes/exe_android/data/login/LoginRequest.kt similarity index 64% rename from app/src/main/java/pbd/tubes/exe_android/data/LoginRequest.kt rename to app/src/main/java/pbd/tubes/exe_android/data/login/LoginRequest.kt index b6f6686..2105e28 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/LoginRequest.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/login/LoginRequest.kt @@ -1,4 +1,4 @@ -package pbd.tubes.exe_android.data +package pbd.tubes.exe_android.data.login data class LoginRequest( val email: String, diff --git a/app/src/main/java/pbd/tubes/exe_android/data/LoginResponse.kt b/app/src/main/java/pbd/tubes/exe_android/data/login/LoginResponse.kt similarity index 55% rename from app/src/main/java/pbd/tubes/exe_android/data/LoginResponse.kt rename to app/src/main/java/pbd/tubes/exe_android/data/login/LoginResponse.kt index 0fd9b69..3affb82 100644 --- a/app/src/main/java/pbd/tubes/exe_android/data/LoginResponse.kt +++ b/app/src/main/java/pbd/tubes/exe_android/data/login/LoginResponse.kt @@ -1,4 +1,4 @@ -package pbd.tubes.exe_android.data +package pbd.tubes.exe_android.data.login data class LoginResponse( val token: String diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/chart/ChartViewModel.kt b/app/src/main/java/pbd/tubes/exe_android/ui/chart/ChartViewModel.kt index 99efc6e..34cd601 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/chart/ChartViewModel.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/chart/ChartViewModel.kt @@ -10,8 +10,8 @@ import com.github.mikephil.charting.data.PieEntry import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import pbd.tubes.exe_android.BondomanApp -import pbd.tubes.exe_android.data.TransactionsRepository -import pbd.tubes.exe_android.data.helper.toCategoryNominalMap +import pbd.tubes.exe_android.data.database.TransactionsRepository +import pbd.tubes.exe_android.data.database.helper.toCategoryNominalMap import pbd.tubes.exe_android.models.TransactionCategory import java.util.EnumMap 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 3410a88..c855804 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 @@ -2,17 +2,17 @@ package pbd.tubes.exe_android import android.content.Intent import android.os.Bundle +import android.util.Log +import android.widget.Button +import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import pbd.tubes.exe_android.data.login.ApiService +import pbd.tubes.exe_android.data.login.LoginRequest import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory -import android.widget.Button -import android.widget.EditText -import android.util.Log -import pbd.tubes.exe_android.ui.login.ApiService -import pbd.tubes.exe_android.data.LoginRequest class LoginActivity : AppCompatActivity() { 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 0657b76..5f0ca01 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 @@ -7,9 +7,7 @@ import android.view.ViewGroup import android.widget.TextView import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels -import androidx.lifecycle.ViewModelProvider import pbd.tubes.exe_android.databinding.FragmentScanBinding -import pbd.tubes.exe_android.ui.transactions.TransactionsViewModel class ScanFragment : Fragment() { diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsFragment.kt b/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsFragment.kt index a8f2b38..cb98dc5 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsFragment.kt @@ -1,18 +1,18 @@ package pbd.tubes.exe_android.ui.settings +import android.content.Context.MODE_PRIVATE +import android.content.Intent import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import pbd.tubes.exe_android.LoginActivity import pbd.tubes.exe_android.R import pbd.tubes.exe_android.databinding.FragmentSettingsBinding -import android.content.Context.MODE_PRIVATE -import android.content.Intent -import pbd.tubes.exe_android.LoginActivity -import android.widget.Button class SettingsFragment : Fragment() { diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt b/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt index 2524cc6..6c6332e 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt @@ -13,7 +13,7 @@ import org.apache.poi.ss.usermodel.FillPatternType import org.apache.poi.ss.usermodel.IndexedColors import org.apache.poi.xssf.usermodel.XSSFWorkbook import pbd.tubes.exe_android.BondomanApp -import pbd.tubes.exe_android.data.TransactionsRepository +import pbd.tubes.exe_android.data.database.TransactionsRepository import pbd.tubes.exe_android.models.Transaction import kotlin.io.path.createTempFile import kotlin.io.path.outputStream 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 6c2fd45..ee4936c 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 @@ -13,8 +13,8 @@ import androidx.navigation.fragment.findNavController import com.google.android.material.textfield.TextInputLayout import kotlinx.coroutines.launch import pbd.tubes.exe_android.R -import pbd.tubes.exe_android.models.TransactionCategory import pbd.tubes.exe_android.databinding.FragmentAddTransactionBinding +import pbd.tubes.exe_android.models.TransactionCategory class AddTransactionFragment : Fragment() { private var _binding: FragmentAddTransactionBinding? = null diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionViewModel.kt b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionViewModel.kt index d2b9a97..94bd2b5 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionViewModel.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/AddTransactionViewModel.kt @@ -8,9 +8,9 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.Companion.APPLICATION_KEY import androidx.lifecycle.viewmodel.CreationExtras import pbd.tubes.exe_android.BondomanApp +import pbd.tubes.exe_android.data.database.TransactionsRepository import pbd.tubes.exe_android.models.Transaction import pbd.tubes.exe_android.models.TransactionCategory -import pbd.tubes.exe_android.data.TransactionsRepository import java.time.LocalDate import java.time.ZoneId diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionFragment.kt b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionFragment.kt index 1ae314b..205a94f 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionFragment.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionFragment.kt @@ -6,8 +6,8 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels -import pbd.tubes.exe_android.models.Transaction import pbd.tubes.exe_android.databinding.FragmentEditTransactionBinding +import pbd.tubes.exe_android.models.Transaction class EditTransactionFragment(transaction: Transaction) : Fragment() { private var _binding : FragmentEditTransactionBinding? = null diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionViewModel.kt b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionViewModel.kt index 0301aca..3a06cf0 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionViewModel.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/EditTransactionViewModel.kt @@ -4,8 +4,8 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewmodel.CreationExtras import pbd.tubes.exe_android.BondomanApp +import pbd.tubes.exe_android.data.database.TransactionsRepository import pbd.tubes.exe_android.models.Transaction -import pbd.tubes.exe_android.data.TransactionsRepository class EditTransactionViewModel( private val transactionsRepository: TransactionsRepository, 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 a7e17c7..a91d397 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,10 +5,8 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels -import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import pbd.tubes.exe_android.databinding.FragmentTransactionsBinding diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsViewModel.kt b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsViewModel.kt index 22bdb41..2d802c9 100644 --- a/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsViewModel.kt +++ b/app/src/main/java/pbd/tubes/exe_android/ui/transactions/TransactionsViewModel.kt @@ -9,8 +9,8 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.CreationExtras import kotlinx.coroutines.launch import pbd.tubes.exe_android.BondomanApp +import pbd.tubes.exe_android.data.database.TransactionsRepository import pbd.tubes.exe_android.models.Transaction -import pbd.tubes.exe_android.data.TransactionsRepository class TransactionsViewModel(private val transactionsRepository: TransactionsRepository) : ViewModel() { var transactionList: LiveData<List<Transaction>>? = null -- GitLab