mirror of https://github.com/tasks/tasks
New location preferences menu
parent
29c566a240
commit
fc974bee08
@ -0,0 +1,48 @@
|
|||||||
|
package org.tasks.preferences.fragments
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import androidx.preference.Preference
|
||||||
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import org.tasks.R
|
||||||
|
import org.tasks.Tasks.Companion.IS_GOOGLE_PLAY
|
||||||
|
import org.tasks.billing.Inventory
|
||||||
|
import org.tasks.gtasks.PlayServices
|
||||||
|
import org.tasks.injection.InjectingPreferenceFragment
|
||||||
|
import org.tasks.ui.Toaster
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@AndroidEntryPoint
|
||||||
|
class LocationPreferences : InjectingPreferenceFragment() {
|
||||||
|
|
||||||
|
@Inject lateinit var playServices: PlayServices
|
||||||
|
@Inject lateinit var inventory: Inventory
|
||||||
|
@Inject lateinit var toaster: Toaster
|
||||||
|
|
||||||
|
override fun getPreferenceXml() = R.xml.preferences_location
|
||||||
|
|
||||||
|
override suspend fun setupPreferences(savedInstanceState: Bundle?) {
|
||||||
|
if (IS_GOOGLE_PLAY) {
|
||||||
|
findPreference(R.string.p_place_provider)
|
||||||
|
.setOnPreferenceChangeListener(this::onPlaceSearchChanged)
|
||||||
|
} else {
|
||||||
|
disable(
|
||||||
|
R.string.p_place_provider,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun onPlaceSearchChanged(preference: Preference, newValue: Any): Boolean =
|
||||||
|
if (newValue.toString().toIntOrNull() ?: 0 == 1) {
|
||||||
|
if (!playServices.refreshAndCheck()) {
|
||||||
|
playServices.resolve(activity)
|
||||||
|
false
|
||||||
|
} else if (!inventory.hasPro) {
|
||||||
|
toaster.longToast(R.string.requires_pro_subscription)
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:key="@string/preference_screen">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
android:key="@string/places"
|
||||||
|
android:title="@string/places">
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:defaultValue="0"
|
||||||
|
android:key="@string/p_place_provider"
|
||||||
|
android:title="@string/map_search_provider"
|
||||||
|
android:entries="@array/map_search_provider_names"
|
||||||
|
android:entryValues="@array/map_search_provider_values"
|
||||||
|
android:summary="%s" />
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
||||||
Loading…
Reference in New Issue