From 5db42f42341024a4e28abb2706a4b2131f90077b Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:14:02 +0300 Subject: [PATCH 01/12] fix: Correct system bar appearance in dark mode --- .../app/morphe/pot/helper/MainActivity.java | 56 +++++++++++++++---- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/app/morphe/pot/helper/MainActivity.java b/app/src/main/java/app/morphe/pot/helper/MainActivity.java index 448db75..7b9ae19 100644 --- a/app/src/main/java/app/morphe/pot/helper/MainActivity.java +++ b/app/src/main/java/app/morphe/pot/helper/MainActivity.java @@ -20,11 +20,13 @@ import android.app.Activity; import android.content.res.Configuration; import android.graphics.Color; +import android.graphics.Insets; import android.os.Build; import android.os.Bundle; import android.util.TypedValue; import android.view.View; import android.view.Window; +import android.view.WindowInsets; import android.view.WindowInsetsController; @SuppressWarnings("deprecation") @@ -40,26 +42,56 @@ protected void onCreate(Bundle savedInstanceState) { Window window = getWindow(); window.setStatusBarColor(Color.TRANSPARENT); + window.setNavigationBarColor(Color.TRANSPARENT); - View decorView = window.getDecorView(); - if (isDarkModeEnabled) { - decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); - } else { - decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + // Otherwise the system paints an opaque contrast scrim behind the bars, + // which does not follow the app background color. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + window.setStatusBarContrastEnforced(false); + window.setNavigationBarContrastEnforced(false); } - if (Build.VERSION.SDK_INT > 30) { + + // Forces the decor view to be created, which the insets controller requires. + View decorView = window.getDecorView(); + + // The light flags mean "the bar background is light, so draw dark icons", + // and therefore must be set for the light theme, not the dark one. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { WindowInsetsController insetsController = window.getInsetsController(); if (insetsController != null) { - insetsController.setSystemBarsAppearance( - WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS, - WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS - ); + int lightBars = WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS + | WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS; + insetsController.setSystemBarsAppearance(isDarkModeEnabled ? 0 : lightBars, lightBars); } + } else { + int lightBars = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; + int visibility = decorView.getSystemUiVisibility(); + decorView.setSystemUiVisibility(isDarkModeEnabled + ? visibility & ~lightBars + : visibility | lightBars); } TypedValue typedValue = new TypedValue(); getTheme().resolveAttribute(android.R.attr.colorBackground, typedValue, true); - findViewById(android.R.id.content).setBackgroundColor(typedValue.data); + + View contentView = findViewById(android.R.id.content); + contentView.setBackgroundColor(typedValue.data); + + // The window is edge to edge, so keep the content clear of the system bars. + contentView.setOnApplyWindowInsetsListener((view, insets) -> { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + Insets bars = insets.getInsets(WindowInsets.Type.systemBars()); + view.setPadding(bars.left, bars.top, bars.right, bars.bottom); + } else { + view.setPadding( + insets.getSystemWindowInsetLeft(), + insets.getSystemWindowInsetTop(), + insets.getSystemWindowInsetRight(), + insets.getSystemWindowInsetBottom() + ); + } + return insets; + }); setContentView(R.layout.root_view); @@ -70,4 +102,4 @@ protected void onCreate(Bundle savedInstanceState) { .commit(); } } -} \ No newline at end of file +} From 2cd049d76a511eac186f83b832869f5750c555d6 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:16:53 +0300 Subject: [PATCH 02/12] chore: cleanup --- app/src/main/java/app/morphe/pot/helper/MorpheFragment.java | 2 +- .../java/app/morphe/pot/helper/chimera/ServiceProvider.java | 2 +- .../java/app/morphe/pot/helper/potokens/PoTokenServiceImpl.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java b/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java index 154b82a..72bed78 100644 --- a/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java +++ b/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java @@ -166,4 +166,4 @@ private Spanned handleBulletSpans(Spanned spanned, boolean useNumberFormat) { return builder; } -} \ No newline at end of file +} diff --git a/app/src/main/java/app/morphe/pot/helper/chimera/ServiceProvider.java b/app/src/main/java/app/morphe/pot/helper/chimera/ServiceProvider.java index 256b58d..fc60f2c 100644 --- a/app/src/main/java/app/morphe/pot/helper/chimera/ServiceProvider.java +++ b/app/src/main/java/app/morphe/pot/helper/chimera/ServiceProvider.java @@ -81,4 +81,4 @@ public int update(Uri uri, ContentValues contentValues, String selection, String Log.d(TAG, "update: " + uri + ", " + contentValues + ", " + selection + ", " + Arrays.toString(selectionArgs)); return 0; } -} \ No newline at end of file +} diff --git a/app/src/main/java/app/morphe/pot/helper/potokens/PoTokenServiceImpl.java b/app/src/main/java/app/morphe/pot/helper/potokens/PoTokenServiceImpl.java index 7125eec..df904dc 100644 --- a/app/src/main/java/app/morphe/pot/helper/potokens/PoTokenServiceImpl.java +++ b/app/src/main/java/app/morphe/pot/helper/potokens/PoTokenServiceImpl.java @@ -86,4 +86,4 @@ private static byte[] encrypt(byte[] rawKey, byte[] data) { } private static native byte[][][] mintMorpheIntegrityTokens(byte[] data); -} \ No newline at end of file +} From 473353c5a960de6d0bb95b9aea90acc818f143b1 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:20:54 +0300 Subject: [PATCH 03/12] chore: Remove legacy launcher icons superseded by the adaptive icon --- app/src/main/AndroidManifest.xml | 1 - .../res/mipmap-anydpi-v26/ic_launcher_round.xml | 6 ------ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3015 -> 0 bytes .../main/res/mipmap-hdpi/ic_launcher_round.png | Bin 5358 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1855 -> 0 bytes .../main/res/mipmap-mdpi/ic_launcher_round.png | Bin 3305 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4473 -> 0 bytes .../main/res/mipmap-xhdpi/ic_launcher_round.png | Bin 7666 -> 0 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7575 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 12840 -> 0 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 11203 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 18819 -> 0 bytes 12 files changed, 7 deletions(-) delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 305786b..1027c72 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,6 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 6047b465080bb582194e5fe138b80f92368630eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3015 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 JPDHLkV1fnQ(mVhF diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 351f7669cd7b19d7c709c67cdc18be2ddd6da1f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5358 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 M07*qoM6N<$g77d=8~^|S diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ec3bb859016cadfd1f8e921c80f76e88f8e0b925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1855 zcmV-F2f+A=P)hdK20p>ok}Gd{4`Fa}GZq|uC~rS5v`t9t9LYItw&?f={4 zCI1OvUUL0im;zz^t*-)P4-XH2U8z*2b&pu3Qkfne9{w6gYz*qg2pgcOTrNLw9H)CP zrAnnznayM}gFq=hjV%FKKu%TX_hi0{bO1#lsE_!@6ES<3A%{iI7S_SF7Pihb(?|(#A>28}sxV0VtM2Zal1UYs_c-nNNO2sCXfYK}0af zI?^`4Oi`K4hm1T8IDN$8?10U_jJ#a{exS@018$6Z{NrAYiG={yk6aWCh}8AN7riJH zq3kMUSD9Z{o-QiORXBG@>E36sllI#IFkJ|^daugmyDpCx;sRAcL{R}jP*qf#AxIXIgw>wqF=L0M;s74I)BG`&Z1VTj6SOLgt zN+}Uog~#*C(EK9pen3wa%)Xt0*b(Okp>pj(l}mTZJeu=Zjjw1dQX~SBupyI%){M}c zhNhH|uwsz9hH)*;X8k6nN2aL#>z`;C?%oL$N+CBMxQxwu5xZ-Y?h%OS2%MyFyw~RZ zQJda2D^9tPn-2plN7QUq1h3#Zjp}15BP7v0pQTe z7^fGm)4y~dt@wDuw;K;2RHa&rsIy#)qaQ1CF+x*H_~LkilLt3DUvI6BaH7wq^+S*T zZ?8b5%>L38U6rR~{1TyW2<* z%@|BJN8;17NFou_k-nI6JE=JYq1cI$ua@MhaO0RfuQ1`{_bS(}g`&`4VN{tlk% zc?2_4;0K$h4>3q4gGvJdSVqWZ3}PVE=(8F#-&ejH_b8Nf?f+NkZ^B{$|Mo5L{mnIC z45l@U7^`t9B%&wm-$>bDt@15^1{uE%(=ac;roRd**xkQWqHL zI0tqsVx^<&K^6QZ{QG~$z4jOU$Fu7rAB!r}v7h9rGrK3|e*H-k!;>}U3)A?{#0Jt( z?mmCWC+>BQ6oPpMQ&YdlY{>31rsO8-Sg}J~BY+=U?p}fLycT!iNqE z6NZtRzlj1p6@p*|Ee@eew?N`TR3E}B)SAKT*z7!z=pP_??sFuU+dTl55q>(DX39Uv z(5iC{jxj`vM#mc*$all;krZRwvkn#kIk zExsBUBxS}Knt8&Qt0W0Iktp!9#58?YY3u!~fN86e7+fSQCGe*m@C|04A^F+oq%M51 z<7w=*XX2x|{bbB%^f*-}p5Mk={x`?0JSXe|S>tYs{A!^}D!}ep0i)Q5+Q2!D)%!7t zQ@_FLJN6dWDkecs?l=dU+RvgH)g@jImL zOC-_G>zZrlo5iumA*l-5Gw=eKBVnSOwS*|YTnT% zQ$)IeJm5DDz$Wdz0=0S6&!hfI)S&DZ#BPIRXYBNAZ>Ki_X!vdvlY#UHi1yU&%t zy!fZ4rl!ul0H9PV%?}L?eFJzKLC6-gngX&wE0E^hzj6uz7g&rxZaoNjNm^O)>FkAf t#jEd#{kTJhKXd}GYIN@s#CzM5_CF#5qD}|3P*DH?002ovPDHLkV1hhReqR6p diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index ccace5fcbf7f4888ee0823f4d56deb3b203a5a10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3305 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

;VRFfwq;E zm2>Uw?O$oB_~DYxX0N5w>C-?y5{@1jfQt3UfwZdLZ>jbXDi)C)z)B<(>1PQ+Q7>r8 zqlvo_{ca=&RFZH@9!<QUKN}A_moRc|Erb zQyC#<0+Mkd8H03E*wbe?y365kzr#R}A^wzI@xvN12WSJjRdu|XVaD^}%2bJqcYJQ$ zw@fWqrZbkT7v;YNEjKwx#QarPUr43v=}HMZI)(mj!~SiC6GIM%2OZ*Wb1MrG*#l(4 zZa7%45qskHP$(&PGnP-rJwCY|aAnG8enqhskh01Z3AH8F>!>JQS1DfV5Xj_|#hh~U zzU9iK;pTnIv$K|yLk|7jLNX>_&JYw>SS~2nr%U|qdWqj$@mS0%L6~1PqI`*3f3&(2 zsVZ6{b)QA6`9Ub36Ii&vY?;eiE>Bq|7nIWn91iR>bS4F3zCsBm`x0 zmY;r@=ba0AW|wTJ$OeT8Rh!o}Y^Ih28sFENr!a*-8V)@tjk2=!G@t@_bWuhDU>Mt@N$=Z^|F5%ZVubXBPfX@P~=yu3t3v%tf`hO zuxLS2{u|{X50_7Mh^7Dj8UFQaXrZw6lkij~;Qi48pNxB<^+ubjXlYonhz84+u<{S% zzGDQ}5nP9A?XDL50DP<1FuZ6(LatiA*7}Ev!&Tt$CC)^8AGvdv@jmFm*|r^L@BXa~ zz^4;M{^w#2YqeZwn{uTi66t8G4V7Xg%3x}>lq_4mp|cH!wh6m>9s1e@tL1KYV%{<_ zuPm(Cx|+XS@q``{q96^)xl;EU0+K-v|S;vYsJ88f``Y>ZR;T>85mQgLt{aKp~Y4;0@*&V%WU<>T7{zqsI2C}|Z0iJE!{ zN+q9Eu!#jF4z64yZar)!L+SEG+~Fg*2ZpyM03VMP8M#%UM?C25(do3Mp!nsk8y9*Y-A;W0I2~&QS;pMA5Gyf5Zpj?Iq z_wM3fy-YAMj zAAL4OfMiTKGT@MOg>*5)*@DNdY>JYJ*U=XObb1RMTD;85)4!&#a4#}B;o*;u;a|DD z^#HgsS>pb(rP9_`6Jv#T5DhDlaw0XMNp_`#mkxe*Rs71Ayl%qthOufK|8OE}iYQ6FPN0JLFGg+_Yil@!utYL&69er;Rj+E%%`2t2<(#YpT>jQ^j#G+xrpYL}*ynp=ZOPVgWmI zk4M}9`Q+&6yl1h|^$XQfG-CE9oXHY!4D_W9F{k+en0Op__Yk=PbEm zlRaK76mkR;x1j=nJSg~wSLC=zI$gIO^(jumN_*T;$)|NqrbPRJ8Ygc9m|qE)S_sH_ z%|k%*dHlPR*!j8gTE$ggu)!lLyRdC0voveh0cfM%u?vr+|tN7;KQ_y~TaFqo=TPl;Z=N zvre=0=|u{^{4a{XJ5z3|)@$L{s6|arAI|>arpyI2wGlhIE6&JRk-3$iHt($;3on`L(%Z$uSaXdNA%Z^3T z#~v|VDcC%^G=lfLpWvOpKrpkoKKCQ*biDC6?$BP`qsO-%0DHH`I60Ky_md^YW_&O{ zrhOcfz6llOM~jV$hlD?lXXkl$;yq5e_i5Yq8q#(U;yV#H{Qxj5>aQThDeUqHI`Iz0 zv)2gj`k>DG+|N2W-`P2cd*npZCght60Klnz39e0f+?n&SrU;#vK#Hp$T2KE&-n#YIdk?5|2-JtW8?gNe-a#o#hj~duZ-Dn!O5MxU3`)Y^E3W&Dv(Ze&bty>FOqS{2APX zhqf*N0LOO6dHqBi|8`yxr^YqZTmCwwqY6twEV3dRv^a^BX0RBLFsx_*S}GqAQ&!J} zw@T8D#rz2SnRxYeVuz16TRqJOU{{aBD@RgXolSAMumed>f|MQF^NOZp`u{)llsD(qQNZVDSDfu;Tz7%-h4&R`DH?yt||RL?g^ zx`X5!e@^_l7cd>2k3%(&Z;x0MYn;K_ zmcIs@DM_FB;SA1T7K!_;$M+)^)0rf8;v}iR`X2I_l>byw`D$#ISL1g%5u2yi6xUC% zYu5AYRX5?P?4=l`u@1aTz4+s4P{ni?aRz-7ulyN_*Zu+1H?*0o@P>BEKbgCwXo+HB zhTPmQ$WOjSY3Tw2B*Z5r0dWa%9(co9-S~T2ZIaQFK_ea@yqxpE9QUyU z@MLb*Au$rkoy50)lkQ|cy6{Wv)LUS^aPs&OlwMs}yUy)XDgy>25g3IcB?nlDC0#8bw`2B*!NkRG;CUpQ!KZ|KUfv#LabJvmLZM3wwI>v9r;;YWK z4U)T|?EsQKiFAJ*={gN2$B- zct{LPqO4fA9h^>Z+RIdS=S!Hb)6jMRO!Dz4_Nh+78wR6@7N^ja3y>Ry+zm8;9W72H zwoqsB>h>VS{yJ659v> z3h2Fi_inUQyDdBR>wCFU#lHc~$9zlfX7$ z_{^CzKVMv2)KaOWEvc7MsicdGi+bkFnV$p0q0W+_4&}49E|n)JC4mm0>+QGS{`+Ic zj{QY|Xh#Ck% zc=(T!fIrLggd2~R)USxmb00000 LNkvXXu0mjfW6-Lj diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index d920b61b54dab9de34fe35bfa930036a0af932a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7666 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index f8ce200d2cbba38a3d82c1410e85fdcd141cb262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12840 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 AxBvhE diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 33c4ef8c4f4d0cdce7fa1772ea83969b0fb83e1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18819 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 From 7d512e0bb05391a60f1a4ab4617f3be54dff63c6 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:24:12 +0300 Subject: [PATCH 04/12] chore: Suppress lint warnings about the exported IPC components --- app/src/main/AndroidManifest.xml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1027c72..465951b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ - + + + android:exported="true" + tools:ignore="ExportedContentProvider" /> + android:exported="true" + tools:ignore="ExportedService"> From 54119c52a822936163c85138585cd31c4d0cce47 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:28:40 +0300 Subject: [PATCH 05/12] fix: Declare allowBackup on the application instead of the activity --- app/src/main/AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 465951b..6819c76 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,11 +3,11 @@ xmlns:tools="http://schemas.android.com/tools"> From 4ed60a3256ce6fd18e1055dbbd3982f747bf8184 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:28:40 +0300 Subject: [PATCH 06/12] chore: Merge the obsolete mipmap-anydpi-v26 folder into mipmap-anydpi --- .../main/res/{mipmap-anydpi-v26 => mipmap-anydpi}/ic_launcher.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/res/{mipmap-anydpi-v26 => mipmap-anydpi}/ic_launcher.xml (100%) diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/main/res/mipmap-anydpi/ic_launcher.xml From 45f9404733985b3c80c936f9afa05fe101b829d4 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Thu, 27 Aug 2026 13:42:14 +0200 Subject: [PATCH 07/12] chore: Adjust notice whitespace --- NOTICE | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NOTICE b/NOTICE index 1d7ccb3..4c5514d 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ - Morphe NOTICE - Copyright 2026 Morphe - https://github.com/MorpheApp/PotHelper +Morphe NOTICE +Copyright 2026 Morphe +https://github.com/MorpheApp/PotHelper - Portions of this software are provided by the Morphe software project. \ No newline at end of file +Portions of this software are provided by the Morphe software project. \ No newline at end of file From 8404102bfaa6893921fa6a17923f77b17993b9c1 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:01:41 +0200 Subject: [PATCH 08/12] chore: Add disclaimer that the native code cannot be bundled/distributed with Morphe / RV patches and cannot be linked to any other copy left code. --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 72b8add..37e6832 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,19 @@ A simple PoToken minter written in Java. +The helper app runs offline and has no internet access permissions. + ## ⚖️ Disclaimer This project is provided **as is** without any warranty or guarantee of functionality, stability, or safety. **Use at your own risk**. ## 📜 License -Distributed under the [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/). \ No newline at end of file +Distributed under the [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/). + +### License Compatibility + +This project contains native code distributed exclusively in compiled binary form. + +Because the "Corresponding Source" for these binaries is not available, the native code is incompatible with copyleft licenses. +Specifically, the native code portions may not be linked with or distributed with GPLv3 code or with code under any other strong copyleft license. From dc45a8f232bd771c77dce5ac92e60a8d2928ee7c Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:56:17 +0300 Subject: [PATCH 09/12] feat: Replace the preference screen with a scrolling layout --- app/src/main/AndroidManifest.xml | 13 +- .../morphe/pot/helper/LicensePreference.java | 51 ------ .../app/morphe/pot/helper/MainActivity.java | 135 ++++++++++++-- .../app/morphe/pot/helper/MorpheFragment.java | 169 ------------------ .../main/res/drawable/group_background.xml | 6 + app/src/main/res/drawable/item_divider.xml | 9 + app/src/main/res/layout/about.xml | 126 +++++++++++++ app/src/main/res/layout/category_text.xml | 11 -- app/src/main/res/layout/header_container.xml | 52 ------ app/src/main/res/layout/root_view.xml | 5 - app/src/main/res/values-night-v31/colors.xml | 6 +- app/src/main/res/values-night/colors.xml | 6 +- app/src/main/res/values-night/styles.xml | 5 +- app/src/main/res/values-v31/colors.xml | 6 +- app/src/main/res/values/colors.xml | 6 +- app/src/main/res/values/styles.xml | 53 ++++++ app/src/main/res/xml/about.xml | 102 ----------- 17 files changed, 345 insertions(+), 416 deletions(-) delete mode 100644 app/src/main/java/app/morphe/pot/helper/LicensePreference.java delete mode 100644 app/src/main/java/app/morphe/pot/helper/MorpheFragment.java create mode 100644 app/src/main/res/drawable/group_background.xml create mode 100644 app/src/main/res/drawable/item_divider.xml create mode 100644 app/src/main/res/layout/about.xml delete mode 100644 app/src/main/res/layout/category_text.xml delete mode 100644 app/src/main/res/layout/header_container.xml delete mode 100644 app/src/main/res/layout/root_view.xml delete mode 100644 app/src/main/res/xml/about.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6819c76..c368727 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,15 +19,10 @@ = Build.VERSION_CODES.Q) { window.setStatusBarContrastEnforced(false); window.setNavigationBarContrastEnforced(false); } - // Forces the decor view to be created, which the insets controller requires. + // Creates the decor view, which the insets controller needs. View decorView = window.getDecorView(); - // The light flags mean "the bar background is light, so draw dark icons", - // and therefore must be set for the light theme, not the dark one. + // A light flag means the bar background is light, so it belongs to the light theme. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { WindowInsetsController insetsController = window.getInsetsController(); if (insetsController != null) { @@ -77,7 +91,7 @@ protected void onCreate(Bundle savedInstanceState) { View contentView = findViewById(android.R.id.content); contentView.setBackgroundColor(typedValue.data); - // The window is edge to edge, so keep the content clear of the system bars. + // The window is edge to edge. contentView.setOnApplyWindowInsetsListener((view, insets) -> { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Insets bars = insets.getInsets(WindowInsets.Type.systemBars()); @@ -93,13 +107,110 @@ protected void onCreate(Bundle savedInstanceState) { return insets; }); - setContentView(R.layout.root_view); + setContentView(R.layout.about); + + TextView versionView = findViewById(R.id.app_version); + versionView.setText(getString(R.string.app_version, BuildConfig.VERSION_NAME)); + + bind(findViewById(R.id.about_content)); + } + + /** + * Makes every tagged row tappable. A tag is either a link, or the name + * of a license asset followed by the URL of its source. + */ + private void bind(ViewGroup group) { + for (int i = 0; i < group.getChildCount(); i++) { + View child = group.getChildAt(i); + if (child instanceof ViewGroup) { + bind((ViewGroup) child); + } + Object tag = child.getTag(); + if (tag instanceof String) { + child.setOnClickListener(view -> open((String) tag)); + } else if (child instanceof ViewGroup) { + // Clips the ripple of the rows to the rounded corners of the card. Never do + // this to a row: the outline of its own ripple is empty and would clip it away. + child.setClipToOutline(true); + } + } + } + + private void open(String tag) { + int separator = tag.indexOf(' '); + if (separator < 0) { + browse(tag); + } else { + showLicenseDialog(tag.substring(0, separator), tag.substring(separator + 1)); + } + } + + private void browse(String url) { + try { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); + } catch (ActivityNotFoundException ex) { + Log.e(TAG, "No app can open: " + url, ex); + } + } + + @SuppressWarnings("CharsetObjectCanBeUsed") + private void showLicenseDialog(String asset, String sourceUrl) { + // The Zlib notice is the only numbered one, and the only one short + // enough to fit the default dialog height. + boolean useNumberFormat = asset.equals("nanopb"); + + Spanned content; + try (InputStream is = getAssets().open(asset + ".html")) { + String text = new Scanner(is, "UTF-8").useDelimiter("\\A").next(); + content = Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY); + } catch (Exception ex) { + Log.e(TAG, "openAssets failed", ex); + return; + } + + View contentView = getLayoutInflater().inflate(R.layout.license_dialog, null); + TextView licenseContentView = contentView.findViewById(R.id.license_content); + licenseContentView.setText(handleBulletSpans(content, useNumberFormat)); + + AlertDialog alertDialog = new AlertDialog.Builder(this, R.style.DialogTheme) + .setView(contentView) + .setPositiveButton(R.string.license_dialog_ok_button_text, null) + .setNeutralButton(R.string.license_dialog_source_button_text, + (dialog, id) -> browse(sourceUrl)) + .show(); - if (savedInstanceState == null) { - getFragmentManager() - .beginTransaction() - .replace(R.id.fragment_container, new MorpheFragment()) - .commit(); + Window window = alertDialog.getWindow(); + if (window != null) { + window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + + // A long notice would otherwise stretch the dialog over the whole screen. + if (!useNumberFormat) { + WindowManager.LayoutParams params = window.getAttributes(); + params.height = (int) (getResources().getDisplayMetrics().heightPixels * 0.85); + window.setAttributes(params); + } } } + + /** + * Html.fromHtml turns every 'li' tag into a bullet point and drops the list type, + * so the bullets are replaced with the numbering of the original license: + * 1, 2, 3 when useNumberFormat is set, a, b, c otherwise. + */ + private Spanned handleBulletSpans(Spanned spanned, boolean useNumberFormat) { + SpannableStringBuilder builder = new SpannableStringBuilder(spanned); + BulletSpan[] bulletSpans = builder.getSpans(0, builder.length(), BulletSpan.class); + + for (int i = 0; i < bulletSpans.length; i++) { + BulletSpan bulletSpan = bulletSpans[i]; + int start = builder.getSpanStart(bulletSpan); + builder.removeSpan(bulletSpan); + String prefix = useNumberFormat + ? (i + 1) + ". " + : (char) ('a' + (i % 26)) + ". "; + builder.insert(start, prefix); + } + + return builder; + } } diff --git a/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java b/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java deleted file mode 100644 index 72bed78..0000000 --- a/app/src/main/java/app/morphe/pot/helper/MorpheFragment.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2026 Morphe. - * https://github.com/MorpheApp/PotHelper - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package app.morphe.pot.helper; - -import android.content.Intent; -import android.graphics.Point; -import android.app.AlertDialog; -import android.content.Context; -import android.net.Uri; -import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.text.Html; -import android.text.SpannableStringBuilder; -import android.text.Spanned; -import android.text.style.BulletSpan; -import android.util.Log; -import android.view.Display; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.widget.ListView; -import android.widget.TextView; - -import java.io.InputStream; -import java.util.Scanner; - -@SuppressWarnings({"deprecation", "FieldCanBeLocal"}) -public class MorpheFragment extends PreferenceFragment { - private final String TAG = "morphe: MorpheFragment"; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.about); - - for (LicensePreference licensePref : LicensePreference.values()) { - Preference pref = findPreference(licensePref.key); - if (pref != null) { - pref.setOnPreferenceClickListener(preference -> { - showLicenseDialog(licensePref); - return true; - }); - } - } - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = super.onCreateView(inflater, container, savedInstanceState); - if (view != null) { - ListView listView = view.findViewById(android.R.id.list); - if (listView != null) { - View headerContainer = inflater.inflate(R.layout.header_container, listView, false); - TextView textView = headerContainer.findViewById(R.id.header_app_version); - if (textView != null) { - textView.setText(String.format(getResources().getString(R.string.app_version), BuildConfig.VERSION_NAME)); - } - - listView.addHeaderView(headerContainer, null, false); - } - } - - return view; - } - - @Override - public void onResume() { - super.onResume(); - - final View rootView = getView(); - if (rootView == null) return; - ListView listView = getView().findViewById(android.R.id.list); - if (listView == null) return; - listView.setDivider(null); - listView.setDividerHeight(0); - } - - @SuppressWarnings("CharsetObjectCanBeUsed") - private void showLicenseDialog(LicensePreference licensePref) { - Context context = getContext(); - Spanned content; - String fileName = licensePref.name().toLowerCase() + ".html"; - try (InputStream is = context.getAssets().open(fileName)) { - String text = new Scanner(is, "UTF-8").useDelimiter("\\A").next(); - content = Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY); - } catch (Exception ex) { - Log.e(TAG, "openAssets failed", ex); - return; - } - - LayoutInflater inflater = getLayoutInflater(); - View contentView = inflater.inflate(R.layout.license_dialog, null); - TextView licenseContentView = contentView.findViewById(R.id.license_content); - licenseContentView.setText(handleBulletSpans(content, licensePref.useNumberFormat)); - - AlertDialog alertDialog = new AlertDialog.Builder(context, R.style.DialogTheme) - .setView(contentView) - .setPositiveButton(R.string.license_dialog_ok_button_text, null) - .setNeutralButton(R.string.license_dialog_source_button_text, (dialog, id) -> { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(licensePref.url)); - startActivity(intent); - }) - .show(); - - Window window = alertDialog.getWindow(); - if (window != null) { - // Remove window background. - window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); - - // If the message is too long, the dialog uses the entire vertical area of the screen. - // Set the dialog height to 85% of the screen. - if (licensePref.resizeDialog) { - Display display = getActivity().getWindowManager().getDefaultDisplay(); - Point size = new Point(); - display.getSize(size); - - WindowManager.LayoutParams params = window.getAttributes(); - params.height = (int) (size.y * 0.85); - window.setAttributes(params); - } - } - } - - /** - * 'Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY)' was used to show HTML as a dialog message. - * As a result, the attributes of most HTML tags, including the 'ul' tag, are ignored. - * Since the 'li' tag is always converted to a bullet point, it must be replaced with the string used in the original license. - * - * @param spanned Formatted HTML string. - * @param useNumberFormat Whether to replace 'li' tags with numbers. - * If true, they will be replaced with 1, 2, 3. - * If false, they will be replaced with a, b, c. - * @return Replaced formatted HTML string. - */ - private Spanned handleBulletSpans(Spanned spanned, boolean useNumberFormat) { - SpannableStringBuilder builder = new SpannableStringBuilder(spanned); - BulletSpan[] bulletSpans = builder.getSpans(0, builder.length(), BulletSpan.class); - - for (int i = 0; i < bulletSpans.length; i++) { - BulletSpan bulletSpan = bulletSpans[i]; - int start = builder.getSpanStart(bulletSpan); - builder.removeSpan(bulletSpan); - String prefix = useNumberFormat - ? (i + 1) + ". " - : (char) ('a' + (i % 26)) + ". "; - builder.insert(start, prefix); - } - - return builder; - } -} diff --git a/app/src/main/res/drawable/group_background.xml b/app/src/main/res/drawable/group_background.xml new file mode 100644 index 0000000..ec99015 --- /dev/null +++ b/app/src/main/res/drawable/group_background.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/item_divider.xml b/app/src/main/res/drawable/item_divider.xml new file mode 100644 index 0000000..82890f3 --- /dev/null +++ b/app/src/main/res/drawable/item_divider.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml new file mode 100644 index 0000000..63bfabc --- /dev/null +++ b/app/src/main/res/layout/about.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/category_text.xml b/app/src/main/res/layout/category_text.xml deleted file mode 100644 index b39877a..0000000 --- a/app/src/main/res/layout/category_text.xml +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/app/src/main/res/layout/header_container.xml b/app/src/main/res/layout/header_container.xml deleted file mode 100644 index 5e59fd9..0000000 --- a/app/src/main/res/layout/header_container.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/root_view.xml b/app/src/main/res/layout/root_view.xml deleted file mode 100644 index a9ee9c5..0000000 --- a/app/src/main/res/layout/root_view.xml +++ /dev/null @@ -1,5 +0,0 @@ - - \ No newline at end of file diff --git a/app/src/main/res/values-night-v31/colors.xml b/app/src/main/res/values-night-v31/colors.xml index 842f9b7..bc40f83 100644 --- a/app/src/main/res/values-night-v31/colors.xml +++ b/app/src/main/res/values-night-v31/colors.xml @@ -2,6 +2,10 @@ @android:color/system_neutral1_900 @android:color/system_neutral1_50 + @android:color/system_neutral2_200 + @android:color/system_accent1_200 + @android:color/system_neutral1_800 + @android:color/system_neutral1_700 @android:color/system_accent2_900 @android:color/system_accent1_200 - \ No newline at end of file + diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 19e1179..3ff4c33 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -2,5 +2,9 @@ #ff181825 #ffe6e9ef + #ffa6adc8 + #ff89b4fa + #ff1e1e2e + #ff313244 #ff001029 - \ No newline at end of file + diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 01bc409..34170be 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -1,4 +1,7 @@ - diff --git a/app/src/main/res/values-v31/colors.xml b/app/src/main/res/values-v31/colors.xml index d78e984..f2c5a86 100644 --- a/app/src/main/res/values-v31/colors.xml +++ b/app/src/main/res/values-v31/colors.xml @@ -2,6 +2,10 @@ @android:color/system_neutral1_50 @android:color/system_neutral1_900 + @android:color/system_neutral2_700 + @android:color/system_accent1_600 + @android:color/system_neutral1_0 + @android:color/system_neutral1_100 @android:color/system_accent2_100 @android:color/system_accent1_600 - \ No newline at end of file + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 7b5fd4b..01a9f70 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,6 +3,10 @@ #ffffffff #ffe6e9ef #ff181825 + #ff6c6f85 + #ff1e66f5 + #ffeff1f5 + #ffccd0da #ffd1e0ff #ffc2e9fb - \ No newline at end of file + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f650069..b8f85e7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -16,4 +16,57 @@ 42.0dip 0.0dip + + + + + + + + + + + + diff --git a/app/src/main/res/xml/about.xml b/app/src/main/res/xml/about.xml deleted file mode 100644 index 4b6e7ae..0000000 --- a/app/src/main/res/xml/about.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 603a3c6e8f418ab67fee080e6a6392728ef78bb6 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 15:14:33 +0300 Subject: [PATCH 10/12] feat: Add a switch that hides the launcher icon --- app/src/main/AndroidManifest.xml | 8 ++++- .../app/morphe/pot/helper/MainActivity.java | 36 +++++++++++++++---- app/src/main/res/layout/about.xml | 32 +++++++++++++++++ app/src/main/res/values/strings.xml | 4 +++ 4 files changed, 73 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c368727..69fdb8d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,13 +10,19 @@ + + + - + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 19e83cf..e930a49 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,6 +6,10 @@ Version %1$s App version + Settings + Hide app icon + Remove PotHelper from the home screen + Official links Donate Support us From 9a14ff3b40dcb89b604feeb16dfa4e41763373d1 Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 15:18:11 +0300 Subject: [PATCH 11/12] fix: Read the license dialog options from the row tag --- .../app/morphe/pot/helper/MainActivity.java | 21 ++++++++++++------- app/src/main/res/layout/about.xml | 8 ++++--- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/app/morphe/pot/helper/MainActivity.java b/app/src/main/java/app/morphe/pot/helper/MainActivity.java index baad72c..a9c8c21 100644 --- a/app/src/main/java/app/morphe/pot/helper/MainActivity.java +++ b/app/src/main/java/app/morphe/pot/helper/MainActivity.java @@ -161,11 +161,10 @@ private void setLauncherIconHidden(boolean hidden) { } private void open(String tag) { - int separator = tag.indexOf(' '); - if (separator < 0) { + if (tag.indexOf(' ') < 0) { browse(tag); } else { - showLicenseDialog(tag.substring(0, separator), tag.substring(separator + 1)); + showLicenseDialog(tag); } } @@ -177,11 +176,17 @@ private void browse(String url) { } } + /** + * Shows the license of a row tagged with an asset name, the URL of its source, + * and optionally the markers 'numbered' and 'tall'. + */ @SuppressWarnings("CharsetObjectCanBeUsed") - private void showLicenseDialog(String asset, String sourceUrl) { - // The Zlib notice is the only numbered one, and the only one short - // enough to fit the default dialog height. - boolean useNumberFormat = asset.equals("nanopb"); + private void showLicenseDialog(String tag) { + String[] parts = tag.split(" "); + String asset = parts[0]; + String sourceUrl = parts[1]; + boolean useNumberFormat = tag.contains(" numbered"); + boolean tallDialog = tag.contains(" tall"); Spanned content; try (InputStream is = getAssets().open(asset + ".html")) { @@ -208,7 +213,7 @@ private void showLicenseDialog(String asset, String sourceUrl) { window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); // A long notice would otherwise stretch the dialog over the whole screen. - if (!useNumberFormat) { + if (tallDialog) { WindowManager.LayoutParams params = window.getAttributes(); params.height = (int) (getResources().getDisplayMetrics().heightPixels * 0.85); window.setAttributes(params); diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml index 2035763..11a3333 100644 --- a/app/src/main/res/layout/about.xml +++ b/app/src/main/res/layout/about.xml @@ -95,11 +95,13 @@ + - + @@ -110,12 +112,12 @@ - + - + From fe7afc88a17c51017e75876aca4e21e8743373ad Mon Sep 17 00:00:00 2001 From: MarcaDian <152095496+MarcaDian@users.noreply.github.com> Date: Thu, 27 Aug 2026 15:34:22 +0300 Subject: [PATCH 12/12] fix: Hide the launcher icon by default so that it can be hidden at all --- app/src/main/AndroidManifest.xml | 7 ++++++- .../app/morphe/pot/helper/MainActivity.java | 20 +++++++++---------- app/src/main/res/layout/about.xml | 8 ++++---- app/src/main/res/values/strings.xml | 4 ++-- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 69fdb8d..87ce8ef 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,10 +12,15 @@ android:theme="@style/AppTheme" android:exported="true" /> - + diff --git a/app/src/main/java/app/morphe/pot/helper/MainActivity.java b/app/src/main/java/app/morphe/pot/helper/MainActivity.java index a9c8c21..85a42c6 100644 --- a/app/src/main/java/app/morphe/pot/helper/MainActivity.java +++ b/app/src/main/java/app/morphe/pot/helper/MainActivity.java @@ -117,10 +117,10 @@ protected void onCreate(Bundle savedInstanceState) { bind(findViewById(R.id.about_content)); - Switch hideIconSwitch = findViewById(R.id.hide_icon_switch); - hideIconSwitch.setChecked(isLauncherIconHidden()); - hideIconSwitch.setOnCheckedChangeListener((view, hidden) -> setLauncherIconHidden(hidden)); - findViewById(R.id.hide_icon).setOnClickListener(view -> hideIconSwitch.toggle()); + Switch showIconSwitch = findViewById(R.id.show_icon_switch); + showIconSwitch.setChecked(isLauncherIconShown()); + showIconSwitch.setOnCheckedChangeListener((view, shown) -> setLauncherIconShown(shown)); + findViewById(R.id.show_icon).setOnClickListener(view -> showIconSwitch.toggle()); } /** @@ -146,17 +146,17 @@ private ComponentName launcherAlias() { return new ComponentName(this, getPackageName() + ".Launcher"); } - private boolean isLauncherIconHidden() { + private boolean isLauncherIconShown() { return getPackageManager().getComponentEnabledSetting(launcherAlias()) - == PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; } - private void setLauncherIconHidden(boolean hidden) { + private void setLauncherIconShown(boolean shown) { getPackageManager().setComponentEnabledSetting( launcherAlias(), - hidden - ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED - : PackageManager.COMPONENT_ENABLED_STATE_ENABLED, + shown + ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED + : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml index 11a3333..0cf219b 100644 --- a/app/src/main/res/layout/about.xml +++ b/app/src/main/res/layout/about.xml @@ -129,7 +129,7 @@ @@ -139,13 +139,13 @@ android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> - - + + App version Settings - Hide app icon - Remove PotHelper from the home screen + Show app icon + Add PotHelper to the home screen Official links Donate