mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-06 14:16:42 +00:00
update preferences dependency
This commit is contained in:
parent
a381458a28
commit
eb2333667b
9 changed files with 33 additions and 40 deletions
|
|
@ -61,6 +61,9 @@ dependencies {
|
|||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
||||
implementation 'com.google.android.material:material:1.3.0'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.2.0'
|
||||
implementation "androidx.preference:preference-ktx:1.1.1"
|
||||
|
||||
|
||||
// Markdown
|
||||
implementation "io.noties.markwon:core:4.6.2"
|
||||
implementation "io.noties.markwon:ext-strikethrough:4.6.2"
|
||||
|
|
@ -143,7 +146,7 @@ android {
|
|||
buildConfigField "String", "TESTING_LEVEL", "\"production\""
|
||||
resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW"
|
||||
|
||||
versionCode 2962
|
||||
versionCode 2964
|
||||
versionName "3.3"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@
|
|||
<item name="popupMenuStyle">@style/PopupTheme</item>
|
||||
<item name="actionOverflowMenuStyle">@style/PopupTheme</item>
|
||||
<item name="android:popupMenuStyle">@style/PopupTheme</item>
|
||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||
<item name="android:textColorLink">@color/brand_400</item>
|
||||
<item name="alertDialogTheme">@style/AlertDialogTheme</item>
|
||||
<item name="android:windowTranslucentStatus">false</item>
|
||||
|
|
@ -815,10 +814,6 @@
|
|||
<item name="searchHintIcon">@null</item>
|
||||
</style>
|
||||
|
||||
<style name="PreferenceThemeOverlay.v14" tools:override="true">
|
||||
<item name="android:background">@color/content_background</item>
|
||||
</style>
|
||||
|
||||
<style name="FlatCardView">
|
||||
<item name="android:background">@drawable/layout_rounded_bg_window</item>
|
||||
<item name="android:layout_margin">@dimen/spacing_medium</item>
|
||||
|
|
|
|||
|
|
@ -36,8 +36,6 @@ object GSonFactoryCreator {
|
|||
val ownedMountListType = object : TypeToken<RealmList<OwnedMount?>?>() {}.type
|
||||
val achievementsListType = object : TypeToken<List<Achievement?>?>() {}.type
|
||||
|
||||
|
||||
//Exclusion strategy needed for DBFlow https://github.com/Raizlabs/DBFlow/issues/121
|
||||
val gson = GsonBuilder()
|
||||
.registerTypeAdapter(taskTagClassListType, TaskTagDeserializer())
|
||||
.registerTypeAdapter(Boolean::class.java, BooleanAsIntAdapter())
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class APIPreferenceFragment: BasePreferencesFragment() {
|
|||
override fun setupPreferences() {
|
||||
for ((key, value) in preferenceScreen.sharedPreferences.all) {
|
||||
if (apiPreferences.contains(key) && value != null) {
|
||||
findPreference(key).summary = value.toString()
|
||||
findPreference<Preference>(key)?.summary = value.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import android.widget.EditText
|
|||
import android.widget.LinearLayout
|
||||
import android.widget.Toast
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import com.habitrpg.android.habitica.HabiticaBaseApplication
|
||||
|
|
@ -46,17 +47,17 @@ class AuthenticationPreferenceFragment: BasePreferencesFragment() {
|
|||
HabiticaBaseApplication.userComponent?.inject(this)
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
findPreference("login_name").title = context?.getString(R.string.username)
|
||||
findPreference("confirm_username").isVisible = user?.flags?.verifiedUsername != true
|
||||
findPreference<Preference>("login_name")?.title = context?.getString(R.string.username)
|
||||
findPreference<Preference>("confirm_username")?.isVisible = user?.flags?.verifiedUsername != true
|
||||
}
|
||||
|
||||
private fun updateUserFields() {
|
||||
configurePreference(findPreference("login_name"), user?.authentication?.localAuthentication?.username, false)
|
||||
configurePreference(findPreference("email"), user?.authentication?.localAuthentication?.email, true)
|
||||
findPreference("change_password").isVisible = user?.authentication?.localAuthentication?.email?.isNotEmpty() == true
|
||||
findPreference("add_local_auth").isVisible = user?.authentication?.localAuthentication?.email?.isNotEmpty() != true
|
||||
findPreference("confirm_username").isVisible = user?.flags?.verifiedUsername != true
|
||||
val preference = findPreference("authentication_methods")
|
||||
findPreference<Preference>("change_password")?.isVisible = user?.authentication?.localAuthentication?.email?.isNotEmpty() == true
|
||||
findPreference<Preference>("add_local_auth")?.isVisible = user?.authentication?.localAuthentication?.email?.isNotEmpty() != true
|
||||
findPreference<Preference>("confirm_username")?.isVisible = user?.flags?.verifiedUsername != true
|
||||
val preference = findPreference<Preference>("authentication_methods")
|
||||
val methods = mutableListOf<String>()
|
||||
if (user?.authentication?.localAuthentication?.email != null) {
|
||||
context?.getString(R.string.local)?.let { methods.add(it) }
|
||||
|
|
@ -64,7 +65,7 @@ class AuthenticationPreferenceFragment: BasePreferencesFragment() {
|
|||
if (user?.authentication?.hasFacebookAuth == true) { context?.getString(R.string.facebook)?.let { methods.add(it) } }
|
||||
if (user?.authentication?.hasGoogleAuth == true) { context?.getString(R.string.google)?.let { methods.add(it) } }
|
||||
if (user?.authentication?.hasAppleAuth == true) { context?.getString(R.string.apple_sign_in)?.let { methods.add(it) } }
|
||||
preference.summary = methods.joinToString(", ")
|
||||
preference?.summary = methods.joinToString(", ")
|
||||
}
|
||||
|
||||
private fun configurePreference(preference: Preference?, value: String?, hideIfEmpty: Boolean) {
|
||||
|
|
|
|||
|
|
@ -24,11 +24,7 @@ abstract class BasePreferencesFragment : PreferenceFragmentCompat() {
|
|||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
val userID = preferenceManager.sharedPreferences.getString(context?.getString(R.string.SP_userID), null)
|
||||
if (userID != null) {
|
||||
compositeSubscription.add(userRepository.getUser(userID).subscribe({ this.setUser(it) }, RxErrorHandler.handleEmptyError()))
|
||||
}
|
||||
compositeSubscription.add(userRepository.getUser().subscribe({ this.setUser(it) }, RxErrorHandler.handleEmptyError()))
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
|
|
|||
|
|
@ -236,15 +236,15 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
|
|||
.subscribe({ }, RxErrorHandler.handleEmptyError())
|
||||
"server_url" -> {
|
||||
apiClient.updateServerUrl(sharedPreferences.getString(key, ""))
|
||||
findPreference(key).summary = sharedPreferences.getString(key, "")
|
||||
findPreference<Preference>(key)?.summary = sharedPreferences.getString(key, "")
|
||||
}
|
||||
"task_display" -> {
|
||||
val preference = findPreference(key) as ListPreference
|
||||
preference.summary = preference.entry
|
||||
val preference = findPreference<ListPreference>(key)
|
||||
preference?.summary = preference?.entry
|
||||
}
|
||||
"FirstDayOfTheWeek" -> {
|
||||
val preference = findPreference(key) as ListPreference
|
||||
preference.summary = preference.entry
|
||||
val preference = findPreference<ListPreference>(key)
|
||||
preference?.summary = preference?.entry
|
||||
}
|
||||
"disablePMs" -> {
|
||||
val isDisabled = sharedPreferences.getBoolean("disablePMs", false)
|
||||
|
|
@ -254,8 +254,8 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
|
|||
}
|
||||
}
|
||||
"launch_screen" -> {
|
||||
val preference = findPreference(key) as ListPreference
|
||||
preference.summary = preference.entry ?: "Habits"
|
||||
val preference = findPreference<ListPreference>(key)
|
||||
preference?.summary = preference?.entry ?: "Habits"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -297,7 +297,7 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
|
|||
}
|
||||
val cdsTimePreference = findPreference("cds_time") as? TimePreference
|
||||
cdsTimePreference?.text = user?.preferences?.dayStart.toString() + ":00"
|
||||
findPreference("dailyDueDefaultView").setDefaultValue(user?.preferences?.dailyDueDefaultView)
|
||||
findPreference<Preference>("dailyDueDefaultView")?.setDefaultValue(user?.preferences?.dailyDueDefaultView)
|
||||
val languagePreference = findPreference("language") as? ListPreference
|
||||
languagePreference?.value = user?.preferences?.language
|
||||
languagePreference?.summary = languagePreference?.entry
|
||||
|
|
@ -305,19 +305,19 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
|
|||
audioThemePreference?.value = user?.preferences?.sound
|
||||
audioThemePreference?.summary = audioThemePreference?.entry
|
||||
|
||||
val preference = findPreference("authentication")
|
||||
val preference = findPreference<Preference>("authentication")
|
||||
if (user?.flags?.verifiedUsername == true) {
|
||||
preference.layoutResource = R.layout.preference_child_summary
|
||||
preference.summary = context?.getString(R.string.authentication_summary)
|
||||
preference?.layoutResource = R.layout.preference_child_summary
|
||||
preference?.summary = context?.getString(R.string.authentication_summary)
|
||||
} else {
|
||||
preference.layoutResource = R.layout.preference_child_summary_error
|
||||
preference.summary = context?.getString(R.string.username_not_confirmed)
|
||||
preference?.layoutResource = R.layout.preference_child_summary_error
|
||||
preference?.summary = context?.getString(R.string.username_not_confirmed)
|
||||
}
|
||||
|
||||
if (user?.party?.id?.isNotBlank() != true) {
|
||||
val launchScreenPreference = findPreference("launch_screen") as ListPreference
|
||||
launchScreenPreference.entries = resources.getStringArray(R.array.launch_screen_types).dropLast(1).toTypedArray()
|
||||
launchScreenPreference.entryValues = resources.getStringArray(R.array.launch_screen_values).dropLast(1).toTypedArray()
|
||||
val launchScreenPreference = findPreference<ListPreference>("launch_screen")
|
||||
launchScreenPreference?.entries = resources.getStringArray(R.array.launch_screen_types).dropLast(1).toTypedArray()
|
||||
launchScreenPreference?.entryValues = resources.getStringArray(R.array.launch_screen_values).dropLast(1).toTypedArray()
|
||||
}
|
||||
|
||||
val disablePMsPreference = findPreference("disablePMs") as? CheckBoxPreference
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class ProfilePreferencesFragment: BasePreferencesFragment(), SharedPreferences.O
|
|||
updateUserFields()
|
||||
}
|
||||
|
||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String) {
|
||||
val profileCategory = findPreference("profile") as? PreferenceCategory
|
||||
configurePreference(profileCategory?.findPreference(key), sharedPreferences?.getString(key, ""))
|
||||
if (sharedPreferences != null) {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ import com.habitrpg.android.habitica.extensions.getAsString
|
|||
import com.habitrpg.android.habitica.models.Achievement
|
||||
import java.lang.reflect.Type
|
||||
|
||||
class AchievementListDeserializer: JsonDeserializer<List<Achievement>> {
|
||||
class AchievementListDeserializer: JsonDeserializer<List<Achievement?>> {
|
||||
|
||||
override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): List<Achievement> {
|
||||
override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): List<Achievement?> {
|
||||
val achievements = mutableListOf<Achievement>()
|
||||
for (categoryEntry in json?.asJsonObject?.entrySet() ?: emptySet()) {
|
||||
val categoryIdentifier = categoryEntry.key
|
||||
|
|
|
|||
Loading…
Reference in a new issue