From bdfeb46faf2d00673ab3ac02234684eec0c7e2f3 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Sun, 7 Jun 2020 14:59:04 +0200 Subject: [PATCH] add "Manage Lessons" Dialog to Settings, minor style fixes * initially select the current theme in the select theme dialog * set the correct accent color for all dialogs (needs to be done manually for every dialog) --- .../fragments/SettingsFragment.kt | 59 ++++++++++++++----- .../fragments/TimeTableFragment.kt | 8 ++- .../projectlaogai/hsoparser/DataTypes.kt | 10 +++- .../uicomponents/AddLessonDialog.kt | 2 +- .../fragments/layout/fragment_settings.xml | 27 +++++++++ app/src/main/res/values-de-rDE/strings.xml | 3 + app/src/main/res/values/strings.xml | 7 ++- 7 files changed, 95 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt index 577def8..82b13f7 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt @@ -34,10 +34,13 @@ import android.widget.TextView import androidx.fragment.app.Fragment import com.afollestad.aesthetic.Aesthetic import com.afollestad.materialdialogs.MaterialDialog +import com.afollestad.materialdialogs.WhichButton +import com.afollestad.materialdialogs.actions.getActionButton import com.afollestad.materialdialogs.callbacks.onDismiss import com.afollestad.materialdialogs.color.colorChooser import com.afollestad.materialdialogs.customview.customView import com.afollestad.materialdialogs.list.listItems +import com.afollestad.materialdialogs.list.listItemsMultiChoice import com.afollestad.materialdialogs.list.listItemsSingleChoice import de.psdev.licensesdialog.LicensesDialog import kotlinx.android.synthetic.main.fragment_settings.* @@ -63,6 +66,7 @@ class SettingsFragment : Fragment() { private lateinit var linLayoutUser: LinearLayout private lateinit var linLayoutCourse: LinearLayout + private lateinit var linLayoutManageLessons: LinearLayout private lateinit var linLayoutAbout: LinearLayout private lateinit var linLayoutLicence: LinearLayout private lateinit var linLayoutTheme: LinearLayout @@ -71,12 +75,15 @@ class SettingsFragment : Fragment() { private lateinit var switchBuffet: Switch private lateinit var txtViewCourse: TextView + private var selectedTheme = DataTypes.Theme.Light + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view: View = inflater.inflate(R.layout.fragment_settings, container, false) linLayoutUser = view.findViewById(R.id.linLayout_User) linLayoutCourse = view.findViewById(R.id.linLayout_Course) + linLayoutManageLessons = view.findViewById(R.id.linLayout_ManageLessons) linLayoutAbout = view.findViewById(R.id.linLayout_About) linLayoutLicence = view.findViewById(R.id.linLayout_Licence) linLayoutTheme = view.findViewById(R.id.linLayout_Theme) @@ -105,18 +112,21 @@ class SettingsFragment : Fragment() { when(outValue.string) { "light" -> { switch_buffet.setTextColor(activity!!.resources.getColor(R.color.textPrimaryLight, activity!!.theme)) - txtView_SelectedTheme.text = resources.getString(R.string.themeLight) + selectedTheme = DataTypes.Theme.Light + selectedTheme.string = resources.getString(R.string.themeLight) } "dark" -> { switch_buffet.setTextColor(activity!!.resources.getColor(R.color.textPrimaryDark, activity!!.theme)) - txtView_SelectedTheme.text = resources.getString(R.string.themeDark) + selectedTheme = DataTypes.Theme.Dark + selectedTheme.string = resources.getString(R.string.themeDark) } "black" -> { switch_buffet.setTextColor(activity!!.resources.getColor(R.color.textPrimaryDark, activity!!.theme)) - txtView_SelectedTheme.text = resources.getString(R.string.themeBlack) + selectedTheme = DataTypes.Theme.Black + selectedTheme.string = resources.getString(R.string.themeBlack) } } - + txtView_SelectedTheme.text = selectedTheme.string } /** @@ -140,6 +150,21 @@ class SettingsFragment : Fragment() { } } + linLayoutManageLessons.setOnClickListener { + val myItems = listOf("Hello", "World") + + MaterialDialog(context!!).show { + title(R.string.manage_lessons) + listItemsMultiChoice(items = myItems) + positiveButton(R.string.delete) { + //TODO call delete action + } + negativeButton(R.string.cancel) + getActionButton(WhichButton.POSITIVE).updateTextColor(cColorAccent) + getActionButton(WhichButton.NEGATIVE).updateTextColor(cColorAccent) + } + } + linLayoutAbout.setOnClickListener { // open a new info dialog MaterialDialog(context!!) @@ -180,10 +205,10 @@ class SettingsFragment : Fragment() { resources.getString(R.string.themeDark), resources.getString(R.string.themeBlack) ) - MaterialDialog(context!!) - .title(R.string.theme) - .show { - listItemsSingleChoice(items = themes) { _, index, _ -> + + MaterialDialog(context!!).show { + title(R.string.theme) + listItemsSingleChoice(items = themes, initialSelection = selectedTheme.ordinal) { _, index, _ -> Aesthetic.config { when (index) { 0 -> activityTheme(R.style.AppTheme_Light) @@ -200,7 +225,6 @@ class SettingsFragment : Fragment() { linLayoutPrimaryColor.setOnClickListener { // open a new color chooser dialog MaterialDialog(context!!) - .title(R.string.primary_color) .colorChooser(DataTypes().primaryColors, allowCustomArgb = true, initialSelection = cColorPrimary) { _, color -> view_PrimaryColor.setBackgroundColor(color) Aesthetic.config { @@ -208,17 +232,19 @@ class SettingsFragment : Fragment() { colorPrimaryDark(color) apply() } - PreferencesController.saveColorPrimary(context!!, color) } - .positiveButton(R.string.select) - .show() + .show { + title(R.string.primary_color) + positiveButton(R.string.select) + getActionButton(WhichButton.POSITIVE).updateTextColor(cColorAccent) + } + } linLayoutAccentColor.setOnClickListener { // open a new color chooser dialog MaterialDialog(context!!) - .title(R.string.accent_color) .colorChooser(DataTypes().accentColors, allowCustomArgb = true, initialSelection = cColorAccent) { _, color -> view_AccentColor.setBackgroundColor(color) Aesthetic.config { @@ -228,8 +254,11 @@ class SettingsFragment : Fragment() { PreferencesController.saveColorAccent(context!!, color) } - .positiveButton(R.string.select) - .show() + .show{ + title(R.string.accent_color) + positiveButton(R.string.select) + getActionButton(WhichButton.POSITIVE).updateTextColor(cColorAccent) + } } switchBuffet.setOnClickListener { diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt index 9ddc3af..5f0c15f 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt @@ -29,12 +29,15 @@ import android.view.ViewGroup import android.widget.ScrollView import androidx.fragment.app.Fragment import com.afollestad.materialdialogs.MaterialDialog +import com.afollestad.materialdialogs.WhichButton +import com.afollestad.materialdialogs.actions.getActionButton import com.google.android.material.floatingactionbutton.FloatingActionButton import kotlinx.android.synthetic.main.fragment_timetable.* import kotlinx.coroutines.* import org.mosad.seil0.projectlaogai.R import org.mosad.seil0.projectlaogai.controller.CacheController import org.mosad.seil0.projectlaogai.controller.CacheController.Companion.timetables +import org.mosad.seil0.projectlaogai.controller.PreferencesController import org.mosad.seil0.projectlaogai.controller.PreferencesController.Companion.cCourse import org.mosad.seil0.projectlaogai.controller.TCoRAPIController import org.mosad.seil0.projectlaogai.hsoparser.NotRetardedCalendar @@ -82,7 +85,10 @@ class TimeTableFragment : Fragment() { // show the AddLessonDialog if the ftaBtn is clicked faBtnAddLesson.setOnClickListener { - AddLessonDialog(context!!).initAddLessonDialog().show() + AddLessonDialog(context!!).initAddLessonDialog().show{ + getActionButton(WhichButton.POSITIVE).updateTextColor(PreferencesController.cColorAccent) + getActionButton(WhichButton.NEGATIVE).updateTextColor(PreferencesController.cColorAccent) + } } // hide the btnCardValue if the user is scrolling down diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/DataTypes.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/DataTypes.kt index d2d8aec..c60a044 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/DataTypes.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/DataTypes.kt @@ -23,12 +23,12 @@ package org.mosad.seil0.projectlaogai.hsoparser import android.graphics.Color +import org.mosad.seil0.projectlaogai.R import java.util.* import kotlin.collections.ArrayList class DataTypes { - val times = - arrayOf("8.00 - 9.30", "9.45 - 11.15", "11.35 - 13.05", "14.00 -15.30", "15.45 - 17.15", "17.30 - 19.00") + val times = arrayOf("8.00 - 9.30", "9.45 - 11.15", "11.35 - 13.05", "14.00 -15.30", "15.45 - 17.15", "17.30 - 19.00") val primaryColors = intArrayOf( Color.parseColor("#E53935"), @@ -72,6 +72,12 @@ class DataTypes { Color.parseColor("#000000") ) + enum class Theme(var string: String) { + Light("Light"), + Dark("Dark"), + Black("Black") + } + init { // do something } diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/uicomponents/AddLessonDialog.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/uicomponents/AddLessonDialog.kt index bf4d3c3..05819e4 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/uicomponents/AddLessonDialog.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/uicomponents/AddLessonDialog.kt @@ -74,7 +74,7 @@ class AddLessonDialog(_context: Context) { // TODO save lesson // TODO refresh timetable (add a function to show additional lessons) } - .negativeButton(R.string.cancel) { } + .negativeButton(R.string.cancel) // initialize the spinners spinnerCourses = dialog.getCustomView().findViewById(R.id.spinner_Courses) diff --git a/app/src/main/res/layouts/fragments/layout/fragment_settings.xml b/app/src/main/res/layouts/fragments/layout/fragment_settings.xml index 195736a..bcbf90c 100644 --- a/app/src/main/res/layouts/fragments/layout/fragment_settings.xml +++ b/app/src/main/res/layouts/fragments/layout/fragment_settings.xml @@ -93,6 +93,33 @@ android:layout_height="1dp" android:background="?dividerColor" /> + + + + + + + Info Benutzer Tippe um den Kurs zu ändern + Bearbeite Zusätzliche Vorlesungen + Tippe um zusätzliche Vorlesungen zu bearbeiten Über Lizenzen Design @@ -58,6 +60,7 @@ Wähle deinen Studiengang lade Stundenplan … hinzufügen + löschen abbrechen auswählen schließen diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 056a5d0..878fc41 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -44,10 +44,12 @@ Info User Tap to change course - About - "This software is made by @Seil0 and is published under the terms and conditions of GPL 3. For further information visit \ngit.mosad.xyz/Seil0/ProjectLaogai \n\n© 2018-2020 seil0@mosad.xyz " + Manage Additional Lessons + Tap to manage additional lessons hso App by @Seil0 Version %1$s (%2$s) + About + "This software is made by @Seil0 and is published under the terms and conditions of GPL 3. For further information visit \ngit.mosad.xyz/Seil0/ProjectLaogai \n\n© 2018-2020 seil0@mosad.xyz " Licenses Theme Light @@ -63,6 +65,7 @@ Select your course loading timetable … add + delete @android:string/cancel select close