Skip to content

Commit 4600d0d

Browse files
committed
Merge branch 'release/1.9.3'
2 parents 8839698 + 429b725 commit 4600d0d

File tree

223 files changed

+9333
-2007
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

223 files changed

+9333
-2007
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Organize the Easter eggs of the official versions of the Android system.
55
![Easter Eggs](https://img.shields.io/badge/Android-Easter%20Eggs-red?logo=android) ![GitHub top language](https://img.shields.io/github/languages/top/hushenghao/AndroidEasterEggs?logo=kotlin)
66
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/hushenghao/AndroidEasterEggs) [![GitHub](https://img.shields.io/github/license/hushenghao/AndroidEasterEggs)](https://github.com/hushenghao/AndroidEasterEggs/blob/master/LICENSE) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/hushenghao/AndroidEasterEggs)](https://github.com/hushenghao/AndroidEasterEggs/releases)
77

8+
[![Alt](https://repobeats.axiom.co/api/embed/66c4053d3e594aed0242e0bac779378ef4da9129.svg "Repobeats analytics image")](https://github.com/hushenghao/AndroidEasterEggs/pulse)
9+
810
![logo](./images/ic_launcher_round.png)
911

1012
[中文](./README_zh.md)

README_zh.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
![Easter Eggs](https://img.shields.io/badge/Android-Easter%20Eggs-red?logo=android) ![GitHub top language](https://img.shields.io/github/languages/top/hushenghao/AndroidEasterEggs?logo=kotlin)
66
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/hushenghao/AndroidEasterEggs) [![GitHub](https://img.shields.io/github/license/hushenghao/AndroidEasterEggs)](https://github.com/hushenghao/AndroidEasterEggs/blob/master/LICENSE) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/hushenghao/AndroidEasterEggs)](https://github.com/hushenghao/AndroidEasterEggs/releases)
77

8+
[![Alt](https://repobeats.axiom.co/api/embed/66c4053d3e594aed0242e0bac779378ef4da9129.svg "Repobeats analytics image")](https://github.com/hushenghao/AndroidEasterEggs/pulse)
9+
810
![logo](./images/ic_launcher_round.png)
911

1012
[English](./README.md)

app/build.gradle.kts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
@file:Suppress("UnstableApiUsage")
22

3+
import Versions.gitHash
4+
import Versions.keyprops
35
import com.android.build.api.dsl.ManagedVirtualDevice
46
import java.util.*
57

6-
val keystoreProperties = Properties().apply {
7-
rootProject.file("key.properties")
8-
.takeIf { it.exists() }?.inputStream()?.use(this::load)
9-
}
10-
118
plugins {
129
id("com.android.application")
1310
id("org.jetbrains.kotlin.android")
@@ -22,21 +19,21 @@ android {
2219
applicationId = "com.dede.android_eggs"
2320
minSdk = Versions.MIN_SDK
2421
targetSdk = Versions.TARGET_SDK
25-
versionCode = 25
26-
versionName = "1.9.2"
27-
22+
versionCode = 26
23+
versionName = "1.9.3"
24+
buildConfigField("String", "GIT_HASH", "\"${gitHash}\"")
2825
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2926
resourceConfigurations.addAll(listOf("zh", "en"))
3027
setProperty("archivesBaseName", "easter_eggs_${versionName}_${versionCode}")
3128
}
3229

3330
signingConfigs {
34-
if (keystoreProperties.isEmpty) return@signingConfigs
31+
if (keyprops.isEmpty) return@signingConfigs
3532
create("release") {
36-
keyAlias = keystoreProperties.getProperty("keyAlias")
37-
keyPassword = keystoreProperties.getProperty("keyPassword")
38-
storeFile = file(keystoreProperties.getProperty("storeFile"))
39-
storePassword = keystoreProperties.getProperty("storePassword")
33+
keyAlias = keyprops.getProperty("keyAlias")
34+
keyPassword = keyprops.getProperty("keyPassword")
35+
storeFile = file(keyprops.getProperty("storeFile"))
36+
storePassword = keyprops.getProperty("storePassword")
4037
enableV3Signing = true
4138
enableV4Signing = true
4239
}
@@ -48,8 +45,8 @@ android {
4845
signingConfig = config
4946
}
5047
getByName("release") {
51-
isShrinkResources = false
52-
isMinifyEnabled = false
48+
isShrinkResources = true
49+
isMinifyEnabled = true
5350
proguardFiles(
5451
getDefaultProguardFile("proguard-android-optimize.txt"),
5552
"proguard-rules.pro"
@@ -98,6 +95,7 @@ dependencies {
9895
implementation(deps.google.material)
9996
implementation(deps.io.coil)
10097
implementation(deps.free.reflection)
98+
implementation(deps.viewbinding.delegate)
10199
debugImplementation(deps.leakcanary)
102100
implementation(project(":basic"))
103101
implementation(project(":eggs:T"))

app/proguard-rules.pro

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,12 @@
1818

1919
# If you keep the line number information, uncomment this to
2020
# hide the original source file name.
21-
#-renamesourcefileattribute SourceFile
21+
#-renamesourcefileattribute SourceFile
22+
23+
-dontwarn org.bouncycastle.jsse.**
24+
-dontwarn org.conscrypt.**
25+
-dontwarn org.openjsse.**
26+
27+
-keepclassmembers class * extends com.dede.android_eggs.ui.adapter.VHolder {
28+
public <init>(android.view.View);
29+
}

app/src/main/assets/icons.otf

-3.28 KB
Binary file not shown.

app/src/main/assets/icons.ttf

2.88 KB
Binary file not shown.

app/src/main/java/com/dede/android_eggs/EasterEggsApp.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.dede.android_eggs
22

33
import android.content.Context
4+
import com.dede.android_eggs.settings.SettingsPref
45
import com.dede.android_eggs.util.ActivityActionDispatcher
5-
import com.dede.android_eggs.util.IconShapeOverride
6-
import com.dede.android_eggs.util.NightModeManager
6+
import com.dede.android_eggs.settings.IconShapeOverride
77
import com.dede.basic.GlobalContext
88
import me.weishu.reflection.Reflection
99

@@ -17,7 +17,7 @@ class EasterEggsApp : IconShapeOverride.App() {
1717

1818
override fun onCreate() {
1919
super.onCreate()
20-
NightModeManager.applyNightMode(this)
20+
SettingsPref.apply(this)
2121
ActivityActionDispatcher.register(this)
2222
}
2323

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.dede.android_eggs.main
2+
3+
import android.app.Activity
4+
import android.os.Bundle
5+
import androidx.annotation.IdRes
6+
import com.google.android.material.appbar.AppBarLayout
7+
8+
/**
9+
* Fix AppBarLayout Expanded state error
10+
*/
11+
class AppBarExpandedState(
12+
private val activity: Activity,
13+
@IdRes private val id: Int,
14+
private val animate: Boolean = false,
15+
private val default: Boolean = true,
16+
) : AppBarLayout.OnOffsetChangedListener {
17+
18+
companion object {
19+
private const val STATE_KEY = "appbar_expanded_state"
20+
}
21+
22+
private lateinit var appBarLayout: AppBarLayout
23+
private var isExpanded: Boolean = default
24+
25+
fun restore(savedInstanceState: Bundle?) {
26+
appBarLayout = activity.findViewById(id)
27+
appBarLayout.addOnOffsetChangedListener(this)
28+
if (savedInstanceState != null) {
29+
isExpanded = savedInstanceState.getBoolean(STATE_KEY, default)
30+
}
31+
appBarLayout.setExpanded(isExpanded, animate)
32+
}
33+
34+
fun saveState(outState: Bundle) {
35+
outState.putBoolean(STATE_KEY, isExpanded)
36+
}
37+
38+
override fun onOffsetChanged(appBarLayout: AppBarLayout?, verticalOffset: Int) {
39+
isExpanded = verticalOffset >= 0
40+
}
41+
}
Lines changed: 20 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,40 @@
11
package com.dede.android_eggs.main
22

3-
import android.animation.ObjectAnimator
4-
import android.content.res.Configuration
3+
import android.os.Build
54
import android.os.Bundle
6-
import android.view.Menu
7-
import android.view.MenuInflater
8-
import android.view.MenuItem
95
import androidx.appcompat.app.AppCompatActivity
10-
import androidx.core.view.MenuProvider
6+
import by.kirich1409.viewbindingdelegate.viewBinding
117
import com.dede.android_eggs.R
12-
import com.dede.android_eggs.settings.SettingsFragment
13-
import com.dede.android_eggs.ui.FontIconsDrawable
14-
import com.dede.android_eggs.util.WindowEdgeUtilsAccessor
15-
import com.google.android.material.color.DynamicColors
16-
import com.google.android.material.R as M3R
8+
import com.dede.android_eggs.databinding.ActivityEasterEggsBinding
9+
import com.dede.android_eggs.settings.EdgePref
10+
import com.dede.android_eggs.settings.SettingsPageController
1711

1812
/**
1913
* Easter Egg Collection
2014
*/
21-
class EasterEggsActivity : AppCompatActivity(), MenuProvider {
15+
class EasterEggsActivity : AppCompatActivity(R.layout.activity_easter_eggs) {
2216

23-
private val navigationViewController = NavigationViewController(this)
17+
private val settingsPageController = SettingsPageController(this)
18+
private val binding: ActivityEasterEggsBinding by viewBinding(ActivityEasterEggsBinding::bind)
19+
20+
private val appBarExpandedState = AppBarExpandedState(this, R.id.app_bar)
2421

2522
override fun onCreate(savedInstanceState: Bundle?) {
2623
super.onCreate(savedInstanceState)
24+
EdgePref.applyEdge(this, window)
2725

28-
DynamicColors.applyToActivityIfAvailable(this)
29-
WindowEdgeUtilsAccessor.applyEdgeToEdge(window, true)
30-
31-
navigationViewController.setContentView()
32-
33-
addMenuProvider(this, this)
34-
}
35-
36-
override fun onConfigurationChanged(newConfig: Configuration) {
37-
super.onConfigurationChanged(newConfig)
38-
navigationViewController.onConfigurationChanged(newConfig)
39-
}
40-
41-
override fun onOptionsItemSelected(item: MenuItem): Boolean {
42-
return navigationViewController.onOptionsItemSelected(item) ||
43-
super.onOptionsItemSelected(item)
44-
}
26+
setSupportActionBar(binding.toolbar)
4527

46-
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
47-
menuInflater.inflate(R.menu.menu_settings, menu)
48-
menu.findItem(R.id.menu_settings).icon =
49-
FontIconsDrawable(this, "\ue8b8", M3R.attr.actionMenuTextColor, 24f)
28+
settingsPageController.onCreate(savedInstanceState)
29+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
30+
EasterEggsSplash(this).welcome()
31+
}
32+
appBarExpandedState.restore(savedInstanceState)
5033
}
5134

52-
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
53-
when (menuItem.itemId) {
54-
R.id.menu_settings -> {
55-
val icon = menuItem.icon as FontIconsDrawable
56-
SettingsFragment().apply {
57-
onSlide = {
58-
icon.setRotate(360f * it)
59-
}
60-
show(supportFragmentManager, "Settings")
61-
}
62-
ObjectAnimator.ofFloat(icon, "rotate", 0f, 360f)
63-
.setDuration(500)
64-
.start()
65-
}
66-
else -> return false
67-
}
68-
return true
35+
override fun onSaveInstanceState(outState: Bundle) {
36+
appBarExpandedState.saveState(outState)
37+
super.onSaveInstanceState(outState)
6938
}
7039

7140
}

app/src/main/java/com/dede/android_eggs/main/EasterEggsFragment.kt

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)