🤯 Update dependencies, switch to AndroidX
This commit is contained in:
@@ -23,16 +23,11 @@ import android.content.Intent
|
||||
import android.content.ServiceConnection
|
||||
import android.os.Bundle
|
||||
import android.os.IBinder
|
||||
import android.support.v4.app.Fragment
|
||||
import android.support.v4.content.ContextCompat
|
||||
import android.support.v4.content.FileProvider.getUriForFile
|
||||
import android.support.v7.preference.Preference
|
||||
import android.support.v7.preference.Preference.OnPreferenceChangeListener
|
||||
import android.support.v7.preference.PreferenceFragmentCompat
|
||||
import android.support.v7.preference.PreferenceScreen
|
||||
import android.support.v7.preference.SwitchPreferenceCompat
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.FileProvider.getUriForFile
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import ch.dissem.apps.abit.service.BatchProcessorService
|
||||
import ch.dissem.apps.abit.service.SimpleJob
|
||||
import ch.dissem.apps.abit.service.Singleton
|
||||
@@ -43,15 +38,15 @@ import ch.dissem.bitmessage.entity.Plaintext
|
||||
import com.mikepenz.aboutlibraries.Libs
|
||||
import com.mikepenz.aboutlibraries.LibsBuilder
|
||||
import org.jetbrains.anko.doAsync
|
||||
import org.jetbrains.anko.support.v4.indeterminateProgressDialog
|
||||
import org.jetbrains.anko.support.v4.startActivity
|
||||
import org.jetbrains.anko.indeterminateProgressDialog
|
||||
import org.jetbrains.anko.startActivity
|
||||
import org.jetbrains.anko.uiThread
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* @author Christian Basler
|
||||
*/
|
||||
class SettingsFragment : PreferenceFragmentCompat(), PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||
@@ -117,9 +112,9 @@ class SettingsFragment : PreferenceFragmentCompat(), PreferenceFragmentCompat.On
|
||||
}
|
||||
|
||||
private fun exportClickListener() = Preference.OnPreferenceClickListener {
|
||||
val ctx = context ?: throw IllegalStateException("No context available")
|
||||
val ctx = activity ?: throw IllegalStateException("No context available")
|
||||
|
||||
indeterminateProgressDialog(R.string.export_data_summary, R.string.export_data).apply {
|
||||
ctx.indeterminateProgressDialog(R.string.export_data_summary, R.string.export_data).apply {
|
||||
doAsync {
|
||||
val exportDirectory = ctx.preferences.exportDirectory
|
||||
exportDirectory.mkdirs()
|
||||
@@ -152,20 +147,20 @@ class SettingsFragment : PreferenceFragmentCompat(), PreferenceFragmentCompat.On
|
||||
if (activity.hasDetailPane) {
|
||||
activity.setDetailView(StatusFragment())
|
||||
} else {
|
||||
startActivity<StatusActivity>()
|
||||
activity.startActivity<StatusActivity>()
|
||||
}
|
||||
return@OnPreferenceClickListener true
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
val ctx = context ?: throw IllegalStateException("No context available")
|
||||
val ctx = activity ?: throw IllegalStateException("No context available")
|
||||
when (requestCode) {
|
||||
WRITE_EXPORT_REQUEST_CODE -> ctx.preferences.cleanupExportDirectory()
|
||||
READ_IMPORT_REQUEST_CODE -> {
|
||||
if (resultCode == Activity.RESULT_OK && data?.data != null) {
|
||||
indeterminateProgressDialog(R.string.import_data_summary, R.string.import_data).apply {
|
||||
ctx.indeterminateProgressDialog(R.string.import_data_summary, R.string.import_data).apply {
|
||||
doAsync {
|
||||
Exports.importData(data.data, ctx)
|
||||
Exports.importData(data.data!!, ctx)
|
||||
uiThread {
|
||||
dismiss()
|
||||
}
|
||||
@@ -224,40 +219,41 @@ class SettingsFragment : PreferenceFragmentCompat(), PreferenceFragmentCompat.On
|
||||
}
|
||||
|
||||
private fun emulateConversationChangeListener(conversationInit: Preference?) =
|
||||
OnPreferenceChangeListener { _, newValue ->
|
||||
Preference.OnPreferenceChangeListener { _, newValue ->
|
||||
conversationInit?.isEnabled = newValue as Boolean
|
||||
true
|
||||
}
|
||||
|
||||
private fun connectivityChangeListener() =
|
||||
OnPreferenceChangeListener { _, _ ->
|
||||
context?.network?.scheduleNodeStart()
|
||||
Preference.OnPreferenceChangeListener { _, _ ->
|
||||
activity?.network?.scheduleNodeStart()
|
||||
true
|
||||
}
|
||||
|
||||
// The why-is-it-so-damn-hard-to-group-preferences section
|
||||
override fun getCallbackFragment(): Fragment = this
|
||||
|
||||
override fun onPreferenceStartScreen(
|
||||
preferenceFragmentCompat: PreferenceFragmentCompat,
|
||||
preferenceScreen: PreferenceScreen
|
||||
): Boolean {
|
||||
fragmentManager?.beginTransaction()?.let { ft ->
|
||||
val fragment = SettingsFragment()
|
||||
fragment.arguments = Bundle().apply {
|
||||
putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, preferenceScreen.key)
|
||||
}
|
||||
ft.add(R.id.item_list, fragment, preferenceScreen.key)
|
||||
ft.addToBackStack(preferenceScreen.key)
|
||||
ft.commit()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
context?.let { ctx -> view.setBackgroundColor(ContextCompat.getColor(ctx, R.color.contentBackground)) }
|
||||
}
|
||||
// FIXME: maybe this is once again necessary, maybe not. Test!
|
||||
// override fun getCallbackFragment(): Fragment = this
|
||||
//
|
||||
// override fun onPreferenceStartScreen(
|
||||
// preferenceFragmentCompat: PreferenceFragment,
|
||||
// preferenceScreen: PreferenceScreen
|
||||
// ): Boolean {
|
||||
// fragmentManager?.beginTransaction()?.let { ft ->
|
||||
// val fragment = SettingsFragment()
|
||||
// fragment.arguments = Bundle().apply {
|
||||
// putString(PreferenceFragment.ARG_PREFERENCE_ROOT, preferenceScreen.key)
|
||||
// }
|
||||
// ft.add(R.id.item_list, fragment, preferenceScreen.key)
|
||||
// ft.addToBackStack(preferenceScreen.key)
|
||||
// ft.commit()
|
||||
// }
|
||||
// return true
|
||||
// }
|
||||
//
|
||||
// override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
// super.onViewCreated(view, savedInstanceState)
|
||||
// context?.let { ctx -> view.setBackgroundColor(ContextCompat.getColor(ctx, R.color.contentBackground)) }
|
||||
// }
|
||||
// End of the why-is-it-so-damn-hard-to-group-preferences section
|
||||
// Afterthought: here it looks so simple: https://developer.android.com/guide/topics/ui/settings.html
|
||||
// Remind me, why do we need to use PreferenceFragmentCompat?
|
||||
|
||||
Reference in New Issue
Block a user