Remove unused preferences

This commit is contained in:
MM20
2022-01-15 15:53:26 +01:00
parent cd3ee6f3cb
commit 1814e21181
9 changed files with 0 additions and 505 deletions
@@ -7,7 +7,6 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import de.mm20.launcher2.fragment.PreferencesMainFragment
import de.mm20.launcher2.fragment.PreferencesServicesFragment
import de.mm20.launcher2.fragment.PreferencesWeatherFragment
import de.mm20.launcher2.ui.legacy.activity.LauncherActivity
import de.mm20.launcher2.ui.legacy.helper.ThemeHelper
@@ -30,7 +29,6 @@ class SettingsActivity : AppCompatActivity() {
private fun getStartFragment(): Fragment {
return when (intent.extras?.getString(FRAGMENT, "")) {
FRAGMENT_WEATHER -> PreferencesWeatherFragment()
FRAGMENT_SERVICES -> PreferencesServicesFragment()
else -> PreferencesMainFragment()
}
@@ -1,175 +0,0 @@
package de.mm20.launcher2.fragment
import android.annotation.SuppressLint
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.FileProvider
import androidx.lifecycle.lifecycleScope
import androidx.preference.Preference
import androidx.preference.PreferenceCategory
import androidx.preference.PreferenceFragmentCompat
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.snackbar.Snackbar
import de.mm20.launcher2.R
import de.mm20.launcher2.crashreporter.CrashReporter
import de.mm20.launcher2.debug.DebugInformationDumper
import de.mm20.launcher2.ktx.tryStartActivity
import de.mm20.launcher2.licenses.AppLicense
import de.mm20.launcher2.licenses.OpenSourceLicenses
import kotlinx.coroutines.launch
import java.io.File
class PreferencesAboutFragment : PreferenceFragmentCompat() {
private var easterEggCounter = 0
@SuppressLint("ResourceType")
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_about)
val versionPref = findPreference<Preference>("version")!!
try {
val version = requireContext().packageManager.getPackageInfo(
requireActivity().application.packageName,
0
).versionName
versionPref.summary = version
} catch (e: PackageManager.NameNotFoundException) {
//Should never happen
versionPref.summary = "Ich mag Bockwurst-Bananen"
}
versionPref.setOnPreferenceClickListener {
if (easterEggCounter in arrayOf(3, 4, 7)) Toast.makeText(
context, when (easterEggCounter) {
3 -> R.string.easter_egg_1
4 -> R.string.easter_egg_2
7 -> R.string.easter_egg_3
else -> 0
}, Toast.LENGTH_SHORT
).show()
if (easterEggCounter == 8) {
easterEggCounter = 0
requireFragmentManager().beginTransaction()
.setCustomAnimations(
R.anim.preference_fragment_child_enter,
R.anim.preference_fragment_parent_exit,
R.anim.preference_fragment_parent_enter,
R.anim.preference_fragment_child_exit
)
.replace(
android.R.id.content,
PreferencesEasterEggFragment()
)
.addToBackStack(null)
.commit()
}
easterEggCounter++
false
}
val licenses = findPreference<Preference>("category_licenses") as PreferenceCategory
for (l in OpenSourceLicenses.sortedBy { it.name.lowercase() }) {
val preference = Preference(activity, null, 0, R.style.Preference_Material)
preference.title = l.name
preference.summary = l.description
preference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
parentFragmentManager.beginTransaction()
.setCustomAnimations(
R.anim.preference_fragment_child_enter,
R.anim.preference_fragment_parent_exit,
R.anim.preference_fragment_parent_enter,
R.anim.preference_fragment_child_exit
)
.replace(
android.R.id.content,
PreferencesLicenseFragment(l)
)
.addToBackStack(null)
.commit()
true
}
licenses.addPreference(preference)
}
findPreference<Preference>("crash_reporter")?.setOnPreferenceClickListener {
startActivity(CrashReporter.getLaunchIntent())
true
}
findPreference<Preference>("export_debug")?.setOnPreferenceClickListener {
lifecycleScope.launch {
val path = DebugInformationDumper().dump(requireContext())
Snackbar.make(
requireView(),
getString(
R.string.debug_export_information_file,
path
),
Snackbar.LENGTH_LONG
)
.setAction(R.string.menu_share) {
val context = requireContext()
context.tryStartActivity(Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(
Intent.EXTRA_STREAM, FileProvider.getUriForFile(
context,
context.applicationContext.packageName + ".fileprovider",
File(path)
)
)
})
}.show()
}
true
}
findPreference<Preference>("export_databases")?.setOnPreferenceClickListener {
MaterialDialog(requireContext()).show {
message(res = R.string.debug_export_databases_warning)
positiveButton(res = R.string.dialog_continue, click = {
lifecycleScope.launch {
val path = DebugInformationDumper().exportDatabases(requireContext())
Toast.makeText(
activity,
getString(
R.string.debug_export_information_file,
path
),
Toast.LENGTH_SHORT
).show()
it.dismiss()
}
})
negativeButton(res = android.R.string.cancel, click = {
it.cancel()
})
}
true
}
findPreference<Preference>("license")?.setOnPreferenceClickListener {
parentFragmentManager.beginTransaction()
.setCustomAnimations(
R.anim.preference_fragment_child_enter,
R.anim.preference_fragment_parent_exit,
R.anim.preference_fragment_parent_enter,
R.anim.preference_fragment_child_exit
)
.replace(
android.R.id.content,
PreferencesLicenseFragment(AppLicense.get(requireContext()))
)
.addToBackStack(null)
.commit()
true
}
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_about)
}
}
@@ -1,39 +0,0 @@
package de.mm20.launcher2.fragment
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.mm20.launcher2.R
class PreferencesBadgesFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_badges)
findPreference<Preference>("notification_badges")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
} else {
}
true
}
findPreference<Preference>("suspended_badges")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
} else {
}
true
}
findPreference<Preference>("cloud_badges")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
} else {
}
true
}
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar
?.setTitle(R.string.preference_screen_badges)
}
}
@@ -1,50 +0,0 @@
package de.mm20.launcher2.fragment
import android.annotation.SuppressLint
import android.net.Uri
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent
import androidx.fragment.app.Fragment
import com.bumptech.glide.Glide
import de.mm20.launcher2.R
import de.mm20.launcher2.licenses.OpenSourceLibrary
class PreferencesLicenseFragment(
val library: OpenSourceLibrary
) : Fragment() {
@SuppressLint("ResourceType")
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_license, null, false)
(activity as AppCompatActivity).supportActionBar?.title = library.name
val url = library.url
val website = view.findViewById<TextView>(R.id.website)
website.setOnClickListener {
val intent = CustomTabsIntent.Builder()
.setDefaultColorSchemeParams(CustomTabColorSchemeParams
.Builder()
.setToolbarColor(-0x9f8275)
.build())
.setShowTitle(true)
.build()
intent.launchUrl(activity as AppCompatActivity, Uri.parse(url))
}
val description = view.findViewById<TextView>(R.id.description)
description.text = library.description
val licenseTitle = view.findViewById<TextView>(R.id.licenseTitle)
val licenseText = view.findViewById<TextView>(R.id.licenseText)
val licenseCopyright = view.findViewById<TextView>(R.id.licenseCopyright)
licenseTitle.text = getString(library.licenseName)
licenseCopyright.text = library.copyrightNote
licenseText.text = resources.openRawResource(library.licenseText).reader().readText()
return view
}
}
@@ -18,14 +18,6 @@ class PreferencesMainFragment : PreferenceFragmentCompat() {
setSettingsScreen(PreferencesAppearanceFragment())
true
}
findPreference<Preference>("screen_about")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesAboutFragment())
true
}
findPreference<Preference>("screen_weather")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesWeatherFragment())
true
}
findPreference<Preference>("screen_services")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesServicesFragment())
true
@@ -34,10 +26,6 @@ class PreferencesMainFragment : PreferenceFragmentCompat() {
setSettingsScreen(PreferencesSearchFragment())
true
}
findPreference<Preference>("screen_badges")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesBadgesFragment())
true
}
}
private fun setSettingsScreen(fragment: Fragment) {
@@ -1,152 +0,0 @@
package de.mm20.launcher2.fragment
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreference
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.list.listItems
import com.afollestad.materialdialogs.list.listItemsSingleChoice
import de.mm20.launcher2.R
import de.mm20.launcher2.preferences.LauncherPreferences
import de.mm20.launcher2.preferences.WeatherProviders
import de.mm20.launcher2.weather.WeatherLocation
import de.mm20.launcher2.weather.WeatherProvider
import de.mm20.launcher2.weather.WeatherViewModel
import de.mm20.launcher2.weather.brightsky.BrightskyProvider
import de.mm20.launcher2.weather.here.HereProvider
import de.mm20.launcher2.weather.metno.MetNoProvider
import de.mm20.launcher2.weather.openweathermap.OpenWeatherMapProvider
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class PreferencesWeatherFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_weather)
findPreference<Preference>("location")?.setOnPreferenceChangeListener { _, newValue ->
lifecycleScope.launch {
val locations = withContext(Dispatchers.IO) {
WeatherProvider.getInstance(requireContext())
?.lookupLocation(newValue as String)
} ?: return@launch
onLookupCompleted(locations)
}
false
}
/*findPreference<Preference>("weather_provider")?.setOnPreferenceChangeListener { pref, newValue ->
val newProvider = WeatherProviders.byValue(newValue as String)
LauncherPreferences.instance.weatherProvider = newProvider
WeatherProvider.getInstance(requireContext())?.resetLastUpdate()
ViewModelProvider(this).get(WeatherViewModel::class.java).requestUpdate(requireContext())
updateProviderPreferences()
true
}*/
val providerPref = findPreference<Preference>("weather_provider")!!
val context = requireContext()
val providers = mutableListOf<Pair<WeatherProviders, String>>()
OpenWeatherMapProvider(context).takeIf { it.isAvailable() }?.let {
providers.add(WeatherProviders.OPENWEATHERMAP to it.name)
}
HereProvider(context).takeIf { it.isAvailable() }?.let {
providers.add(WeatherProviders.HERE to it.name)
}
MetNoProvider(context).takeIf { it.isAvailable() }?.let {
providers.add(WeatherProviders.MET_NO to it.name)
}
BrightskyProvider(context).takeIf { it.isAvailable() }?.let {
providers.add(WeatherProviders.BRIGHT_SKY to it.name)
}
if (providers.isEmpty()) {
providerPref.summary = context.getString(
R.string.feature_not_available,
context.getString(R.string.app_name)
)
providerPref.isEnabled = false
} else {
providerPref.setOnPreferenceClickListener {
MaterialDialog(context).show {
title(R.string.preference_weather_provider)
listItemsSingleChoice(
items = providers.map { it.second },
initialSelection = providers.indexOfFirst { it.first == LauncherPreferences.instance.weatherProvider }
) { dialog, index, text ->
LauncherPreferences.instance.weatherProvider = providers[index].first
WeatherProvider.getInstance(requireContext())?.resetLastUpdate()
ViewModelProvider(this@PreferencesWeatherFragment)
.get(WeatherViewModel::class.java)
.requestUpdate(requireContext())
updateProviderPreferences()
dialog.dismiss()
}
}
true
}
}
findPreference<Preference>("auto_location")?.setOnPreferenceChangeListener { _, newValue ->
val autoLocation = newValue as Boolean
val provider = WeatherProvider.getInstance(requireContext())
provider?.autoLocation = autoLocation
provider?.resetLastUpdate()
provider?.setLocation(null)
ViewModelProvider(this).get(WeatherViewModel::class.java)
.requestUpdate(requireContext())
updateProviderPreferences()
true
}
updateProviderPreferences()
}
private fun updateProviderPreferences() {
val provider = WeatherProvider.getInstance(requireContext())
val autoLocationPref = findPreference<SwitchPreference>("auto_location")!!
val locationPref = findPreference<Preference>("location")!!
val unitsPref = findPreference<Preference>("imperial_units")!!
val providerPref = findPreference<Preference>("weather_provider")!!
locationPref.parent?.isVisible = provider != null
unitsPref.isVisible = provider != null
provider ?: return
providerPref.summary = provider.name
autoLocationPref.isChecked = provider.autoLocation
locationPref.summary =
if (provider.autoLocation) provider.getLastLocation()?.name else provider.getLocation()?.name
}
private fun onLookupCompleted(results: List<WeatherLocation>) {
MaterialDialog(requireContext())
.listItems(
items = results.map { it.name },
waitForPositiveButton = false
) { dialog, index, _ ->
val provider = WeatherProvider.getInstance(requireContext())
?: return@listItems dialog.dismiss()
provider.resetLastUpdate()
provider.setLocation(results[index])
findPreference<Preference>("location")?.summary = results[index].name
ViewModelProvider(this).get(WeatherViewModel::class.java)
.requestUpdate(requireContext())
dialog.dismiss()
}
.negativeButton {
it.cancel()
}
.show()
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_weatherwidget)
}
}