diff --git a/uhabits-android/build.gradle.kts b/uhabits-android/build.gradle.kts
index 8dc354c7f..022d7941e 100644
--- a/uhabits-android/build.gradle.kts
+++ b/uhabits-android/build.gradle.kts
@@ -37,7 +37,7 @@ android {
defaultConfig {
versionCode = 20100
versionName = "2.1.0"
- minSdk = 23
+ minSdk = 28
targetSdk = 31
applicationId = "org.isoron.uhabits"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
diff --git a/uhabits-android/src/main/java/com/android/datetimepicker/Utils.java b/uhabits-android/src/main/java/com/android/datetimepicker/Utils.java
index 37dd730be..1a69f412b 100644
--- a/uhabits-android/src/main/java/com/android/datetimepicker/Utils.java
+++ b/uhabits-android/src/main/java/com/android/datetimepicker/Utils.java
@@ -22,7 +22,6 @@ import android.animation.Keyframe;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.annotation.SuppressLint;
-import android.os.Build;
import android.text.format.Time;
import android.view.View;
@@ -43,17 +42,13 @@ public class Utils {
static final String SHARED_PREFS_NAME = "com.android.calendar_preferences";
- public static boolean isJellybeanOrLater() {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
- }
-
/**
* Try to speak the specified text, for accessibility. Only available on JB or later.
* @param text Text to announce.
*/
@SuppressLint("NewApi")
public static void tryAccessibilityAnnounce(View view, CharSequence text) {
- if (isJellybeanOrLater() && view != null && text != null) {
+ if (view != null && text != null) {
view.announceForAccessibility(text);
}
}
diff --git a/uhabits-android/src/main/java/com/android/datetimepicker/date/DayPickerView.java b/uhabits-android/src/main/java/com/android/datetimepicker/date/DayPickerView.java
index 05348fe8c..b18c358b0 100644
--- a/uhabits-android/src/main/java/com/android/datetimepicker/date/DayPickerView.java
+++ b/uhabits-android/src/main/java/com/android/datetimepicker/date/DayPickerView.java
@@ -383,10 +383,6 @@ public abstract class DayPickerView extends ListView implements OnScrollListener
if (child instanceof MonthView) {
final CalendarDay focus = ((MonthView) child).getAccessibilityFocus();
if (focus != null) {
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR1) {
- // Clear focus to avoid ListView bug in Jelly Bean MR1.
- ((MonthView) child).clearAccessibilityFocus();
- }
return focus;
}
}
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsFragment.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsFragment.kt
index f297b5e0d..28fbd63d8 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsFragment.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/settings/SettingsFragment.kt
@@ -22,8 +22,6 @@ import android.app.backup.BackupManager
import android.content.Intent
import android.content.SharedPreferences
import android.content.SharedPreferences.OnSharedPreferenceChangeListener
-import android.os.Build
-import android.os.Build.VERSION.SDK_INT
import android.os.Bundle
import android.provider.Settings
import android.util.Log
@@ -98,7 +96,6 @@ class SettingsFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeLis
showRingtonePicker()
return true
} else if (key == "reminderCustomize") {
- if (SDK_INT < Build.VERSION_CODES.O) return true
createAndroidNotificationChannel(requireContext())
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
intent.putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName)
@@ -120,11 +117,7 @@ class SettingsFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeLis
}
updateWeekdayPreference()
- if (SDK_INT < Build.VERSION_CODES.O)
- findPreference("reminderCustomize").isVisible = false
- else {
- findPreference("reminderSound").isVisible = false
- }
+ findPreference("reminderSound").isVisible = false
}
private fun updateWeekdayPreference() {
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt
index 47279f3d8..09d8f8b46 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt
@@ -168,14 +168,12 @@ class AndroidNotificationTray
fun createAndroidNotificationChannel(context: Context) {
val notificationManager = context.getSystemService(Activity.NOTIFICATION_SERVICE)
as NotificationManager
- if (SDK_INT >= Build.VERSION_CODES.O) {
- val channel = NotificationChannel(
- REMINDERS_CHANNEL_ID,
- context.resources.getString(R.string.reminder),
- NotificationManager.IMPORTANCE_DEFAULT
- )
- notificationManager.createNotificationChannel(channel)
- }
+ val channel = NotificationChannel(
+ REMINDERS_CHANNEL_ID,
+ context.resources.getString(R.string.reminder),
+ NotificationManager.IMPORTANCE_DEFAULT
+ )
+ notificationManager.createNotificationChannel(channel)
}
}
}
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/utils/SystemUtils.kt b/uhabits-android/src/main/java/org/isoron/uhabits/utils/SystemUtils.kt
index 8fe759169..608abcff1 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/utils/SystemUtils.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/utils/SystemUtils.kt
@@ -21,18 +21,11 @@ package org.isoron.uhabits.utils
import android.app.Activity
import android.app.KeyguardManager
import android.content.Context
-import android.os.Build
-import android.os.Build.VERSION.SDK_INT
-import android.view.WindowManager
object SystemUtils {
fun unlockScreen(activity: Activity) {
- if (SDK_INT >= Build.VERSION_CODES.O) {
- val km = activity.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
- km.requestDismissKeyguard(activity, null)
- } else {
- activity.window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD)
- }
+ val km = activity.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
+ km.requestDismissKeyguard(activity, null)
}
}
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/CheckmarkWidget.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/CheckmarkWidget.kt
index fbbb7ffd1..66d1da842 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/CheckmarkWidget.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/CheckmarkWidget.kt
@@ -21,9 +21,7 @@ package org.isoron.uhabits.widgets
import android.app.PendingIntent
import android.content.Context
-import android.os.Build
import android.view.View
-import androidx.annotation.RequiresApi
import org.isoron.platform.gui.toInt
import org.isoron.uhabits.core.models.Entry
import org.isoron.uhabits.core.models.Habit
@@ -49,7 +47,6 @@ open class CheckmarkWidget(
}
}
- @RequiresApi(Build.VERSION_CODES.O)
override fun refreshData(widgetView: View) {
(widgetView as CheckmarkWidgetView).apply {
val today = DateUtils.getTodayWithOffset()
diff --git a/uhabits-android/src/main/res/drawable-v21/widget_button_background.xml b/uhabits-android/src/main/res/drawable-v21/widget_button_background.xml
deleted file mode 100644
index 9187c326a..000000000
--- a/uhabits-android/src/main/res/drawable-v21/widget_button_background.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/uhabits-android/src/main/res/drawable-v21/ripple.xml b/uhabits-android/src/main/res/drawable/ripple.xml
similarity index 100%
rename from uhabits-android/src/main/res/drawable-v21/ripple.xml
rename to uhabits-android/src/main/res/drawable/ripple.xml
diff --git a/uhabits-android/src/main/res/drawable-v21/ripple_transparent.xml b/uhabits-android/src/main/res/drawable/ripple_transparent.xml
similarity index 100%
rename from uhabits-android/src/main/res/drawable-v21/ripple_transparent.xml
rename to uhabits-android/src/main/res/drawable/ripple_transparent.xml
diff --git a/uhabits-android/src/main/res/drawable-v21/selected_box.xml b/uhabits-android/src/main/res/drawable/selected_box.xml
similarity index 100%
rename from uhabits-android/src/main/res/drawable-v21/selected_box.xml
rename to uhabits-android/src/main/res/drawable/selected_box.xml
diff --git a/uhabits-android/src/main/res/drawable/widget_button_background.xml b/uhabits-android/src/main/res/drawable/widget_button_background.xml
index 09785886f..9187c326a 100644
--- a/uhabits-android/src/main/res/drawable/widget_button_background.xml
+++ b/uhabits-android/src/main/res/drawable/widget_button_background.xml
@@ -17,18 +17,23 @@
~ with this program. If not, see .
-->
-
- -
-
-
-
+
+
-
+
+
+
-
-
+
+
-
+
-
+
+
diff --git a/uhabits-android/src/main/res/mipmap-anydpi b/uhabits-android/src/main/res/mipmap-anydpi
new file mode 100644
index 000000000..e69de29bb
diff --git a/uhabits-android/src/main/res/values-v21/styles_list_habits.xml b/uhabits-android/src/main/res/values-v21/styles_list_habits.xml
deleted file mode 100644
index b433ddf8e..000000000
--- a/uhabits-android/src/main/res/values-v21/styles_list_habits.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file