From 1c5d25ab28f14dbc671348dc92ec4aba383f7034 Mon Sep 17 00:00:00 2001
From: cettareswara <13521133@std.stei.itb.ac.id>
Date: Fri, 5 Apr 2024 02:34:03 +0700
Subject: [PATCH] add: AddTransactionActivity

---
 .idea/deploymentTargetDropDown.xml            |  6 ++
 app/src/main/AndroidManifest.xml              |  5 +-
 .../java/com/example/bondoman/MainActivity.kt |  5 ++
 .../example/bondoman/TransaksiBaruActivity.kt | 49 +++++++++++++
 .../com/example/bondoman/fragmen_transaksi.kt | 13 +++-
 app/src/main/res/drawable/ic_add.xml          | 12 ++++
 app/src/main/res/drawable/ic_close.xml        | 12 ++++
 .../res/layout/activity_add_transaksi.xml     | 70 +++++++++++--------
 app/src/main/res/layout/fragmen_transaksi.xml | 32 +++++++--
 app/src/main/res/values/arrays.xml            |  4 ++
 app/src/main/res/values/colors.xml            |  1 +
 app/src/main/res/values/strings.xml           |  1 +
 12 files changed, 173 insertions(+), 37 deletions(-)
 create mode 100644 app/src/main/java/com/example/bondoman/TransaksiBaruActivity.kt
 create mode 100644 app/src/main/res/drawable/ic_add.xml
 create mode 100644 app/src/main/res/drawable/ic_close.xml
 create mode 100644 app/src/main/res/values/arrays.xml

diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 0c0c338..0576c7d 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -2,6 +2,12 @@
 <project version="4">
   <component name="deploymentTargetDropDown">
     <value>
+      <entry key="TransaksiBaruActivity">
+        <State />
+      </entry>
+      <entry key="TransaksiBaruActivity (1)">
+        <State />
+      </entry>
       <entry key="app">
         <State />
       </entry>
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 552abdf..fc1529e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,7 +26,10 @@
             android:exported="true"
             android:theme="@style/Theme.BondoMan">
         </activity>
-        <activity android:name=".SettingsActivity" />
+        <activity
+            android:name=".TransaksiBaruActivity"
+            android:exported="true">
+        </activity>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/MainActivity.kt b/app/src/main/java/com/example/bondoman/MainActivity.kt
index eb8400f..81b69df 100644
--- a/app/src/main/java/com/example/bondoman/MainActivity.kt
+++ b/app/src/main/java/com/example/bondoman/MainActivity.kt
@@ -92,6 +92,11 @@ class MainActivity : AppCompatActivity() {
         frameHeaderText.text = title
     }
 
+    companion object {
+        const val EXTRA_FRAGMENT = "com.example.bondoman.EXTRA_FRAGMENT"
+        const val FRAGMENT_TRANSAKSI = "transaksi_fragment"
+    }
+
 
 //    override fun onCreate(savedInstanceState: Bundle?) {
 //        super.onCreate(savedInstanceState)
diff --git a/app/src/main/java/com/example/bondoman/TransaksiBaruActivity.kt b/app/src/main/java/com/example/bondoman/TransaksiBaruActivity.kt
new file mode 100644
index 0000000..b9cd168
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/TransaksiBaruActivity.kt
@@ -0,0 +1,49 @@
+package com.example.bondoman
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import android.widget.Spinner
+import androidx.appcompat.app.AppCompatActivity
+import com.google.android.material.floatingactionbutton.FloatingActionButton
+
+
+class TransaksiBaruActivity : AppCompatActivity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_add_transaksi)
+
+        val id_kategori: Spinner = findViewById(R.id.id_kategori)
+        val categories = listOf("Pembelian", "Pemasukan")
+        val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, categories)
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+        id_kategori.adapter = adapter
+
+        // Handle item selection
+        id_kategori.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+            override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
+                val selectedCategory = parent?.getItemAtPosition(position).toString()
+                // Do something with the selected category
+            }
+
+            override fun onNothingSelected(parent: AdapterView<*>?) {
+                // Handle case when nothing is selected
+            }
+        }
+
+
+        // Initialize closeFab directly without declaring a variable
+        findViewById<FloatingActionButton>(R.id.fab_close).setOnClickListener {
+            // Navigate back to MainActivity and open the transaction fragment
+            Intent(this, MainActivity::class.java).apply {
+                // Pass any necessary data to indicate fragment selection
+                putExtra(MainActivity.EXTRA_FRAGMENT, MainActivity.FRAGMENT_TRANSAKSI)
+                startActivity(this)
+            }
+            finish()
+        }
+    }
+}
diff --git a/app/src/main/java/com/example/bondoman/fragmen_transaksi.kt b/app/src/main/java/com/example/bondoman/fragmen_transaksi.kt
index 4d2b5dd..7f7dbe6 100644
--- a/app/src/main/java/com/example/bondoman/fragmen_transaksi.kt
+++ b/app/src/main/java/com/example/bondoman/fragmen_transaksi.kt
@@ -1,14 +1,16 @@
 package com.example.bondoman
 
+import android.content.Intent
 import android.os.Bundle
-import androidx.fragment.app.Fragment
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.fragment.app.Fragment
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.example.bondoman.adapters.CardAdapter
 import com.example.bondoman.database.yourDataList
+import com.google.android.material.floatingactionbutton.FloatingActionButton
 
 // TODO: Rename parameter arguments, choose names that match
 // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -48,6 +50,15 @@ class fragmen_transaksi : Fragment() {
 
         recyclerView.adapter = context?.let { CardAdapter(it, yourDataList) }
 
+        // Find the FloatingActionButton
+        val fab: FloatingActionButton = view.findViewById(R.id.fab)
+
+        // Set onClickListener for the FloatingActionButton
+        fab.setOnClickListener {
+            val intent = Intent(requireContext(), TransaksiBaruActivity::class.java)
+            startActivity(intent)
+        }
+
         return view
     }
 
diff --git a/app/src/main/res/drawable/ic_add.xml b/app/src/main/res/drawable/ic_add.xml
new file mode 100644
index 0000000..63dfa38
--- /dev/null
+++ b/app/src/main/res/drawable/ic_add.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="50dp"
+    android:height="50dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+
+    <path
+        android:fillColor="#FFFFFF"
+        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2Z"/>
+
+</vector>
diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml
new file mode 100644
index 0000000..4107fb6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_close.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="50dp"
+    android:height="50dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="@android:color/white"
+    android:alpha="0.97">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
+</vector>
diff --git a/app/src/main/res/layout/activity_add_transaksi.xml b/app/src/main/res/layout/activity_add_transaksi.xml
index 3b31171..66cf79e 100644
--- a/app/src/main/res/layout/activity_add_transaksi.xml
+++ b/app/src/main/res/layout/activity_add_transaksi.xml
@@ -7,22 +7,6 @@
     android:layout_height="match_parent"
     android:background="@color/white" >
 
-    <TextView
-        android:id="@+id/section_name"
-        android:gravity="center_horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:paddingTop="50dp"
-        android:paddingBottom="10dp"
-        android:fontFamily="@font/inter"
-        android:textStyle="bold"
-        android:text="Transaksi"
-        android:textColor="@color/black"
-        android:textSize="25sp"
-        android:visibility="gone"
-        tools:layout_editor_absoluteX="10dp"
-        tools:visibility="visible" />
-
     <LinearLayout
         android:layout_width="292dp"
         android:layout_height="wrap_content"
@@ -30,6 +14,22 @@
         android:orientation="vertical"
         tools:ignore="UselessParent">
 
+        <TextView
+            android:id="@+id/section_name"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:fontFamily="@font/inter"
+            android:gravity="center_horizontal"
+            android:paddingTop="50dp"
+            android:paddingBottom="10dp"
+            android:text="@string/transaksi_baru"
+            android:textColor="@color/black"
+            android:textSize="25sp"
+            android:textStyle="bold"
+            android:visibility="gone"
+            tools:layout_editor_absoluteX="10dp"
+            tools:visibility="visible" />
+
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -44,7 +44,7 @@
         <EditText
             android:id="@+id/id_judul"
             android:layout_width="match_parent"
-            android:layout_height="40dp"
+            android:layout_height="43dp"
             android:layout_marginTop="2dp"
             android:background="@color/light_gray"
             android:inputType="text"
@@ -67,10 +67,11 @@
         <EditText
             android:id="@+id/id_nominal"
             android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:layout_marginTop="2dp"
+            android:layout_height="43dp"
+            android:layout_marginTop="8dp"
+            android:layout_marginBottom="8dp"
             android:background="@color/light_gray"
-            android:inputType="textPassword"
+            android:inputType="numberDecimal"
             android:hint="@string/nominal"
             android:textColorHint="@color/light_gray"
             android:autofillHints="no"
@@ -87,17 +88,14 @@
             android:layout_gravity="start"
             android:text="@string/kategori" />
 
-        <EditText
+        <Spinner
             android:id="@+id/id_kategori"
             android:layout_width="match_parent"
-            android:layout_height="40dp"
+            android:layout_height="43dp"
             android:layout_marginTop="2dp"
+            android:layout_marginBottom="8dp"
             android:background="@color/light_gray"
-            android:inputType="text"
-            android:hint="@string/kategori"
-            android:textColorHint="@color/light_gray"
-            android:autofillHints="no"
-            android:maxLines="1" />
+            android:spinnerMode="dropdown" />
 
         <TextView
             android:layout_width="wrap_content"
@@ -113,7 +111,7 @@
         <EditText
             android:id="@+id/id_lokasi"
             android:layout_width="match_parent"
-            android:layout_height="40dp"
+            android:layout_height="43dp"
             android:layout_marginTop="2dp"
             android:background="@color/light_gray"
             android:inputType="text"
@@ -134,6 +132,22 @@
             android:textColor="@color/black"
             android:background="@color/main_green"
             android:text="@string/simpan" />
+
     </LinearLayout>
 
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/fab_close"
+        android:layout_width="56dp"
+        android:layout_height="56dp"
+        android:layout_gravity="end|top"
+        android:layout_margin="16dp"
+        android:scaleType="center"
+        android:src="@drawable/ic_close"
+        android:tint="@android:color/white"
+        app:backgroundTint="@color/red"
+        app:borderWidth="0dp"
+        app:elevation="6dp"
+        app:maxImageSize="24dp" />
+
+
 </RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragmen_transaksi.xml b/app/src/main/res/layout/fragmen_transaksi.xml
index 6739814..d101607 100644
--- a/app/src/main/res/layout/fragmen_transaksi.xml
+++ b/app/src/main/res/layout/fragmen_transaksi.xml
@@ -1,10 +1,28 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.recyclerview.widget.RecyclerView
+<androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/recycler_view"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:padding="8dp"
-    android:clipToPadding="false"
-    android:background="@android:color/white"
-    android:scrollbars="vertical"/>
\ No newline at end of file
+    android:layout_height="match_parent">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:padding="8dp"
+        android:clipToPadding="false"
+        android:background="@android:color/white"
+        android:scrollbars="vertical"/>
+
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/fab"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="16dp"
+        android:src="@drawable/ic_add"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        tools:ignore="ContentDescription" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..4ccbf11
--- /dev/null
+++ b/app/src/main/res/values/arrays.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string-array name="kategori_options">["Pembelian", "Pemasukan"]</string-array>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 0c5d242..e5c80e0 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -9,4 +9,5 @@
     <color name="white">#FFFFFFFF</color>
     <color name="light_gray">#D9D9D9</color>
     <color name="main_green">#A7F8DB</color>
+    <color name="red">#FF2313</color>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f124017..c949ce0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,4 +21,5 @@
     <string name="setting_button_3">Keluar</string>
     <!-- TODO: Remove or change this placeholder text -->
     <string name="hello_blank_fragment">Hello blank fragment</string>
+    <string name="transaksi_baru">Transaksi Baru</string>
 </resources>
\ No newline at end of file
-- 
GitLab