Archived
Fragment transition animations, information dialog, SettingsFragment implements OnCheckedChangeListener
This commit is contained in:
@@ -21,9 +21,6 @@ import com.google.android.material.snackbar.Snackbar
|
||||
import org.jsoup.Jsoup
|
||||
import org.jsoup.select.Elements
|
||||
import java.lang.IndexOutOfBoundsException
|
||||
import java.net.URL
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, context: Context, application: Application, parentview: View?) : AsyncTask<Void, Void, Void>() {
|
||||
@@ -139,7 +136,7 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
|
||||
if (plan) {
|
||||
val substViewModel = SubstViewModel(mApplication)
|
||||
val doc = Jsoup.connect("https://djd4rkn355.github.io/subst_test").get()
|
||||
currentTime = doc.select("h1").text()
|
||||
currentTime = doc.select("h1")[0].text()
|
||||
if (currentTime != prefs.getString("time", "")) {
|
||||
val rows = doc.select("tr")
|
||||
val paragraphs = doc.select("p")
|
||||
|
||||
@@ -12,7 +12,6 @@ class GeneralPlanFragment : PlanFragment() {
|
||||
substViewModel.allSubst?.observe(this, Observer<List<Subst>> {
|
||||
mAdapter.setSubst(it)
|
||||
recyclerView.scheduleLayoutAnimation()
|
||||
bottomSheetText.text = prefs.getString("informational", getString(R.string.noinfo))
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,27 @@
|
||||
package com.denizd.substitutionplan
|
||||
|
||||
import android.app.ActivityManager
|
||||
import android.app.job.JobInfo
|
||||
import android.app.job.JobScheduler
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.BitmapFactory
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.NetworkInfo
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.preference.PreferenceManager
|
||||
import android.util.AttributeSet
|
||||
import android.view.*
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.AnimationUtils
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.widget.NestedScrollView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
@@ -39,18 +29,18 @@ import com.google.android.material.chip.Chip
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.jaredrummler.android.device.DeviceName
|
||||
import java.lang.IllegalArgumentException
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
class Main : AppCompatActivity(R.layout.app_bar_main) {
|
||||
|
||||
private var bottomSheetExpanded = false
|
||||
private lateinit var bottomSheetBehaviour: BottomSheetBehavior<*>
|
||||
private lateinit var context: Context
|
||||
private lateinit var prefs: SharedPreferences
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
val context = this as Context
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context) as SharedPreferences
|
||||
context = this
|
||||
prefs = PreferenceManager.getDefaultSharedPreferences(context) as SharedPreferences
|
||||
val edit = prefs.edit()
|
||||
val firstTime = Intent(context, FirstTime::class.java)
|
||||
|
||||
@@ -67,19 +57,17 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
|
||||
val appbarlayout = findViewById<AppBarLayout>(R.id.appbarlayout)
|
||||
val toolbarTxt = findViewById<TextView>(R.id.toolbarTxt)
|
||||
val bottomSheetRoot = findViewById<LinearLayout>(R.id.bottom_sheet)
|
||||
bottomSheetBehaviour = BottomSheetBehavior.from(bottomSheetRoot)
|
||||
val bottomNav = findViewById<BottomNavigationView>(R.id.bottom_nav)
|
||||
val fragmentContainer = findViewById<CoordinatorLayout>(R.id.fragment_container)
|
||||
val bottomSheetCloser = findViewById<LinearLayout>(R.id.bottom_sheet_closer)
|
||||
val chip = findViewById<Chip>(R.id.chip)
|
||||
val contextView = findViewById<View>(R.id.coordination)
|
||||
val window = this.window as Window
|
||||
|
||||
bottomSheetExpanded = bottomSheetBehaviour.state == BottomSheetBehavior.STATE_EXPANDED
|
||||
|
||||
setTheme(R.style.AppTheme0)
|
||||
|
||||
if (prefs.getBoolean("openInfo", false)) {
|
||||
openInfoDialog()
|
||||
}
|
||||
|
||||
when (prefs.getInt("themeInt", 0)) {
|
||||
0 -> {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||||
@@ -109,42 +97,10 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
// } // TODO theming based on system settings for Android Q
|
||||
}
|
||||
|
||||
if (!prefs.getBoolean("showinfotab", true)) {
|
||||
bottomNav.menu.removeItem(R.id.openinfopanel)
|
||||
}
|
||||
|
||||
fragmentContainer.setOnClickListener {
|
||||
bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED)
|
||||
}
|
||||
|
||||
bottomSheetBehaviour.setBottomSheetCallback(object: BottomSheetBehavior.BottomSheetCallback() {
|
||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||
if (bottomSheetBehaviour.state == BottomSheetBehavior.STATE_EXPANDED) {
|
||||
bottomSheetCloser.visibility = View.VISIBLE
|
||||
} else if (bottomSheetBehaviour.state == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||
bottomSheetCloser.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
override fun onSlide(bottomSheet: View, slideOffset: Float) {}
|
||||
})
|
||||
|
||||
bottomSheetCloser.setOnClickListener {
|
||||
bottomSheetCloser.visibility = View.GONE
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
|
||||
if (!prefs.getBoolean("autoRefresh", false) && prefs.getInt("firstTimeOpening", 0) != 0) {
|
||||
try {
|
||||
val oldFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"
|
||||
val newFormat = "yyyy-MM-dd, HH:mm:ss"
|
||||
|
||||
val d = Date(prefs.getString("time", ""))
|
||||
val sdf = SimpleDateFormat(oldFormat)
|
||||
sdf.applyPattern(newFormat)
|
||||
val newDate = sdf.format(d)
|
||||
|
||||
val sb = StringBuilder()
|
||||
val updated = sb.append(getText(R.string.lastupdatedK)).append(newDate).toString()
|
||||
val updated = sb.append(getText(R.string.lastupdatedK)).append(prefs.getString("time", "")).toString()
|
||||
|
||||
Snackbar.make(contextView, updated, Snackbar.LENGTH_LONG).show()
|
||||
} catch (e: IllegalArgumentException) {}
|
||||
@@ -169,7 +125,7 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
}
|
||||
|
||||
if (prefs.getBoolean("greeting", false)) {
|
||||
if (prefs.getString("username", "").isNotEmpty()) {
|
||||
if ((prefs.getString("username", "") ?: "").isNotEmpty()) {
|
||||
val animationIn = AnimationUtils.loadAnimation(context, R.anim.chip_slide_in)
|
||||
val animationOut = AnimationUtils.loadAnimation(context, R.anim.chip_slide_out)
|
||||
val generator = Random()
|
||||
@@ -216,43 +172,28 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
}
|
||||
|
||||
if (prefs.getInt("firstTimeOpening", 0) == 0) {
|
||||
|
||||
handler.postDelayed({
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_EXPANDED
|
||||
}, 600)
|
||||
|
||||
handler.postDelayed({
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
}, 2000)
|
||||
|
||||
edit.putInt("firstTimeOpening", prefs.getInt("firstTimeOpening", 0) + 1).apply()
|
||||
}
|
||||
|
||||
if (prefs.getBoolean("openInfo", false)) {
|
||||
handler.postDelayed({
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_EXPANDED
|
||||
}, 600)
|
||||
}
|
||||
|
||||
val userPlan: String = if (prefs.getString("username", "").toString().isNotEmpty()) {
|
||||
when (prefs.getString("username", "")[prefs.getString("username", "").length - 1].toString().toLowerCase()) {
|
||||
"s", "x", "z" -> prefs.getString("username", "") + getString(R.string.nosplan)
|
||||
else -> prefs.getString("username", "") + getString(R.string.splan)
|
||||
val userPlan: String = if ((prefs.getString("username", "") ?: "").toString().isNotEmpty()) {
|
||||
when ((prefs.getString("username", "") ?: "")[(prefs.getString("username", "") ?: "").length - 1].toString().toLowerCase()) {
|
||||
"s", "x", "z" -> (prefs.getString("username", "") ?: "") + getString(R.string.nosplan)
|
||||
else -> (prefs.getString("username", "") ?: "") + getString(R.string.splan)
|
||||
}
|
||||
} else {
|
||||
getString(R.string.personalplan)
|
||||
}
|
||||
lateinit var fragment: Fragment
|
||||
lateinit var defaultFragment: Fragment
|
||||
if (prefs.getBoolean("defaultPersonalised", false)) {
|
||||
fragment = PersonalPlanFragment()
|
||||
defaultFragment = PersonalPlanFragment()
|
||||
bottomNav.selectedItemId = R.id.personal
|
||||
toolbarTxt.text = userPlan
|
||||
} else {
|
||||
fragment = GeneralPlanFragment()
|
||||
defaultFragment = GeneralPlanFragment()
|
||||
bottomNav.selectedItemId = R.id.plan
|
||||
toolbarTxt.text = getString(R.string.app_name)
|
||||
}
|
||||
loadFragment(fragment)
|
||||
loadFragment(defaultFragment)
|
||||
|
||||
bottomNav.setOnNavigationItemSelectedListener { item: MenuItem ->
|
||||
var fragmentLoading = true
|
||||
@@ -271,11 +212,7 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
toolbarTxt.text = getString(R.string.foodmenu)
|
||||
}
|
||||
R.id.openinfopanel -> {
|
||||
if (bottomSheetBehaviour.state == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_EXPANDED
|
||||
} else if (bottomSheetBehaviour.state == BottomSheetBehavior.STATE_EXPANDED) {
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
openInfoDialog()
|
||||
fragmentLoading = false
|
||||
}
|
||||
R.id.settings -> {
|
||||
@@ -284,7 +221,6 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
}
|
||||
}
|
||||
if (fragmentLoading) {
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
appbarlayout.setExpanded(true)
|
||||
loadFragment(fragment)
|
||||
} else {
|
||||
@@ -299,8 +235,8 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
val recyclerView = findViewById<RecyclerView>(R.id.linearRecycler)
|
||||
recyclerView.post {
|
||||
recyclerView.smoothScrollToPosition(0)
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
appbarlayout.setExpanded(true)
|
||||
} catch (e: NullPointerException) {}
|
||||
}
|
||||
R.id.menu -> {
|
||||
@@ -308,8 +244,8 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
val recyclerView = findViewById<RecyclerView>(R.id.linear_food)
|
||||
recyclerView.post {
|
||||
recyclerView.smoothScrollToPosition(0)
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
appbarlayout.setExpanded(true)
|
||||
} catch (e: NullPointerException) {}
|
||||
}
|
||||
R.id.settings -> {
|
||||
@@ -317,18 +253,25 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
val nsv = findViewById<NestedScrollView>(R.id.nsvsettings)
|
||||
nsv.post {
|
||||
nsv.smoothScrollTo(0, 0)
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
appbarlayout.setExpanded(true)
|
||||
} catch (e: NullPointerException) {}
|
||||
}
|
||||
}
|
||||
appbarlayout.setExpanded(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun openInfoDialog() {
|
||||
val dialog = AlertDialog.Builder(context)
|
||||
val dialogView = LayoutInflater.from(context).inflate(R.layout.simple_dialog, null)
|
||||
dialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(R.string.information)
|
||||
dialogView.findViewById<TextView>(R.id.dialogtext).text = prefs.getString("informational", "")
|
||||
dialog.setView(dialogView).show()
|
||||
}
|
||||
|
||||
private fun loadFragment(fragment: Fragment): Boolean {
|
||||
supportFragmentManager.beginTransaction().replace(R.id.fragment_container, fragment).commit()
|
||||
supportFragmentManager.beginTransaction().replace(R.id.fragment_container, fragment).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit()
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -342,12 +285,4 @@ class Main : AppCompatActivity(R.layout.activity_main) {
|
||||
val scheduler = getSystemService(JOB_SCHEDULER_SERVICE) as JobScheduler
|
||||
scheduler.schedule(info)
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
if (bottomSheetBehaviour.state == BottomSheetBehavior.STATE_EXPANDED) {
|
||||
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
} else {
|
||||
super.onBackPressed()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,17 +21,17 @@ class PersonalPlanFragment : PlanFragment() {
|
||||
persPlanEmpty = true
|
||||
recyclerView.visibility = View.VISIBLE
|
||||
for (i in 0 until it.size) {
|
||||
if (prefs.getString("courses", "").isEmpty() && prefs.getString("classes", "").isNotEmpty()) {
|
||||
if (it[i].group.isNotEmpty() && !it[i].group.equals("")) {
|
||||
if (prefs.getString("classes", "").contains(it[i].group) || it[i].group.contains(prefs.getString("classes", "").toString())) {
|
||||
if ((prefs.getString("courses", "") ?: "").isEmpty() && (prefs.getString("classes", "") ?: "").isNotEmpty()) {
|
||||
if (it[i].group.isNotEmpty() && it[i].group != "") {
|
||||
if ((prefs.getString("classes", "") ?: "").contains(it[i].group) || it[i].group.contains((prefs.getString("classes", "") ?: "").toString())) {
|
||||
planCardList.add(it[i])
|
||||
persPlanEmpty = false
|
||||
}
|
||||
}
|
||||
} else if (prefs.getString("classes", "").isNotEmpty() && prefs.getString("courses", "").isNotEmpty()) {
|
||||
if (!it[i].group.equals("") && !it[i].course.equals("")) {
|
||||
if (prefs.getString("courses", "").contains(it[i].course)) {
|
||||
if (prefs.getString("classes", "").contains(it[i].group) || it[i].group.contains(prefs.getString("classes", "").toString())) {
|
||||
} else if ((prefs.getString("classes", "") ?: "").isNotEmpty() && (prefs.getString("courses", "") ?: "").isNotEmpty()) {
|
||||
if (it[i].group != "" && it[i].course != "") {
|
||||
if ((prefs.getString("courses", "") ?: "").contains(it[i].course)) {
|
||||
if ((prefs.getString("classes", "") ?: "").contains(it[i].group) || it[i].group.contains((prefs.getString("classes", "") ?: "").toString())) {
|
||||
planCardList.add(it[i])
|
||||
persPlanEmpty = false
|
||||
}
|
||||
|
||||
@@ -10,12 +10,10 @@ import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
open class PlanFragment : Fragment(R.layout.plan) {
|
||||
@@ -23,7 +21,6 @@ open class PlanFragment : Fragment(R.layout.plan) {
|
||||
lateinit var mAdapter: CardAdapter
|
||||
private lateinit var layoutManager: GridLayoutManager
|
||||
val planCardList = ArrayList<Subst>()
|
||||
lateinit var bottomSheetText: TextView
|
||||
lateinit var substViewModel: SubstViewModel
|
||||
lateinit var mContext: Context
|
||||
lateinit var prefs: SharedPreferences
|
||||
@@ -64,8 +61,6 @@ open class PlanFragment : Fragment(R.layout.plan) {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val pullToRefresh = view.findViewById<SwipeRefreshLayout>(R.id.pullToRefresh)
|
||||
bottomSheetText = view.rootView.findViewById(R.id.bottom_sheet_text)
|
||||
bottomSheetText.text = prefs.getString("informational", getString(R.string.noinfo))
|
||||
|
||||
recyclerView = view.findViewById(R.id.linearRecycler)
|
||||
recyclerView.hasFixedSize()
|
||||
@@ -100,14 +95,12 @@ open class PlanFragment : Fragment(R.layout.plan) {
|
||||
if (prefs.getBoolean("autoRefresh", false)) {
|
||||
pullToRefresh.isRefreshing = true
|
||||
DataFetcher(true, false, false, mContext, activity!!.application, view.rootView).execute()
|
||||
bottomSheetText.text = prefs.getString("informational", getString(R.string.noinfo))
|
||||
}
|
||||
substViewModel = ViewModelProviders.of(this).get(SubstViewModel::class.java)
|
||||
|
||||
pullToRefresh.setOnRefreshListener {
|
||||
pullToRefresh.isRefreshing = true
|
||||
DataFetcher(true, false, false, mContext, activity!!.application, view.rootView).execute()
|
||||
bottomSheetText.text = prefs.getString("informational", getString(R.string.noinfo))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import com.jaredrummler.android.device.DeviceName
|
||||
|
||||
class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListener, ColourAdapter.OnClickListener {
|
||||
class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListener, CompoundButton.OnCheckedChangeListener, ColourAdapter.OnClickListener {
|
||||
|
||||
private lateinit var name: String
|
||||
private lateinit var model: String
|
||||
@@ -59,7 +59,6 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
|
||||
|
||||
val switchDisableGreeting = view.findViewById<Switch>(R.id.switchDisableGreeting)
|
||||
val switchDark = view.findViewById<Switch>(R.id.switchDark)
|
||||
val switchHideInfo = view.findViewById<Switch>(R.id.switchHideInfo)
|
||||
val switchNotifications = view.findViewById<Switch>(R.id.switchNotifications)
|
||||
val switchDefaultPlan = view.findViewById<Switch>(R.id.switchDefaultPlan)
|
||||
val switchOpenInfo = view.findViewById<Switch>(R.id.switchOpenInfo)
|
||||
@@ -70,13 +69,12 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
|
||||
val btnCustomiseColours = view.findViewById<LinearLayout>(R.id.btnCustomiseColours)
|
||||
val btnVersion = view.findViewById<LinearLayout>(R.id.btnVersion)
|
||||
|
||||
switchDisableGreeting.setOnClickListener(this)
|
||||
switchDark.setOnClickListener(this)
|
||||
switchHideInfo.setOnClickListener(this)
|
||||
switchNotifications.setOnClickListener(this)
|
||||
switchDefaultPlan.setOnClickListener(this)
|
||||
switchOpenInfo.setOnClickListener(this)
|
||||
switchAutoRefresh.setOnClickListener(this)
|
||||
switchDisableGreeting.setOnCheckedChangeListener(this)
|
||||
switchDark.setOnCheckedChangeListener(this)
|
||||
switchNotifications.setOnCheckedChangeListener(this)
|
||||
switchDefaultPlan.setOnCheckedChangeListener(this)
|
||||
switchOpenInfo.setOnCheckedChangeListener(this)
|
||||
switchAutoRefresh.setOnCheckedChangeListener(this)
|
||||
helpCourses.setOnClickListener(this)
|
||||
helpClasses.setOnClickListener(this)
|
||||
btnCustomiseColours.setOnClickListener(this)
|
||||
@@ -91,7 +89,6 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
|
||||
1 -> true
|
||||
else -> false
|
||||
}
|
||||
switchHideInfo.isChecked = prefs.getBoolean("showinfotab", true)
|
||||
switchNotifications.isChecked = prefs.getBoolean("notif", false)
|
||||
switchDefaultPlan.isChecked = prefs.getBoolean("defaultPersonalised", false)
|
||||
switchOpenInfo.isChecked = prefs.getBoolean("openInfo", false)
|
||||
@@ -136,54 +133,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
|
||||
when (v?.id) {
|
||||
R.id.chipHelpCourses -> createDialog(getString(R.string.helpCoursesTitle), getString(R.string.helpCourses))
|
||||
R.id.chipHelpClasses -> createDialog(getString(R.string.helpClassesTitle), getString(R.string.helpClasses))
|
||||
R.id.switchDisableGreeting -> {
|
||||
val switchDisableGreeting = v.findViewById<Switch>(R.id.switchDisableGreeting)
|
||||
if (switchDisableGreeting.isChecked) edit.putBoolean("greeting", true) else edit.putBoolean("greeting", false)
|
||||
}
|
||||
R.id.switchDark -> {
|
||||
val switchDark = v.findViewById<Switch>(R.id.switchDark)
|
||||
val bottomNav = v.rootView.findViewById<BottomNavigationView>(R.id.bottom_nav)
|
||||
if (switchDark.isChecked) {
|
||||
edit.putInt("themeInt", 1)
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||||
window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE
|
||||
window?.navigationBarColor = ContextCompat.getColor(mContext, R.color.background)
|
||||
|
||||
} else {
|
||||
edit.putInt("themeInt", 0)
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||
window?.navigationBarColor = ContextCompat.getColor(mContext, R.color.background)
|
||||
}
|
||||
}
|
||||
if (prefs.getBoolean("defaultPersonalised", false)) {
|
||||
bottomNav.selectedItemId = R.id.personal
|
||||
} else {
|
||||
bottomNav.selectedItemId = R.id.plan
|
||||
}
|
||||
}
|
||||
R.id.switchHideInfo -> {
|
||||
val switchHideInfo = v.findViewById<Switch>(R.id.switchHideInfo)
|
||||
if (switchHideInfo.isChecked) edit.putBoolean("showinfotab", true) else edit.putBoolean("showinfotab", false)
|
||||
}
|
||||
R.id.btnCustomiseColours -> createColourDialog()
|
||||
R.id.switchNotifications -> {
|
||||
val switchNotifications = v.findViewById<Switch>(R.id.switchNotifications)
|
||||
if (switchNotifications.isChecked) edit.putBoolean("notif", true) else edit.putBoolean("notif", false)
|
||||
}
|
||||
R.id.switchDefaultPlan -> {
|
||||
val switchDefaultPlan = v.findViewById<Switch>(R.id.switchDefaultPlan)
|
||||
if (switchDefaultPlan.isChecked) edit.putBoolean("defaultPersonalised", true) else edit.putBoolean("defaultPersonalised", false)
|
||||
}
|
||||
R.id.switchOpenInfo -> {
|
||||
val switchOpenInfo = v.findViewById<Switch>(R.id.switchOpenInfo)
|
||||
if (switchOpenInfo.isChecked) edit.putBoolean("openInfo", true) else edit.putBoolean("openInfo", false)
|
||||
}
|
||||
R.id.switchAutoRefresh -> {
|
||||
val switchAutoRefresh = v.findViewById<Switch>(R.id.switchAutoRefresh)
|
||||
if (switchAutoRefresh.isChecked) edit.putBoolean("autoRefresh", true) else edit.putBoolean("autoRefresh", false)
|
||||
}
|
||||
R.id.btnWebsite -> {
|
||||
try {
|
||||
customTabsIntent.launchUrl(mContext, Uri.parse("http://307.joomla.schule.bremen.de"))
|
||||
@@ -254,13 +204,56 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
|
||||
edit.apply()
|
||||
}
|
||||
|
||||
override fun onCheckedChanged(v: CompoundButton?, isChecked: Boolean) {
|
||||
if (v?.isPressed == true) {
|
||||
when (v.id) {
|
||||
R.id.switchDisableGreeting -> {
|
||||
edit.putBoolean("greeting", isChecked)
|
||||
}
|
||||
R.id.switchDark -> {
|
||||
val bottomNav = v.rootView.findViewById<BottomNavigationView>(R.id.bottom_nav)
|
||||
if (isChecked) {
|
||||
edit.putInt("themeInt", 1)
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||||
window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE
|
||||
window?.navigationBarColor = ContextCompat.getColor(mContext, R.color.background)
|
||||
|
||||
} else {
|
||||
edit.putInt("themeInt", 0)
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||
window?.navigationBarColor = ContextCompat.getColor(mContext, R.color.background)
|
||||
}
|
||||
}
|
||||
if (prefs.getBoolean("defaultPersonalised", false)) {
|
||||
bottomNav.selectedItemId = R.id.personal
|
||||
} else {
|
||||
bottomNav.selectedItemId = R.id.plan
|
||||
}
|
||||
}
|
||||
R.id.switchNotifications -> {
|
||||
edit.putBoolean("notif", isChecked)
|
||||
}
|
||||
R.id.switchDefaultPlan -> {
|
||||
edit.putBoolean("defaultPersonalised", isChecked)
|
||||
}
|
||||
R.id.switchOpenInfo -> {
|
||||
edit.putBoolean("openInfo", isChecked)
|
||||
}
|
||||
R.id.switchAutoRefresh -> {
|
||||
edit.putBoolean("autoRefresh", isChecked)
|
||||
}
|
||||
}
|
||||
edit.apply()
|
||||
}
|
||||
}
|
||||
|
||||
private fun createDialog(title: String, text: String) {
|
||||
val alertDialog = AlertDialog.Builder(mContext, R.style.AlertDialog)
|
||||
val dialogView = LayoutInflater.from(mContext).inflate(R.layout.simple_dialog, null)
|
||||
val dialogTitle = dialogView.findViewById<TextView>(R.id.textviewtitle)
|
||||
val dialogText = dialogView.findViewById<TextView>(R.id.dialogtext)
|
||||
dialogTitle.text = title
|
||||
dialogText.text = text
|
||||
dialogView.findViewById<TextView>(R.id.textviewtitle).text = title
|
||||
dialogView.findViewById<TextView>(R.id.dialogtext).text = text
|
||||
alertDialog.setView(dialogView).show()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user