From 1f0ed435d270c827e7e1160cc827644357c79982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=99=9F=E6=98=8A?= <863116814@qq.com> Date: Sun, 28 Aug 2022 16:00:44 +0800 Subject: [PATCH 1/7] feat: MD3 --- .../dede/android_eggs/EasterEggsActivity.kt | 44 +++++++++--------- .../dede/android_eggs/VersionPreference.kt | 12 ++++- .../res/drawable-anydpi/ic_logo_android.xml | 17 +++++++ .../res/drawable-anydpi/ic_logo_github.xml | 17 +++++++ .../drawable-nodpi/ic_logo_color_pgyer.png | Bin 0 -> 2132 bytes .../main/res/drawable-nodpi/ic_logo_pgyer.png | Bin 0 -> 4335 bytes .../main/res/layout/activity_easter_eggs.xml | 39 +++++++--------- app/src/main/res/values-night/themes.xml | 1 - app/src/main/res/values/themes.xml | 3 -- app/src/main/res/xml/root_preferences.xml | 6 +-- 10 files changed, 87 insertions(+), 52 deletions(-) create mode 100644 app/src/main/res/drawable-anydpi/ic_logo_android.xml create mode 100644 app/src/main/res/drawable-anydpi/ic_logo_github.xml create mode 100644 app/src/main/res/drawable-nodpi/ic_logo_color_pgyer.png create mode 100644 app/src/main/res/drawable-nodpi/ic_logo_pgyer.png diff --git a/app/src/main/java/com/dede/android_eggs/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/EasterEggsActivity.kt index 547d02b8..641f94a7 100644 --- a/app/src/main/java/com/dede/android_eggs/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/EasterEggsActivity.kt @@ -1,22 +1,20 @@ package com.dede.android_eggs import android.annotation.SuppressLint -import android.graphics.Color import android.os.Bundle +import android.view.Gravity import android.view.View import android.view.ViewAnimationUtils +import android.widget.FrameLayout +import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat.Type -import androidx.core.view.updatePadding +import androidx.appcompat.widget.AppCompatImageView import com.dede.android_eggs.databinding.ActivityEasterEggsBinding import com.google.android.material.color.DynamicColors -import com.google.android.material.color.DynamicColorsOptions -import com.google.android.material.color.MaterialColors import com.google.android.material.internal.EdgeToEdgeUtils +import com.google.android.material.shape.MaterialShapeDrawable import kotlin.math.hypot -import com.google.android.material.R as MR /** * Easter Egg Collection @@ -24,40 +22,42 @@ import com.google.android.material.R as MR class EasterEggsActivity : AppCompatActivity(), Runnable { private lateinit var binding: ActivityEasterEggsBinding + private lateinit var ivLogo: ImageView @SuppressLint("RestrictedApi") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val options = DynamicColorsOptions.Builder() - .setThemeOverlay(MR.style.ThemeOverlay_Material3_DynamicColors_DayNight) - .build() - DynamicColors.applyToActivityIfAvailable(this, options) - val colorPrimary = MaterialColors.getColor(this, R.attr.colorPrimary, Color.WHITE) - EdgeToEdgeUtils.applyEdgeToEdge(window, true, colorPrimary, null) + DynamicColors.applyToActivityIfAvailable(this) + EdgeToEdgeUtils.applyEdgeToEdge(window, true) AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) binding = ActivityEasterEggsBinding.inflate(layoutInflater) setContentView(binding.root) setSupportActionBar(binding.toolbar) + binding.appBar.statusBarForeground = + MaterialShapeDrawable.createWithElevationOverlay(this) - ViewCompat.setOnApplyWindowInsetsListener(binding.toolbar) { view, insets -> - val edge = insets.getInsets(Type.displayCutout() or Type.systemBars()) - view.updatePadding(top = edge.top) - return@setOnApplyWindowInsetsListener insets + ivLogo = AppCompatImageView(this).apply { + setImageResource(R.drawable.t_platlogo) } + val layoutParams = FrameLayout.LayoutParams( + FrameLayout.LayoutParams.WRAP_CONTENT, + FrameLayout.LayoutParams.WRAP_CONTENT + ).apply { gravity = Gravity.CENTER } + addContentView(ivLogo, layoutParams) postAnim() } private fun postAnim() { - binding.content.visibility = View.INVISIBLE - binding.content.postDelayed(this, 200) + binding.root.visibility = View.INVISIBLE + binding.root.post(this) } override fun run() { - val logo = binding.logo - val content = binding.content + val logo = ivLogo + val content = binding.root val cx = logo.x + logo.width / 2f val cy = logo.y + logo.height / 2f val startRadius = hypot(logo.width.toFloat(), logo.height.toFloat()) @@ -81,7 +81,7 @@ class EasterEggsActivity : AppCompatActivity(), Runnable { } override fun onDestroy() { - binding.content.removeCallbacks(this) + binding.root.removeCallbacks(this) super.onDestroy() } diff --git a/app/src/main/java/com/dede/android_eggs/VersionPreference.kt b/app/src/main/java/com/dede/android_eggs/VersionPreference.kt index 33de77b0..82aaf303 100644 --- a/app/src/main/java/com/dede/android_eggs/VersionPreference.kt +++ b/app/src/main/java/com/dede/android_eggs/VersionPreference.kt @@ -1,8 +1,11 @@ package com.dede.android_eggs import android.content.Context +import android.graphics.BitmapFactory +import android.graphics.drawable.ScaleDrawable import android.util.AttributeSet -import androidx.preference.Preference +import android.view.Gravity +import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory import com.dede.android_eggs.BuildConfig.VERSION_CODE import com.dede.android_eggs.BuildConfig.VERSION_NAME @@ -19,5 +22,12 @@ class VersionPreference : ChromeTabPreference { init { summary = context.getString(R.string.summary_version, VERSION_NAME, VERSION_CODE) + val bitmap = + BitmapFactory.decodeResource(context.resources, R.drawable.ic_logo_color_pgyer) + val drawable = RoundedBitmapDrawableFactory.create(context.resources, bitmap) + drawable.isCircular = true + icon = ScaleDrawable(drawable, Gravity.CENTER, 1f, 1f).apply { + level = 8500 + } } } \ No newline at end of file diff --git a/app/src/main/res/drawable-anydpi/ic_logo_android.xml b/app/src/main/res/drawable-anydpi/ic_logo_android.xml new file mode 100644 index 00000000..08fed4f9 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_logo_android.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/app/src/main/res/drawable-anydpi/ic_logo_github.xml b/app/src/main/res/drawable-anydpi/ic_logo_github.xml new file mode 100644 index 00000000..893d0fd8 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_logo_github.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/app/src/main/res/drawable-nodpi/ic_logo_color_pgyer.png b/app/src/main/res/drawable-nodpi/ic_logo_color_pgyer.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff63eb39ee3d4306c2f8dbcc2041ca1e53080d5 GIT binary patch literal 2132 zcmV-a2&?yrP)C0001uP)t-sR=kw| z|Npz>)b9E9-ty|r>)%_xmtMe`zvkAs`}yPa?z-gDh|sjj>fOTU**fsJSO5SAf=NU{RCwC#*TIsi zFc1aM8xs;iq9_Q8prRn^6aWA7o=gA(<18F>R-P(0P!^q}yJ_+9@$vET@$vETOUv1G zlb|icpW!1(DU}{{t{iau4StaH%M_Xol@t7p6|MLJch}pEkPBg19B($GHEqe9l@Y}m zJ2MM!cA&KZYKxsu6`AARCbU*3f#U^|Rtk>y;T$)|CI=jRS^KmhS9l+5I7ca^${30m z(MF2*IT}HvUTA*xfw6UeR5Uv<$BS`PLdMty%JMMulE;ZL!E1>)^>zt|m;{WmT_?DC z6uJ0vkyMF!^=O$0yuz5>WD}E>Hqb04dvZfVtL#paQnnigXFn>#UVpWP=>q+219qqH z?^F`S_Cp}?Y2g6ENfv+`OO+781-&_X03K?>v`NFBaObQ&i)rn=L~kQ@ms(BI*+jG7 z@)bwTq<0xdUslHMj3ZZNV3U@UgT|cdLi9FZn&5zvK{`A%LaH;-TgqC}Bj8ff5peBm zsk^?W4t2o>E7G;M-W9+q=)8UyTG)|q=5IOzp0?f|4

<DFl>cPdd(`nT;R}T4PJ}Garw})6FFsveNiI0g{ekQ?#~=MIFI8 z!i$J2yIG@_cTZpiCA7c}nTNb7? zNxPD0VgV&pyV2j`U?}Mpm35Ho1CoeI&A#&1$uN$-+<{Rmawt4Z%C-HF>(UTY%8huBX`%IvbOb3IRQ^hBQWmY?~Lr)t+H^AMPkQ7}jFAaR(m(s3N0(TtG z<0GRbLTyntpd4*m(q(66p73fh1M3$>Z?sHMn~@vI(N>TLY&lx0e=#1OWfexty#cDs z&qSwW7mfJ8F&jet!jhf;(sl|oeB-oROP7zjAiJu8Tq(2$6F?b<&7IUW^7k`jTucDd+Qyf>|LfK09&kGoqE<8g#(#`$bkH8{ zuH;~D1YQzoL+*nWhn}@!MH~SnTedpE8oQ7iVYw1QD8F-EKfTM-nTRu?ax=LDEP;C@ z5@B8}HpBqKg?Tacf&qh~EuMaSed1Gg#~LBoP}B<#redFdUids=0`P#)fY&;okYh3= z*SmmHcD!>2Cg5;>(1+*u7rL+PPTWWu}PC7mO=bU}?QNRip=0q6)IN8(7 ziAlrQ6uKx9&+PK{o52M>PZz{p+fQM*$)eDuJkQ=uH5x}H%LFM7sx$$tr6-7ZV6s1p zR#fnyP!H^TtRvSw@p=VEFu{k}(XiN+Ep1pU1=|6>K%IaI72Wr{-m93H;_70{hA&$9 z5)@4Et1JV8!%{#ff7!lmw{I;43t+Vk8(vs8R^^8*1@xf6UahApGVko2Rh0ot#FU3!;D3vpif)#E^5;OB(bx49y$@DxAtDtcK0oVc0RzZyn zf@GvHCkoj3k(JR;sx`Q_zzLCw&m%pWj-wqR9R(Zo)3D``1;?&Z59lLJmIEWsDEtK| zL8QSjW2appvJH-|DC&4ve7(UTqQK3vuDFGZkyHXVDg zO^i70ECO19^8F+r2g_8l24FB5*z(Jm04Na=cUUsCepor0dGq?!?a7NPx_sYygZRCr$PTzi-l)s_F9s^K997*GOTJwatj_|(+}MU#M!3|$S%sxgwqU7vxj zX4Y2{^Vp4##32v!P}j#sUR^ziD{dT&ZXQckx_ZU{N+e*C&m_Bv$f9&tqbRP!duFQ6 zez&@N=dx+%0PwWV&Y|y&?TIpQO;$r@yfD8U$1E*TyZ z0Q%z5FB0?pg)$THZj6o`dI;NCvgf8|g}1uYxvpf#1b|9Re+GovMKs%Q zs@jK2X*?kwy;x#i3&L(m!i>Z(6Whmsa{P%ynnnys1g=lk6{!-;jtYR{H52QXdexM8 za_I61*uVp?1w-Rt}5q^n2`S7W`TW{L;o&fM8>!OM!@hbp^ zG5Eri8s1P$F(s~F3dVN)Wv3f%`H&ZVDVbetx^eiFc`#rQDjnv@z^eKf#x zHhZHNQeyf&AbcgW&K7fH;^Sq_6J{y|tx(33yH^hHv-`iyOt%9Vk^7v1C#>xlCk^9iU>3V&WR5~Q0UH7OGt2!io2_kcdR102A~Ar}g8BO_Yv_d6=Ulhn zE8lA7)fK>&xPGn;{xXZ3&HbOS3;%EIz6(G+lWltfN$7(u?F85` zgW7Mhv_2!Uia^44Ts%~kAL_OG&mrJUo3S<(4FC54T`Y1cfu@0A6YLk0>Y_ha15!EK zx&k;UwtVzKlGl|u+>6LTUCnz&Ui`=T^Lw3#%;fLtXtSBWL4dD>;9H6KpOS%amp>M{ z!IGpMy8@wK6r=SUD?Y}Mq5#gze@Q>37&E;NufjD@ljy@*1Le@h0n>vHER@#t(YKjVfU zfo3JuP`4Y}Vl)lgfl6Fo4aQZOMK^&s0w&>!obUWE^ZNN?kxwwuCa($r*lWs(v1o1Y z&+<^#=`$e-Q>pS`iKo{Rh-e&uMl=raN5N<}pG!QFHJ(Mxk0ic{fK*b|Zdc-w1z_r^ ztZHcrTb57R)w*CumSXbShlU*(I^qogjt^dDylKh_UoQC7%F!?YeesU7jz7Hb58LK` z{%|>=l(_!SV0^Dy!E@UsAA$aQ>f!Y~AR_O;cjJ@DN_CBxsrEd(4fAai#q0mafQL+omvpslrqz z!f%*)nW=_jHLN)>)f0gJ?nnz;^gMu%lo8@(yH}dIYwp6`Wd#*BU_2_^t|^`rA}lon z+Kry()?tz-0F}6IfDx#)K7*c2siD8CM5h>$D*^gZCAuQd4=~}hR6u*x!`!+|sTx54 zx)oDdk_H_53Q~yR)G2NhRO0#)Fm9+qD`wEODS77;KD*@yvVIlp zS;nEntnk_@_`4#l8bBqk-wejTy5cT~7+0G?P58J)$M|O+J>CgDb#}_i*q(;~xOp89 z5z!6FK5Z<;({(17wn{!06tfGT7GuV*A+Qi zV!E9fSLDti(65tfs92(^BD(RIEdNtHpT4B3&MISD6Ycc`f z6TWUS_C@o+ME_%M*m-(Y^)MoW9gp76z!zMovBXrhn*^QD&@Uq3jzN)X;!ZOVzS0G+ z0TNF;FgrUPHo}(x`vT`I0YoCFi^2EgrZ1K5k)uLuIL33^KE7@?D*Z8qsWOz0!V-`42%;b8B>ayLnRie3BX*QYsrfy!e)KpPoYPmJ}=Z;#wu>Rj|-H>M$EYRg_&iV=Ms!0#<<$YsKm z66pv*^yYb?y_H2xQ`8N>yamM#cS6rIZoHN9g7QIteg)?B5;v_*%wF)apl^A;^EmrJ z&l0376NIVKR8e8Z+aSCI#^&a?N8KTQ7;zqsd27@YUN5h@0@$){PF6TdjalJg+ zzz74p+El{>MUu|z)~!#rEUYh+=Pe^AKRr}#x@t%30#SLDH^h0>+_S$o*Ty`#du4O4 zWeKljG{mhg?L4EFXmi5>bk3svd(Q^h>oT`6gZY~zNjsP+VfW&9!uoHCtvtgfOSn;E z-3XOAotK(#jk*Q%=UW3iI-NiHB7ivnnloq6b_Ui!w(b@2N5#;;Au1J!aY-_${b%8N zzF6c6A}2m5T)#ho&|wC&pShN+fY8$p6p0|4=s^O`DszDMF+oiQwDr#GZ0N5rFv+E$ z9j2-sF;CJlLt%c1EMIY%3A>5u%7eYbwjMX+;NoO3eCuHF^luY6_Fv(+%T%?jSL9N} zG?^y=MRioKWv?j`jm|F4#C%gS7+&hU#!mFQFX2`)0v=4Nn%HU1@W=E!nIHlTmBu@^ zWX~+j6FWT8VK@=_E~c{uiB30Xh5l4&fx_pW0Cbpiw>K&ME%$?P^Wa74K2r^4OWNQe zVEPkN)h-u&GdAT*0AyFn5uP&xT0t$0iyxs(l|#98y#okfT=&WeLo91h6+Hpp&2{4x zBYH1H)t3A5TT|7hIXlPDA8_fa4RDuOJ~I(qAV41&g*Wuzoy1>Bs^Ri{9q)a0y?2(MK&Y637*CEp3=`=sMXf1md49b=Kb2t+eXRU4?f z&k1;nVCPdz(mkob!huX&CNn2~{eg-uQ%(#KCWvC_B1Kx29ZAG@CIjK`6e6J*x`<$3 zKL{a_;tXoHRE1oIxF!I7as4Ecto@bJmx>X23PdmTN%E?49)T~mVh$1A4bWMTt#OW7 z64y6^F|#V=N`=NcJ7wS4o|`3t#y0#Q>>%byQq`7u%@5ZEU{y-FC3Zqo9iO5RBY!1A z>%O@DEn?j1cDkUmES^+Na=#khgU`-dW>=Ui4DJ4ddp{*Hk7mLqH`%#DmKhUBm=|s$ z;2^?N$$&PmfokQkZrBd=8_`b!{8*0h+(*QVi=9oClvQH-LJ)*cTS;D%Wd3-vHSE}& zA`UscAAKTW@{(MIC zY66S2WU1D#-&&C7<(BOFyP|)?w!I0UEdXXR^Izu{pL^c#`SGH6XP0SWj; zQq|@bdnSSbhb?Ohfkyh8`&+W9&MfVRjmY>W#tlq#F*$A_9|qG_ChAP>8Tq4Jzgf)5 zH2ECqnIpc+421u^9>8UJGzP$U^mEKCGG)cadQ;UdbRKke$`gHW4%G1VA08@_N{$Bt z@a$R&fHFnvqR7%Q$Q_QN14^P+FD_dt&>I5ac%x&I3|k!h#UjN6j=K_zc7V8O{~SO+ zmu8^WuW(q|)~R5-y@B z>v&1Fo95+4#j{8$vFKNEsQ=;Yy7fe`ZU8!c88)5=(fQd|#Hm%5`AV{>*(TmNX3ywH z3iA&c7fZwnO9cxoVzejK(06i;U0*CZkH~2w%N-j`RTCv0M{U#vz)W+E@QJ4sHqcbm zBpvG$9Ye+3wbvx(>kDgI1kZwA;p{T|OjXP6%d5D2tps%eaFCD5*ha+5nC&%{>@J@X zIiEmI(6w+dNoVK!%(>4qMM!y(n@g7PM`E4Bh|~89A#(^nWrE#zUDmIp-CjbkQNsfdBY)`7%Uo}?TV~@Kx01f>M1Qa&u4OD<0duldLB5wf3 zB1?%V@7pXyv>@BJ(KvCBJjt*5d$-LWI*KvJs0LCKiAi670 zj-&Y5%{uB|Gb>L377M3?vCa%?qWJrLH9P^BuFmgC7JM1)9aGivf(!2lBs~Erfbqq3 zjToX6J;Q^aHq~%m|Lq3=RzN_sJAkAa3_IDpXY|vx^ql>rg6(++{-r8hZ@E7Jutr2b d0I)^?{~xV1-mAEn?#loG002ovPDHLkV1h*6EbRaQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_easter_eggs.xml b/app/src/main/res/layout/activity_easter_eggs.xml index b1321eb9..0f05c183 100644 --- a/app/src/main/res/layout/activity_easter_eggs.xml +++ b/app/src/main/res/layout/activity_easter_eggs.xml @@ -1,34 +1,29 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" + app:liftOnScroll="true"> - - - + app:layout_scrollFlags="scroll|enterAlways|snap" + app:titleCentered="true" /> + - - - \ No newline at end of file + + diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index ea392930..c9f5c2f5 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -3,7 +3,6 @@