diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 38151702dfe5d0cf31af0007d37328c974b40bce..e1705ff0357058e0392b8105aca27fa29ddcfe3b 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -4,18 +4,18 @@ <value> <entry key="app"> <State> - <runningDeviceTargetSelectedWithDropDown> + <targetSelectedWithDropDown> <Target> - <type value="RUNNING_DEVICE_TARGET" /> + <type value="QUICK_BOOT_TARGET" /> <deviceKey> <Key> - <type value="SERIAL_NUMBER" /> - <value value="emulator-5554" /> + <type value="VIRTUAL_DEVICE_PATH" /> + <value value="C:\Users\lalbi\.android\avd\Pixel_3a_API_32.avd" /> </Key> </deviceKey> </Target> - </runningDeviceTargetSelectedWithDropDown> - <timeTargetWasSelectedWithDropDown value="2024-04-03T17:57:13.057353Z" /> + </targetSelectedWithDropDown> + <timeTargetWasSelectedWithDropDown value="2024-04-03T17:59:16.032320400Z" /> </State> </entry> </value> diff --git a/app/src/main/java/com/example/bondoman/Adapter.kt b/app/src/main/java/com/example/bondoman/Adapter.kt deleted file mode 100644 index 8992a8cbe902871787cb758cbc3b1ff13eeade9c..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/example/bondoman/Adapter.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.example.bondoman - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.example.bondoman.retrofit.data.Transaction - -class TransactionAdapter(private val listData: ArrayList<Transaction>): RecyclerView.Adapter<TransactionAdapter.DataViewHolder>(){ - - override fun onBindViewHolder(holder: DataViewHolder, position: Int) { - val currentData = listData[position] - holder.txtName.text = currentData.name - holder.txtCategory.text = currentData.category - val temp = "IDR " + currentData.price.toString() - holder.txtPrice.text = temp - holder.txtLocation.text = currentData.location - holder.txtDate.text = currentData.date - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DataViewHolder { - val view: View = LayoutInflater.from(parent.context).inflate(R.layout.list_transaction,parent,false) - return DataViewHolder(view) - } - - override fun getItemCount(): Int { - return listData.count() - } - class DataViewHolder(item: View) : RecyclerView.ViewHolder(item) { - val txtName: TextView = item.findViewById(R.id.itemName) - val txtCategory: TextView = item.findViewById(R.id.category) - val txtDate: TextView = item.findViewById(R.id.itemDate) - val txtPrice : TextView = item.findViewById(R.id.itemPrice) - val txtLocation : TextView = item.findViewById(R.id.itemLocation) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt b/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt index dda3a8b507ebced4d82ae30f2137b943ac2a8336..613afa2310ca36f75597815038e14533efecb0dd 100644 --- a/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt +++ b/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt @@ -58,7 +58,7 @@ class TransactionAdapter(private val list: ArrayList<TransactionEntity>): Recycl } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view: View = LayoutInflater.from(parent.context).inflate(R.layout.row_data,parent,false) + val view: View = LayoutInflater.from(parent.context).inflate(R.layout.row_data, parent, false) return ViewHolder(view) } diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt b/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt new file mode 100644 index 0000000000000000000000000000000000000000..c3ed442c664dcb11fea85d48a0f56e911349fd50 --- /dev/null +++ b/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt @@ -0,0 +1,27 @@ +package com.example.bondoman.retrofit.data + +import android.content.Context +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import com.example.bondoman.retrofit.data.dao.TransactionDao +import com.example.bondoman.retrofit.data.entity.TransactionEntity + +@Database(entities = [TransactionEntity::class], version = 1) +abstract class TransactionDB : RoomDatabase() { + abstract fun transactionDao(): TransactionDao + + companion object{ + private var instance : TransactionDB? = null + + fun getInstance(context: Context) : TransactionDB{ + if (instance==null){ + instance = Room.databaseBuilder(context, TransactionDB::class.java, "transaction-database") + .allowMainThreadQueries() + .build() + } + + return instance!! + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt b/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt new file mode 100644 index 0000000000000000000000000000000000000000..27ebc42d15503365179a3e7de04b69a9a9d433fe --- /dev/null +++ b/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt @@ -0,0 +1,27 @@ +package com.example.bondoman.retrofit.data.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.Query +import com.example.bondoman.retrofit.data.entity.TransactionEntity + +@Dao +interface TransactionDao { + + @Query("SELECT * FROM transactionentity") + fun getAll(): List<TransactionEntity> + + @Query("SELECT * FROM transactionentity WHERE id IN (:userIds)") + fun loadAllByIds(userIds: IntArray): List<TransactionEntity> + + @Query("SELECT * FROM transactionentity WHERE name LIKE :name AND " + + "price LIKE :nominal LIMIT 1") + fun findByName(name: String, nominal: String): TransactionEntity + + @Insert + fun insertAll(vararg transactions: TransactionEntity) + + @Delete + fun delete(transaction: TransactionEntity) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_add_24.xml b/app/src/main/res/drawable/baseline_add_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..89633bb125d37a7e89833cfd4708ae8b8902822d --- /dev/null +++ b/app/src/main/res/drawable/baseline_add_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#000000" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/> +</vector> diff --git a/app/src/main/res/layout/row_data.xml b/app/src/main/res/layout/row_data.xml new file mode 100644 index 0000000000000000000000000000000000000000..1ca99191441741b0d3986a620bbf18afc14af522 --- /dev/null +++ b/app/src/main/res/layout/row_data.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="8dp" + android:orientation="horizontal"> + <LinearLayout + android:layout_width="220dp" + android:layout_height="wrap_content" + android:orientation="vertical" + android:layout_margin="8dp"> + <TextView + android:id="@+id/KategoriTransaksi" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/cornered_simpan" + android:textColor="@color/light_grey" + android:padding="4dp" + android:textSize="12sp" + /> + <TextView + android:id="@+id/NamaTransaksi" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="2dp" + android:textSize="16sp" + /> + <TextView + android:id="@+id/TanggalTransaksi" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="2dp" + android:textSize="12sp" + /> + </LinearLayout> + <LinearLayout + android:layout_width="90dp" + android:layout_height="match_parent" + android:layout_marginEnd="5dp" + android:layout_marginStart="0dp" + android:orientation="vertical" + android:gravity="end"> + <TextView + android:id="@+id/NominalTransaksi" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="2dp" + android:textSize="16sp" + android:layout_weight="1"/> + <TextView + android:id="@+id/LokasiTransaksi" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="2dp" + android:textSize="12sp" + android:ellipsize="end" + android:maxLines="1" + android:layout_weight="2" + android:clickable="true" /> + + + </LinearLayout> + +</LinearLayout> \ No newline at end of file