diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 9b19c603b..c1631b15f 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -51,10 +51,10 @@ dependencies {
compileOnly 'javax.annotation:javax.annotation-api:1.3.2'
compileOnly 'com.github.pengrad:jdk9-deps:1.0'
//App Compatibility and Material Design
- implementation 'androidx.appcompat:appcompat:1.4.0'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'androidx.appcompat:appcompat:1.4.1'
+ implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
- implementation "androidx.preference:preference-ktx:1.1.1"
+ implementation "androidx.preference:preference-ktx:1.2.0"
// Markdown
@@ -121,10 +121,10 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.0"
implementation "androidx.lifecycle:lifecycle-common-java8:2.4.0"
- implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
- implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
+ implementation 'androidx.navigation:navigation-fragment-ktx:2.4.0'
+ implementation 'androidx.navigation:navigation-ui-ktx:2.4.0'
implementation 'com.plattysoft.leonids:LeonidsLib:1.3.2'
- implementation "androidx.fragment:fragment-ktx:1.4.0"
+ implementation "androidx.fragment:fragment-ktx:1.4.1"
implementation "androidx.paging:paging-runtime-ktx:3.1.0"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'
@@ -142,7 +142,7 @@ dependencies {
android {
compileSdkVersion 32
- buildToolsVersion '30.0.2'
+ buildToolsVersion '30.0.3'
testOptions {
unitTests {
includeAndroidResources = true
@@ -157,7 +157,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 3218
+ versionCode 3221
versionName "3.5"
targetSdkVersion 32
@@ -382,8 +382,8 @@ def mainSrc = "${project.projectDir}/src/main/java"
task jacocoTestReport(type: JacocoReport, dependsOn: 'testProdDebugUnitTest') {
group = "Reporting"
reports {
- html.enabled = true
- xml.enabled = true
+ html.required.set(true)
+ xml.required.set(true)
//html.destination = "${buildDir}/reports/jacoco"
}
@@ -404,7 +404,6 @@ task jacocoTestReport(type: JacocoReport, dependsOn: 'testProdDebugUnitTest') {
task ktlint(type: JavaExec, group: "verification") {
description = "Check Kotlin code style."
classpath = configurations.ktlint
- main = "com.pinterest.ktlint.Main"
args "--disabled_rules=no-wildcard-imports", "--reporter=plain?group_by_file", "src/**/*.kt"
// to generate report in checkstyle format prepend following args:
// "--reporter=plain", "--reporter=checkstyle,output=${buildDir}/ktlint.xml"
@@ -417,6 +416,5 @@ check.dependsOn ktlint
task ktlintFormat(type: JavaExec, group: "formatting") {
description = "Fix Kotlin code style deviations."
classpath = configurations.ktlint
- main = "com.pinterest.ktlint.Main"
args "--disabled_rules=no-wildcard-imports", "-F", "src/**/*.kt"
}
diff --git a/Habitica/res/navigation/navigation.xml b/Habitica/res/navigation/navigation.xml
index 25342e65e..95648dfb3 100644
--- a/Habitica/res/navigation/navigation.xml
+++ b/Habitica/res/navigation/navigation.xml
@@ -464,7 +464,7 @@
-
+
showLoginNameDialog()
"confirm_username" -> showConfirmUsernameDialog()
"email" -> {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt
index ddfecaa8c..b7f33cdff 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt
@@ -33,7 +33,7 @@ class DayStartPreferenceDialogFragment : PreferenceDialogFragmentCompat() {
return lastHour.toString() + ":00"
}
- override fun onCreateDialogView(context: Context?): View {
+ override fun onCreateDialogView(context: Context): View {
val wrapper = LinearLayout(context)
wrapper.orientation = LinearLayout.VERTICAL
picker = TimePicker(context)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/EmailNotificationsPreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/EmailNotificationsPreferencesFragment.kt
index 7d81ddb33..0e1910c6c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/EmailNotificationsPreferencesFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/EmailNotificationsPreferencesFragment.kt
@@ -19,12 +19,12 @@ class EmailNotificationsPreferencesFragment : BasePreferencesFragment(), SharedP
override fun onResume() {
super.onResume()
- preferenceScreen.sharedPreferences.registerOnSharedPreferenceChangeListener(this)
+ preferenceScreen.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
}
override fun onPause() {
super.onPause()
- preferenceScreen.sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
+ preferenceScreen.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
}
override fun setupPreferences() { /* no-on */ }
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt
index 1c289f462..6702d0374 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt
@@ -62,16 +62,16 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
override fun setupPreferences() {
timePreference = findPreference("reminder_time") as? TimePreference
- val useReminder = preferenceManager.sharedPreferences.getBoolean("use_reminder", false)
- timePreference?.isEnabled = useReminder
+ val useReminder = preferenceManager.sharedPreferences?.getBoolean("use_reminder", false)
+ timePreference?.isEnabled = useReminder ?: false
pushNotificationsPreference = findPreference("pushNotifications") as? PreferenceScreen
- val usePushNotifications = preferenceManager.sharedPreferences.getBoolean("usePushNotifications", true)
- pushNotificationsPreference?.isEnabled = usePushNotifications
+ val usePushNotifications = preferenceManager.sharedPreferences?.getBoolean("usePushNotifications", true)
+ pushNotificationsPreference?.isEnabled = usePushNotifications ?: false
emailNotificationsPreference = findPreference("emailNotifications") as? PreferenceScreen
- val useEmailNotifications = preferenceManager.sharedPreferences.getBoolean("useEmailNotifications", true)
- emailNotificationsPreference?.isEnabled = useEmailNotifications
+ val useEmailNotifications = preferenceManager.sharedPreferences?.getBoolean("useEmailNotifications", true)
+ emailNotificationsPreference?.isEnabled = useEmailNotifications ?: false
classSelectionPreference = findPreference("choose_class")
@@ -80,7 +80,7 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
serverUrlPreference = findPreference("server_url") as? ListPreference
serverUrlPreference?.isVisible = false
- serverUrlPreference?.summary = preferenceManager.sharedPreferences.getString("server_url", "")
+ serverUrlPreference?.summary = preferenceManager.sharedPreferences?.getString("server_url", "")
val themePreference = findPreference("theme_name") as? ListPreference
themePreference?.summary = themePreference?.entry ?: "Default"
@@ -101,11 +101,11 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
override fun onResume() {
super.onResume()
- preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(this)
+ preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
}
override fun onPause() {
- preferenceManager.sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
+ preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
super.onPause()
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PushNotificationsPreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PushNotificationsPreferencesFragment.kt
index 4de688c49..97a6eb276 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PushNotificationsPreferencesFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PushNotificationsPreferencesFragment.kt
@@ -19,12 +19,12 @@ class PushNotificationsPreferencesFragment : BasePreferencesFragment(), SharedPr
override fun onResume() {
super.onResume()
- preferenceScreen.sharedPreferences.registerOnSharedPreferenceChangeListener(this)
+ preferenceScreen.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
}
override fun onPause() {
super.onPause()
- preferenceScreen.sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
+ preferenceScreen.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
}
override fun setupPreferences() { /* no-on */ }
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt
index b9dc928a5..d7c97b50d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt
@@ -34,7 +34,7 @@ class TimePreferenceDialogFragment : PreferenceDialogFragmentCompat() {
return lastHour.toString() + ":" + String.format(Locale.UK, "%02d", lastMinute)
}
- override fun onCreateDialogView(context: Context?): View {
+ override fun onCreateDialogView(context: Context): View {
picker = TimePicker(context)
picker.setIs24HourView(android.text.format.DateFormat.is24HourFormat(context))
return picker
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt
index 54ba9940e..4a5a5cdc7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt
@@ -8,7 +8,7 @@ import androidx.preference.PreferenceViewHolder
import com.habitrpg.android.habitica.R
class ExtraLabelPreference(
- context: Context?,
+ context: Context,
attrs: AttributeSet?
) : Preference(context, attrs) {
var extraText: String? = null
@@ -18,9 +18,9 @@ class ExtraLabelPreference(
layoutResource = R.layout.preference_button
}
- override fun onBindViewHolder(holder: PreferenceViewHolder?) {
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
super.onBindViewHolder(holder)
- val textView = holder?.itemView?.findViewById(R.id.extra_label)
+ val textView = holder.itemView.findViewById(R.id.extra_label)
textView?.text = extraText
extraTextColor?.let {
textView?.setTextColor(it)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AddTaskWidgetProvider.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AddTaskWidgetProvider.kt
index 9bff91d95..923b83bad 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AddTaskWidgetProvider.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AddTaskWidgetProvider.kt
@@ -61,7 +61,7 @@ class AddTaskWidgetProvider : BaseWidgetProvider() {
}
private fun getSelectedTaskType(widgetId: Int): TaskType {
- val preferences = PreferenceManager.getDefaultSharedPreferences(this.context)
- return TaskType.from(preferences.getString("add_task_widget_$widgetId", TaskType.HABIT.value)) ?: TaskType.HABIT
+ val preferences = context?.let { PreferenceManager.getDefaultSharedPreferences(it) }
+ return TaskType.from(preferences?.getString("add_task_widget_$widgetId", TaskType.HABIT.value)) ?: TaskType.HABIT
}
}