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 } }