Skip to content
Snippets Groups Projects
Commit f0f0a24e authored by rayhanp1402's avatar rayhanp1402
Browse files

feat: Storage permission for save transaction

parent 9dae9ef4
3 merge requests!13Release,!11proper save for gmail,!8Save transactions
...@@ -3,12 +3,15 @@ package com.example.bondoyap.ui.settings ...@@ -3,12 +3,15 @@ package com.example.bondoyap.ui.settings
import android.app.AlertDialog import android.app.AlertDialog
import android.content.DialogInterface import android.content.DialogInterface
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
...@@ -19,6 +22,7 @@ import com.example.bondoyap.ui.login.LoginActivity ...@@ -19,6 +22,7 @@ import com.example.bondoyap.ui.login.LoginActivity
import com.example.bondoyap.ui.transactions.TransactionsApplication import com.example.bondoyap.ui.transactions.TransactionsApplication
import com.example.bondoyap.ui.transactions.TransactionsViewModel import com.example.bondoyap.ui.transactions.TransactionsViewModel
import com.example.bondoyap.ui.transactions.TransactionsViewModelFactory import com.example.bondoyap.ui.transactions.TransactionsViewModelFactory
import android.Manifest
class SettingsFragment : Fragment() { class SettingsFragment : Fragment() {
...@@ -36,6 +40,11 @@ class SettingsFragment : Fragment() { ...@@ -36,6 +40,11 @@ class SettingsFragment : Fragment() {
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
_binding = FragmentSettingsBinding.inflate(inflater, container, false) _binding = FragmentSettingsBinding.inflate(inflater, container, false)
if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(requireActivity(), arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), PERMISSION_REQUEST_CODE)
}
return binding.root return binding.root
} }
...@@ -85,25 +94,29 @@ class SettingsFragment : Fragment() { ...@@ -85,25 +94,29 @@ class SettingsFragment : Fragment() {
val exporter = TransactionsExporter(transactionsViewModel, requireContext()) val exporter = TransactionsExporter(transactionsViewModel, requireContext())
saveButton.setOnClickListener { saveButton.setOnClickListener {
Toast.makeText(appContext, "Menyimpan transaksi...", Toast.LENGTH_SHORT).show() if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(appContext, "Allow storage permission untuk menyimpan transaksi ke file xls/xlsx", Toast.LENGTH_SHORT).show()
val formats = arrayOf("XLS", "XLSX") } else {
val builder = AlertDialog.Builder(requireContext()) val formats = arrayOf("XLS", "XLSX")
builder.setTitle("Pilih Format File") val builder = AlertDialog.Builder(requireContext())
builder.setItems(formats) { dialog: DialogInterface, which: Int -> builder.setTitle("Pilih Format File")
when (which) { builder.setItems(formats) { dialog: DialogInterface, which: Int ->
0 -> { when (which) {
exporter.exportToXLS() 0 -> {
} Toast.makeText(appContext, "Menyimpan transaksi ke xls...", Toast.LENGTH_SHORT).show()
1 -> { exporter.exportToXLS()
exporter.exportToXLSX() Toast.makeText(appContext, "Penyimpanan xls pada folder Documents berhasil...", Toast.LENGTH_SHORT).show()
}
1 -> {
Toast.makeText(appContext, "Menyimpan transaksi ke xlsx...", Toast.LENGTH_SHORT).show()
exporter.exportToXLSX()
Toast.makeText(appContext, "Penyimpanan xlsx pada folder Documents berhasil...", Toast.LENGTH_SHORT).show()
}
} }
dialog.dismiss()
} }
dialog.dismiss() builder.create().show()
} }
builder.create().show()
Toast.makeText(appContext, "Penyimpanan pada folder Documents berhasil...", Toast.LENGTH_SHORT).show()
} }
sendButton.setOnClickListener { sendButton.setOnClickListener {
...@@ -113,6 +126,10 @@ class SettingsFragment : Fragment() { ...@@ -113,6 +126,10 @@ class SettingsFragment : Fragment() {
} }
companion object {
private const val PERMISSION_REQUEST_CODE = 1001
}
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
_binding = null _binding = null
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment