From 4cd72405526a98dbc0b5ce792cfe6a6e5c4f8f65 Mon Sep 17 00:00:00 2001 From: Niko Diamadis Date: Wed, 22 Jun 2022 20:28:22 +0200 Subject: [PATCH] =?UTF-8?q?Erm=C3=B6gliche=20Hinzuf=C3=BCgen=20von=20neuem?= =?UTF-8?q?=20Schuljahr=20=C3=BCber=20Fab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../techniklogger/fragments/YearsFragment.kt | 49 +++++++- app/src/main/res/layout/fragment_years.xml | 119 +----------------- 2 files changed, 51 insertions(+), 117 deletions(-) diff --git a/app/src/main/java/com/cyb3rko/techniklogger/fragments/YearsFragment.kt b/app/src/main/java/com/cyb3rko/techniklogger/fragments/YearsFragment.kt index 65bef0e..42c92b9 100644 --- a/app/src/main/java/com/cyb3rko/techniklogger/fragments/YearsFragment.kt +++ b/app/src/main/java/com/cyb3rko/techniklogger/fragments/YearsFragment.kt @@ -17,6 +17,7 @@ import com.cyb3rko.techniklogger.CURRENT_YEAR_NAME import com.cyb3rko.techniklogger.SHARED_PREFERENCE import com.cyb3rko.techniklogger.databinding.FragmentYearsBinding import com.cyb3rko.techniklogger.recycler.YearAdapter +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.parse.ParseObject import com.parse.ParseQuery import es.dmoral.toasty.Toasty @@ -24,6 +25,8 @@ import es.dmoral.toasty.Toasty class YearsFragment : Fragment() { private var _binding: FragmentYearsBinding? = null private lateinit var myContext: Context + + private var adminMode: Boolean? = null private lateinit var yearAdapter: YearAdapter private var data: MutableList = mutableListOf() private lateinit var sharedPref: SharedPreferences @@ -72,7 +75,26 @@ class YearsFragment : Fragment() { } binding.fab.setOnClickListener { + val current = yearAdapter.currentList[0] + val currentYear = current.getString("name")?.split("/")?.get(1) + val new = "$currentYear/${currentYear!!.toInt() + 1}" + MaterialAlertDialogBuilder(myContext) + .setTitle("Neues Schuljahr") + .setMessage("Möchtest du das Schuljahr $new hinzufügen?") + .setPositiveButton(android.R.string.ok) { _, _ -> + ParseObject("Jahr").apply { + put("name", new) + save() + loadEntries() + } + } + .show() + } + if (adminMode == null && sharedPref.getString("name", "") != "") { + updateAdminStatus() + } else if (adminMode != null && adminMode!!) { + binding.fab.visibility = View.VISIBLE } } @@ -88,6 +110,7 @@ class YearsFragment : Fragment() { showAnimation(false) binding.swipeRefreshLayout.isRefreshing = false yearAdapter.submitList(data) + (requireActivity() as MainActivity).setActionBarSubtitle(objects.size.toString()) } else { binding.swipeRefreshLayout.isRefreshing = false if (data.isEmpty()) { @@ -97,8 +120,32 @@ class YearsFragment : Fragment() { Log.e("TechnikLogger.JahrSuche", e.message.toString()) } } + } - + private fun updateAdminStatus() { + val query = ParseQuery.getQuery("Techniker") + query.whereEqualTo("name", sharedPref.getString("name", "")) + query.getFirstInBackground { techniker, e -> + if (e == null) { + if (techniker.getBoolean("admin")) { + adminMode = true + sharedPrefEditor.putBoolean("admin", adminMode!!) + binding.fab.visibility = View.VISIBLE + } else { + adminMode = false + sharedPrefEditor.putBoolean("admin", adminMode!!) + binding.fab.visibility = View.INVISIBLE + } + sharedPrefEditor.putString("technikerId", techniker.objectId).apply() + } else { + binding.fab.visibility = View.INVISIBLE + adminMode = false + sharedPrefEditor.putString("technikerId", "") + sharedPrefEditor.putBoolean("admin", adminMode!!).apply() + Toasty.error(myContext, "Adminstatus unbekannt", Toasty.LENGTH_SHORT).show() + Log.e("TechnikLogger.TechSuche", e.message.toString()) + } + } } private fun showAnimation(show: Boolean, connected: Boolean = true) { diff --git a/app/src/main/res/layout/fragment_years.xml b/app/src/main/res/layout/fragment_years.xml index b82e1cf..a1c08a3 100644 --- a/app/src/main/res/layout/fragment_years.xml +++ b/app/src/main/res/layout/fragment_years.xml @@ -32,128 +32,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + app:srcCompat="@drawable/_icon_add" />