From c3b17e7e1d280eb48668e8a8e1a165c26939fe0c Mon Sep 17 00:00:00 2001
From: Muhamad Salman Hakim Alfarisi <13521010@std.stei.itb.ac.id>
Date: Wed, 3 Apr 2024 10:28:00 +0700
Subject: [PATCH] feat(graph): add graph pie chart dummy data

---
 app/build.gradle.kts                          |  2 +
 app/src/main/AndroidManifest.xml              |  3 +-
 .../com/example/bondoman/GraphFragment.kt     | 49 ++++++++++++++++---
 .../main/res/layout-land/fragment_grafik.xml  | 13 +++++
 app/src/main/res/layout/fragment_grafik.xml   | 19 +++----
 app/src/main/res/values/colors.xml            |  3 ++
 app/src/main/res/values/strings.xml           |  3 --
 settings.gradle.kts                           |  2 +
 8 files changed, 72 insertions(+), 22 deletions(-)
 create mode 100644 app/src/main/res/layout-land/fragment_grafik.xml

diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index b810d65..900d2e8 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -60,4 +60,6 @@ dependencies {
     implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
     implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
 
+    // graph
+    implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1ede64e..c778eb5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -27,8 +27,7 @@
             android:screenOrientation="portrait"/>
         <activity
             android:name=".MainActivity"
-            android:exported="false"
-            android:screenOrientation="portrait" />
+            android:exported="false" />
         <activity
             android:name=".SplashActivity"
             android:exported="true"
diff --git a/app/src/main/java/com/example/bondoman/GraphFragment.kt b/app/src/main/java/com/example/bondoman/GraphFragment.kt
index dfe6439..39756ce 100644
--- a/app/src/main/java/com/example/bondoman/GraphFragment.kt
+++ b/app/src/main/java/com/example/bondoman/GraphFragment.kt
@@ -1,19 +1,56 @@
 package com.example.bondoman
+
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.fragment.app.Fragment
-import androidx.navigation.fragment.findNavController
+import com.github.mikephil.charting.charts.PieChart
+import com.github.mikephil.charting.data.PieData
+import com.github.mikephil.charting.data.PieDataSet
+import com.github.mikephil.charting.data.PieEntry
+
+class GraphFragment : Fragment() {
 
-class GraphFragment: Fragment() {
     override fun onCreateView(
         inflater: LayoutInflater, container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
-        val navController = findNavController()
 
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.fragment_grafik, container, false)
+        val view = inflater.inflate(R.layout.fragment_grafik, container, false)
+        val pieChart: PieChart = view.findViewById(R.id.pieChart)
+
+        // Dummy data
+        val income = 5000f
+        val outcome = 3000f
+
+        val entries = ArrayList<PieEntry>()
+        entries.add(PieEntry(income, "Income"))
+        entries.add(PieEntry(outcome, "Outcome"))
+
+        val dataSet = PieDataSet(entries, "Transaction Summary")
+
+        val colors = ArrayList<Int>()
+        colors.add(resources.getColor(R.color.colorIncome))
+        colors.add(resources.getColor(R.color.colorOutcome))
+        dataSet.colors = colors
+        dataSet.valueTextSize = 24f
+        dataSet.valueTextColor = resources.getColor(R.color.text_graph)
+
+
+        val data = PieData(dataSet)
+
+        pieChart.data = data
+
+        pieChart.description.isEnabled = false
+
+        pieChart.setHoleColor(android.R.color.transparent)
+
+        val legend = pieChart.legend
+        legend.isEnabled = false
+
+        pieChart.invalidate()
+
+        return view
     }
-}
\ No newline at end of file
+}
diff --git a/app/src/main/res/layout-land/fragment_grafik.xml b/app/src/main/res/layout-land/fragment_grafik.xml
new file mode 100644
index 0000000..7b3764d
--- /dev/null
+++ b/app/src/main/res/layout-land/fragment_grafik.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000113">
+
+    <com.github.mikephil.charting.charts.PieChart
+        android:id="@+id/pieChart"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginBottom="16dp"/>
+
+</RelativeLayout>
diff --git a/app/src/main/res/layout/fragment_grafik.xml b/app/src/main/res/layout/fragment_grafik.xml
index 8a4c372..7b3764d 100644
--- a/app/src/main/res/layout/fragment_grafik.xml
+++ b/app/src/main/res/layout/fragment_grafik.xml
@@ -1,16 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
+    android:background="#000113">
 
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        android:text="@string/graph_button_description">
-    </TextView>
+    <com.github.mikephil.charting.charts.PieChart
+        android:id="@+id/pieChart"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginBottom="16dp"/>
 
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f97cf6d..dfffc97 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -11,4 +11,7 @@
     <color name="light_purple">#9290C3</color>
     <color name="light_grey">#EAEAEA</color>
     <color name="text_grey">#475569</color>
+    <color name="colorIncome">#1B1A55</color>
+    <color name="colorOutcome">#9290C3</color>
+    <color name="text_graph">#5852EE</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 6f37604..607d363 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,8 +13,5 @@
     <string name="rescan_button_description">Pindai Ulang</string>
     <string name="image_button_description">Galeri</string>
     <string name="confirm_button_description">Konfirmasi</string>
-    <!-- TODO: Remove or change this placeholder text -->
     <string name="hello_blank_fragment">Hello blank fragment</string>
-
-
 </resources>
\ No newline at end of file
diff --git a/settings.gradle.kts b/settings.gradle.kts
index a8ccf60..e76ad3e 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -3,6 +3,7 @@ pluginManagement {
         google()
         mavenCentral()
         gradlePluginPortal()
+        maven("https://jitpack.io")
     }
 }
 dependencyResolutionManagement {
@@ -10,6 +11,7 @@ dependencyResolutionManagement {
     repositories {
         google()
         mavenCentral()
+        maven("https://jitpack.io")
     }
 }
 
-- 
GitLab