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