diff --git a/CHANGELOG.md b/CHANGELOG.md index ec7c636e..8db8769d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### v3.2.0 +- Add Android 16 preview - Add 'Animator duration scale' alert - Update App theme colors - Update App monochrome logo diff --git a/CHANGELOG_zh.md b/CHANGELOG_zh.md index 7f09a24c..a1ec9b68 100644 --- a/CHANGELOG_zh.md +++ b/CHANGELOG_zh.md @@ -2,6 +2,7 @@ ### v3.2.0 +- 添加 Android 16 预览 - 添加 ‘Animator 时长缩放’ 检查 - 更新 App 主题色 - 更新 App 单色图标 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 578b0137..49002f8a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -69,10 +69,6 @@ android { create("alpha") { dimension = "track" versionNameSuffix = "-alpha" - ndk { - //noinspection ChromeOsAbiSupport - abiFilters += listOf("arm64-v8a", "armeabi-v7a") - } } create("beta") { dimension = "track" diff --git a/app/src/main/java/com/dede/android_eggs/inject/EasterEggModules.kt b/app/src/main/java/com/dede/android_eggs/inject/EasterEggModules.kt index 908c7b82..99f3c157 100644 --- a/app/src/main/java/com/dede/android_eggs/inject/EasterEggModules.kt +++ b/app/src/main/java/com/dede/android_eggs/inject/EasterEggModules.kt @@ -9,6 +9,7 @@ import com.android_k.egg.AndroidKitKatEasterEgg import com.android_l.egg.AndroidLollipopEasterEgg import com.android_m.egg.AndroidMarshmallowEasterEgg import com.android_n.egg.AndroidNougatEasterEgg +import com.android_next.egg.AndroidNextEasterEgg import com.android_o.egg.AndroidOreoEasterEgg import com.android_p.egg.AndroidPieEasterEgg import com.android_q.egg.AndroidQEasterEgg @@ -31,7 +32,7 @@ import javax.inject.Singleton @Module( includes = [ -// AndroidNextEasterEgg::class, + AndroidNextEasterEgg::class, AndroidVEasterEgg::class, AndroidUEasterEgg::class, AndroidTEasterEgg::class, diff --git a/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt b/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt index c8a5b680..c094a81b 100644 --- a/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt +++ b/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt @@ -54,7 +54,7 @@ class AlterableAdaptiveIconDrawable( private var layerBitmap: Bitmap? = null private var layerShader: BitmapShader? = null - val isAdaptiveIconDrawable: Boolean + val isSupportMatrix: Boolean private val foregroundMatrix = Matrix() init { @@ -71,10 +71,10 @@ class AlterableAdaptiveIconDrawable( ChildDrawable(drawable.background, BACKGROUND_ID), ChildDrawable(drawable.foreground, FOREGROUND_ID) ) - isAdaptiveIconDrawable = true + isSupportMatrix = true } else { childDrawables = arrayOf(ChildDrawable(drawable, BACKGROUND_ID)) - isAdaptiveIconDrawable = false + isSupportMatrix = false } } @@ -89,7 +89,7 @@ class AlterableAdaptiveIconDrawable( } fun setForegroundMatrix(matrix: Matrix) { - if (!isAdaptiveIconDrawable) return + if (!isSupportMatrix) return foregroundMatrix.set(matrix) invalidateSelf() } @@ -155,7 +155,7 @@ class AlterableAdaptiveIconDrawable( private fun updateLayerBoundsInternal(bounds: Rect) { val outRect = tempRect - if (isAdaptiveIconDrawable) { + if (isSupportMatrix) { val cX: Int = bounds.width() / 2 val cY: Int = bounds.height() / 2 val insetWidth: Int = (bounds.width() / (DEFAULT_VIEW_PORT_SCALE * 2)).toInt() diff --git a/app/src/main/java/com/dede/android_eggs/views/main/util/EasterEggHelp.kt b/app/src/main/java/com/dede/android_eggs/views/main/util/EasterEggHelp.kt index 0f02ba56..79f8102e 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/util/EasterEggHelp.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/util/EasterEggHelp.kt @@ -139,6 +139,7 @@ object EasterEggHelp { init { apiLevelArrays[Build.VERSION_CODES.CUR_DEVELOPMENT] = "Next" + apiLevelArrays[36] = "16" apiLevelArrays[Build.VERSION_CODES.VANILLA_ICE_CREAM] = "15" apiLevelArrays[Build.VERSION_CODES.UPSIDE_DOWN_CAKE] = "14" apiLevelArrays[Build.VERSION_CODES.TIRAMISU] = "13" diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/SettingsScreen.kt b/app/src/main/java/com/dede/android_eggs/views/settings/SettingsScreen.kt index 65563971..8b4fef8c 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/SettingsScreen.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/SettingsScreen.kt @@ -59,6 +59,7 @@ import com.dede.android_eggs.views.settings.compose.options.TestCrashOption import com.dede.android_eggs.views.settings.compose.prefs.ComponentManagerPref import com.dede.android_eggs.views.settings.compose.prefs.IconShapePref import com.dede.android_eggs.views.settings.compose.prefs.IconVisualEffectsPref +import com.dede.android_eggs.views.settings.compose.prefs.IconVisualEffectsPrefUtil import com.dede.android_eggs.views.settings.compose.prefs.LanguagePref import com.dede.android_eggs.views.settings.compose.prefs.LanguagePrefUtil import com.dede.android_eggs.views.settings.compose.prefs.RetainInRecentsPref @@ -142,7 +143,9 @@ fun SettingsScreen(drawerState: DrawerState = rememberDrawerState(DrawerValue.Cl LanguagePref() } - IconVisualEffectsPref() + if (IconVisualEffectsPrefUtil.isSupported()) { + IconVisualEffectsPref() + } SettingDivider() diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/compose/prefs/IconVisualEffectsPref.kt b/app/src/main/java/com/dede/android_eggs/views/settings/compose/prefs/IconVisualEffectsPref.kt index 0556da04..99331c6f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/compose/prefs/IconVisualEffectsPref.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/compose/prefs/IconVisualEffectsPref.kt @@ -1,6 +1,7 @@ package com.dede.android_eggs.views.settings.compose.prefs import android.content.Context +import android.os.Build import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.Animation import androidx.compose.runtime.Composable @@ -17,8 +18,12 @@ object IconVisualEffectsPrefUtil { const val ACTION_CHANGED = "com.dede.android_eggs.IconVisualEffectsChanged" const val KEY_ICON_VISUAL_EFFECTS = "pref_key_icon_visual_effects" + fun isSupported(): Boolean { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + } + fun isEnable(context: Context): Boolean { - return SettingPrefUtil.getValue( + return isSupported() && SettingPrefUtil.getValue( context, KEY_ICON_VISUAL_EFFECTS, SettingPrefUtil.OFF ) == SettingPrefUtil.ON } diff --git a/eggs/AndroidNext/src/main/java/com/android_next/egg/AndroidNextEasterEgg.kt b/eggs/AndroidNext/src/main/java/com/android_next/egg/AndroidNextEasterEgg.kt index 5ac5b20f..7f571914 100644 --- a/eggs/AndroidNext/src/main/java/com/android_next/egg/AndroidNextEasterEgg.kt +++ b/eggs/AndroidNext/src/main/java/com/android_next/egg/AndroidNextEasterEgg.kt @@ -1,7 +1,6 @@ package com.android_next.egg import android.content.Context -import android.os.Build import android.view.View import android.widget.ImageView import androidx.annotation.DrawableRes @@ -20,25 +19,27 @@ import dagger.multibindings.IntoSet import java.util.Calendar import javax.inject.Singleton -//@Module -//@InstallIn(SingletonComponent::class) +@Module +@InstallIn(SingletonComponent::class) object AndroidNextEasterEgg : EasterEggProvider { const val RELEASE_YEAR = 2025 private const val RELEASE_MONTH = Calendar.SEPTEMBER - private const val NEXT_API = Build.VERSION_CODES.CUR_DEVELOPMENT// android next +// private const val NEXT_API = Build.VERSION_CODES.CUR_DEVELOPMENT// android next + private const val NEXT_API = 36// android 16 - private const val TIMELINE_EVENT = "Wow, Android Next." +// private const val TIMELINE_EVENT = "Wow, Android Next." + private const val TIMELINE_EVENT = "Hello, Android Baklava." @StringRes private val NICKNAME_RES = R.string.nickname_android_next @DrawableRes - private val LOGO_RES = R.drawable.ic_droid_logo + private val LOGO_RES = R.drawable.ic_android_16_logo @DrawableRes - private val PLATLOGO_RES = R.drawable.img_droid_next + private val PLATLOGO_RES = R.drawable.ic_android_16_platlogo fun getTimelineMessage(context: Context): String { val calendar = Calendar.getInstance() @@ -50,9 +51,9 @@ object AndroidNextEasterEgg : EasterEggProvider { } } -// @Provides -// @IntoSet -// @Singleton + @Provides + @IntoSet + @Singleton override fun provideEasterEgg(): BaseEasterEgg { return object : EasterEgg( iconRes = LOGO_RES, @@ -80,9 +81,9 @@ object AndroidNextEasterEgg : EasterEggProvider { } } -// @Provides -// @IntoSet -// @Singleton + @Provides + @IntoSet + @Singleton override fun provideTimelineEvents(): List { return listOf( TimelineEvent( diff --git a/eggs/AndroidNext/src/main/res/drawable-v26/ic_android_16_logo.xml b/eggs/AndroidNext/src/main/res/drawable-v26/ic_android_16_logo.xml new file mode 100644 index 00000000..3e9dcd93 --- /dev/null +++ b/eggs/AndroidNext/src/main/res/drawable-v26/ic_android_16_logo.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo.xml b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo.xml new file mode 100644 index 00000000..ab5e90cf --- /dev/null +++ b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo_background.xml b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo_background.xml new file mode 100644 index 00000000..800240b7 --- /dev/null +++ b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo_background.xml @@ -0,0 +1,3 @@ + + diff --git a/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo_foreground.xml b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo_foreground.xml new file mode 100644 index 00000000..2dbfb28b --- /dev/null +++ b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_logo_foreground.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eggs/AndroidNext/src/main/res/drawable/ic_android_16_platlogo.xml b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_platlogo.xml new file mode 100644 index 00000000..5dce4b19 --- /dev/null +++ b/eggs/AndroidNext/src/main/res/drawable/ic_android_16_platlogo.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eggs/AndroidNext/src/main/res/values/strings.xml b/eggs/AndroidNext/src/main/res/values/strings.xml index e9923429..75812211 100644 --- a/eggs/AndroidNext/src/main/res/values/strings.xml +++ b/eggs/AndroidNext/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ - Droid Next + + Baklava Currently unavailable The final release version has been released diff --git a/fastlane/metadata/android/en-US/changelogs/53.txt b/fastlane/metadata/android/en-US/changelogs/53.txt index f5de623b..aa6e1821 100644 --- a/fastlane/metadata/android/en-US/changelogs/53.txt +++ b/fastlane/metadata/android/en-US/changelogs/53.txt @@ -1,3 +1,4 @@ +- Add Android 16 preview - Add 'Animator duration scale' alert - Update App theme colors - Update App monochrome logo diff --git a/fastlane/metadata/android/zh-CN/changelogs/53.txt b/fastlane/metadata/android/zh-CN/changelogs/53.txt index 3bf50c76..0c50270f 100644 --- a/fastlane/metadata/android/zh-CN/changelogs/53.txt +++ b/fastlane/metadata/android/zh-CN/changelogs/53.txt @@ -1,3 +1,4 @@ +- 添加 Android 16 预览 - 添加 ‘Animator 时长缩放’ 检查 - 更新 App 主题色 - 更新 App 单色图标