Signed-off-by: Tavi <tavi@divested.dev>
This commit is contained in:
Tavi 2024-05-18 15:49:23 -04:00
parent 67e962e0f6
commit 9ddc388f03
No known key found for this signature in database
GPG Key ID: E599F62ECBAEAF2E
5 changed files with 52 additions and 217 deletions

View File

@ -1,4 +1,4 @@
android 6c4cfb245c44dae7ee8c4ff8cf7a14ff50efc599
android 2e8a1df0490851afd1f855da6ac28f8a9813a95f
art aeeafbd459298788c7760f35d04e7c0568d192b5
bionic e0aac7df6f58138dae903b5d456c947a3f8092ea
bootable/libbootloader 6e3710f107248dfbefbf79aaf81caca73a742cab
@ -6,7 +6,7 @@ bootable/recovery 8904d2a254c5263caded20af8fde209f8b37f22d
build/bazel 9898ac01c9525bf91d23a1c2b83fc401603cb6d3
build/bazel_common_rules f6cf03f7d0ba2e7cb05c0109a5cd57aae07dc6e8
build/blueprint ca8f0e8e3571c866d69d34cbd47b3989abe8e8cd
build/make a45102c64b686f150668cc6bdeba8257a53e5e7a
build/make a6d7a365ba6e4aa32ce57c691b2f50f28e68f78d
build/pesto d554620e6f7ad178b71ebb8c4269830cbd24ad8c
build/soong 703cc091154b7cdec61ab0d5398c691318224882
cts 5f6e2dedd307f20dcf663ae17ab5db8664092430
@ -106,7 +106,7 @@ device/oneplus/lemonadep 356a6714d3aa5d4036d172321c79a25b8c146781
device/oneplus/lemonades 8af90a8f1e5664cdc9c638f77b38032f274a2f21
device/oneplus/msm8998-common bb4a1c961a59839965f9f0df2c9283c365bfa31e
device/oneplus/sdm845-common 520b6e4a8d99d84c64bcca6338c314129e42e6bb
device/oneplus/sm8150-common 22ca24bb1fc804dff5c91b07199eede32ec5bb0c
device/oneplus/sm8150-common c50afa7db7abfb67ea4e16fcc23ebede2dfa688c
device/oneplus/sm8250-common 33cc64974e37adb41b710dd4053be49ceaef9662
device/oneplus/sm8350-common 4d4c5816f1e9af371957bf28b189c2451072b8c0
device/qcom/sepolicy 54b7abd8fcca916646ea6f8bc0e5e696ac9f39c7
@ -201,7 +201,7 @@ external/catch2 5f8628024c5a9219caa004d6a9547aacd9ba94c1
external/cblas 4fdeda64177f60e1b226349885b3c0ea016f3068
external/cbor-java 6b4b6adc5ff8f91e2ddef14adf510e14aaf90204
external/chromium-trace 9456b95a6d4b95c765c9f2264a71b0334f6cf8d7
external/chromium-webview 2b59e6725f2fb27a8bf8f4d048f1e6c1271e5144
external/chromium-webview 2efd3ad37fabcd0ea67a0826d8d5c0e85285ee3d
external/clang 9fae335badf26813486d207b69928d38b979e522
external/cldr 7518f37169bd87d6977244e4d7471bc48fcd62e0
external/cn-cbor 7b581886d1830f50c3ab104a56b7ab931779466f
@ -743,7 +743,7 @@ external/slf4j e623afa00205cf728436f6ca5a2a69a06c309706
external/smali db13f770454eb57e18ebffa7e3c1a126b6116f21
external/snakeyaml 21148245c8306f7fea8e2b1ff84de581dea9e521
external/sonic ad9c52cd7732100473a04ace1dbb8cda13377c01
external/sonivox 1d91606a62c65744446460d0e85dfe5db66fd22e
external/sonivox ef0e6882c25e5c9012d2dd25b8ab24c4ea7e475e
external/speex 739b4a46e23c4f7ca524b7d933c49ff6e8b26657
external/sqlite c512ae79a4a3eb1e58e1981806068ca79f745ebe
external/squashfs-tools a3a652d3d73bb8b135c4c9d9e33541f130f984a3
@ -801,8 +801,8 @@ external/zopfli 15fdf31c61251f3e5aa3b188df2770eb153b9484
external/zstd e6a035a8df42f375160f2acabe3caa283a0184d7
external/zucchini 11a3a4cd409d6e0f4ccfcfb97cc962eeaeddde00
external/zxing 248d7c742809ce1cbde1c4e6163d347e1feb274b
frameworks/av 2d75070ddb019a2c8fa084dd0a4af2f319395db0
frameworks/base fc78e09900ca39b8053540f39c359a6ce42ccfbe
frameworks/av 214685e2de63df75def32de6356a4d2853f5d5b7
frameworks/base 2ce1b16173aa31c2bee50605cfd9932994c6d555
frameworks/compile/libbcc 81c07084cca2a6feab53eeb022f5d5a3ab5c10c5
frameworks/compile/mclinker 18374a53dc8e00ec3667b4e1a257c9b4e41f007f
frameworks/compile/slang 1738348ca3d011f3f340883bd48e03a8e6aeb143
@ -853,7 +853,7 @@ hardware/google/pixel-sepolicy eec446aa4fb152d6651c90de682cf73f8e202bd4
hardware/interfaces f31f7a105851f892c16e25b550ee02c3e071a4d0
hardware/invensense 004a2dd5ea0d3a777520319536de119be1ba0049
hardware/knowles/athletico/sound_trigger_hal 61ca38058a06c524677654d67d6f4bed7757f1d7
hardware/lge 4921669e210048676ab41903c73bbd5982446156
hardware/lge 01fb6bae1cf3ca885f57d6cb53ee8def4b7824e8
hardware/libhardware 0eb202d7ebd7d2410eb2f62c908c0341964a4829
hardware/libhardware_legacy 50d9f52f7a7d4c70f10d6a9dca9a1f83a16c85ca
hardware/lineage/compat 015d90baa57a65c5bdeed20997dfdede50e65ca7
@ -861,8 +861,8 @@ hardware/lineage/interfaces 0ef7c7e95125ef1345bff0dafbca832e17046c67
hardware/lineage/livedisplay 3e298771b18d6c0e28350f50c7204c3c036662b8
hardware/nxp/nfc ea29b939898b9b7aa998124d3bbc9e7322c01514
hardware/nxp/secure_element 69b223b099f01b59100a175cc6b1ce11c76d203a
hardware/oneplus d95c1c53d94fa274ac6b10c2964a232744014cda
hardware/oplus 81bf10c0778e19784fde1f431c9eadbb72a028b0
hardware/oneplus 94d2a07242f77c24d14a3595b4661b31494c0a9f
hardware/oplus fe8e16ca54ee60c3180a7c04aec16bed9c31da18
hardware/qcom-caf/bootctrl e4868c89bd6433a5d14df4b33f66b2003bddb7ad
hardware/qcom-caf/bt b7218e4c89817079546f035f3cfe5f99b4730d43
hardware/qcom-caf/common b7371b2235ec060d226a56729cf29db0e54423a2
@ -930,9 +930,9 @@ hardware/qcom/sm8150/thermal 72f214e79db46e82d3dd21a2ed7f6ba418a6505f
hardware/qcom/sm8150/vr 1b71f99dcada3b7e90d1eb8ef34e3788b021a2cc
hardware/qcom/wlan 5d9edb7febcccde673bcf58cd2606e87115c6e2f
hardware/ril ff9403ff624c153bfd1e4b68d5fc396c8bd64c8e
hardware/samsung bcb1add3580ab85a696749ac37d5dc35758e240a
hardware/samsung a9d952501754e9cf145e5d51d3f534c0a06758af
hardware/samsung/nfc d4195a0bdfe35a6201cf1b5e222eb532a92cff2a
hardware/sony/SonyOpenTelephony eb50848fe08453cc7615fa0e559670e8f0f2fa2e
hardware/sony/SonyOpenTelephony 1af8f6cba347523605c80a2105fe53b3e3802344
hardware/sony/macaddrsetup d2871b2041790f6d291e207bec8b0ef34029ef59
hardware/sony/simdetect b121cd8ddb0721c406fc9a6d052d13b9b0084669
hardware/sony/timekeep 11c1535c71b97f0ab833e215a8121ed107235010
@ -1029,13 +1029,13 @@ kernel/xiaomi/vayu 6c9febddfbd505b760d12f585288cf7612ad57d8
kernel/zuk/msm8996 cc57cb4ee3b7918b74d30604735d353b9a5fa23b
libcore 2a7d66adbcde1862f9295ae0a13f1751b193e4d7
libnativehelper 49ecc5f1e97e810d27e2c6558abdde49e875349b
lineage-sdk 5fddfbd53408a8e6e295e143496c03a93f08582f
lineage-sdk bfdde3cc9c39ca5d30ac5431277ee00dc3da5126
lineage/scripts 662bf242886c5e347feb95557fe2233f3faca7da
packages/apps/Aperture 8fc934d4cd9102cf362f773ffb5a318e7d9bdabf
packages/apps/AudioFX 948810abf0a58c0d9f3a0f5697d07ec97189440f
packages/apps/Backgrounds 45ca0a65e2c8a2b06ac3abfcf1a9bfb9292f8a9f
packages/apps/Aperture ba4d61e48e6a21df49d1a9eac07c60f13a2c85f1
packages/apps/AudioFX 15e2a666d21551698ea0744996abcdc35e6c0cc1
packages/apps/Backgrounds 3b5c676d5a2747e92b14a79707c0aa3a6339bd4f
packages/apps/BasicSmsReceiver ae8e590ae7856e3007fe2b78489894a5fbf3f36a
packages/apps/Camera2 e0c7ef96aabf532eee270984acff44a736afcfa5
packages/apps/Camera2 e290e9ea0161e4ad162a9f17f376178e7fa36521
packages/apps/Car/Calendar 74a8375041155969dca0cf89725e30b28d905473
packages/apps/Car/Cluster be7bbdb8f1568a93caaca2d7c1292d4b12a380f1
packages/apps/Car/DebuggingRestrictionController b1483fd34c896ab040f1abd43c99f0c4741223a5
@ -1060,38 +1060,38 @@ packages/apps/CarrierConfig 6e3308a1bdcf61444ab2bb4ea886be705099da99
packages/apps/CellBroadcastReceiver 3d7340eeac82125cd9091fc368a031e98f4db7fd
packages/apps/CertInstaller 98a80cd7f6f9ad8b46acb5c4798fd2d9253d37c4
packages/apps/Contacts 643d0cb2481a46bfba3c2c0d778024750d7916ae
packages/apps/DeskClock f47e5c46eb68b2c07bc561aaeb75a846c3a46719
packages/apps/Dialer ba9bf7c663a9d46ed0ff2d0396fd7ee3612bea15
packages/apps/DocumentsUI 9bea494fb3e98e150b10f76407647e40cc9e3ebe
packages/apps/ElmyraService f531e5ad622cbc26b1dca042af0edfbe293eee02
packages/apps/DeskClock b8e55fa3f3099067c43a3067ea95d61969fbf8bb
packages/apps/Dialer 827bcad5a437d03b27ed43ef126fa3dbd1b7cbf2
packages/apps/DocumentsUI 0458482621fcdca3ee3938b3813f8d17421d62e0
packages/apps/ElmyraService cb1a517757b174a3c472c7eb6392769a10cdbc8b
packages/apps/EmergencyInfo e8fe444bd8f8d9b807ed9da969d4147896af6142
packages/apps/Etar 2fbfe0d9aca9b866491106561a6bf18cf713b3fe
packages/apps/Etar 8fe2cb35840eb05f44d96a092d19d5dd5b6402b8
packages/apps/ExactCalculator 92dd1417a6af570904e0d8c422f5a961ec693754
packages/apps/FMRadio 1d304d4bb6c4b0d53758622cd7ce2d71795e1dbe
packages/apps/FlipFlap dbebd7db34f415dea11b6bc7897ff7accea91fcc
packages/apps/FlipFlap 7c4c66d9032ae9d9656581949e767bb78682539b
packages/apps/Gallery2 bca6838e1944f5b80e04cc90a85213270cf3477c
packages/apps/HTMLViewer 40ee5730f96f840b1be7cbe8daabddd543eba49b
packages/apps/ImsServiceEntitlement 79a64a6e1d2602e81977a628ae385002bddd9e89
packages/apps/KeyChain d90f056762b0390f0c1a9823af51894f14a9f746
packages/apps/LineageCustomizer 6d78f750ddfe8b7b5821a9ce83860755491b8bd8
packages/apps/LineageParts 90e7e7d8d0d5e27c7966b0195e60b1f54c2214f4
packages/apps/LineageParts 0155d200ab59279e9b2f0b73510e5069666e6dba
packages/apps/ManagedProvisioning 4986c737e21b57a0545a4ba4f63be02e26f09243
packages/apps/Messaging 90e6b93a9558bae0831f2b3a89c20c6f94a53de5
packages/apps/Nfc c28555164b8d2c8e12d7d4439f1ce9d83b9655ab
packages/apps/OnDeviceAppPrediction 460e94bc49773d6e1a442fe0885e64bf3de98992
packages/apps/OneTimeInitializer 3f70a0dbc890d9f125c4090b4ccfd5157ad87a64
packages/apps/PhoneCommon f44c97cc5c6de1c980694af76d1692157dd50a0c
packages/apps/Profiles a84fe057ff7566717d86bddcc9c47780c065534b
packages/apps/Profiles 78318ee404725fb9cace4b9af7e78761035b321c
packages/apps/Provision 841d5199e1d1c64e7853fd953eed5247780908c1
packages/apps/QuickAccessWallet ad935df93a556861473b3b411e255b4165d67fc0
packages/apps/Recorder d3502c23134bc9c45c7171a4dd904a861bc755f5
packages/apps/Recorder ddf4ffa70d80e1bdd4fb92d31364dabca5aa9665
packages/apps/RemoteProvisioner 06d16c8031ce54bff1a07cc64f8b02140a3753c1
packages/apps/SafetyRegulatoryInfo f5dfd6ab7ea6aaa1a0014106110733e316379e95
packages/apps/SecureElement 7e9d165899058103fa612ffb41858e4fd975182b
packages/apps/Seedvault e03ad756817631611b7497d9fe7b2173e2756b9d
packages/apps/Settings 88929899cd18f4e28eb0a8f18183dcc5cc92896c
packages/apps/Settings beb4dea546bb401f176dc8b28e3bd0a9ea8063bf
packages/apps/SettingsIntelligence 4ef92f41721f25bbdec5c0b2433547ef323e72ac
packages/apps/SetupWizard 003802ed5ae144c21e47832fd3dd4884aa7e18e0
packages/apps/SetupWizard b5cb63dae5dab0dadc481a80751e788902e36591
packages/apps/SimpleDeviceConfig 82d31b18dd2550e05f89248f128cb571eecc863a
packages/apps/SimpleSettingsConfig f5620aa22a44ac3a9794d0fda5c146efd7e0a11e
packages/apps/Stk 9cbb287404fb15a3a13c63f15b73962cdd18529d
@ -1100,17 +1100,17 @@ packages/apps/SystemUIGo 5431a35c7bc359a226440d24f89ce13801266af4
packages/apps/TV b1a0cfb28cb809da961f520058ba8f93d2649975
packages/apps/Tag 2e6b762fba6b10af7c003f801c1f6fd8f1962038
packages/apps/Test/connectivity 6179ceeccf2ed30919d9e913f8a43ee81d01d41c
packages/apps/ThemePicker 4f5ddb78a2c854a8d65027235ffe9ed394ea905b
packages/apps/ThemePicker 39aff06da55b43e73ca983c7b68061a96b108c74
packages/apps/TimeZoneData 498c5148458a63598417d2b2369fbed3ab19331c
packages/apps/TimeZoneUpdater e862d8ef6370b8540a8dd010d9c8dcff20735af5
packages/apps/Traceur f1f531bd3dd414aa6b8d81d517b3c6c9164a657b
packages/apps/Trebuchet daf5b4ed2af8b08c5c69d1e7d223fb035de6aad1
packages/apps/Trebuchet ec045aa03388147b2001bf52d3a057f05c2fabe6
packages/apps/TvSettings 82d09fbb7635d4eaf4496925768697f272614abc
packages/apps/UniversalMediaPlayer a56170cac624f5cd5b5344de8a24b074049d9076
packages/apps/Updater 9dd46a087e3b5c3fe0af2dadabe85631c5be5b3a
packages/apps/Updater 51a89498c672657e809bd2d24dd18d8e6ccec164
packages/apps/WallpaperPicker 5b6254f657aa278f874b819f8de2edeb59acf85c
packages/apps/WallpaperPicker2 87e1441dc8743a3518d92f941e6f784c9eedc5c1
packages/inputmethods/LatinIME 16ca1e3700716568584179a5e847ce08646e5bec
packages/inputmethods/LatinIME 808f4f36811b51fd399c7f4f0417a7aa1a5165ae
packages/inputmethods/LeanbackIME 945d4dc0f957bd3538a286b41babd93002d93d5c
packages/modules/AdServices cf7fdc79568f5adb4028e9339bea92429d109cb7
packages/modules/AppSearch 5afd5a663c198a6b83ce8b4c49ae40903afae022
@ -1158,7 +1158,7 @@ packages/providers/PartnerBookmarksProvider d982e500f09447d000f2ca67782831cc6b59
packages/providers/TelephonyProvider 64aa1787b56d1e9b03bcd18dc652aa7a395c4db0
packages/providers/TvProvider c0e54c118bc93bce2f3edaa5fa9c59089c896dc8
packages/providers/UserDictionaryProvider 1a5d6d4997847e0ec2040be5cb9a7efaf1620e72
packages/resources/devicesettings 2379de35ba0c7a24df97d11f3a219a310ded9487
packages/resources/devicesettings de75bc1d53a7d75be8913de8c8f7af846b78469f
packages/screensavers/Basic d3aaa026dc3eaf7a249c1a00c1a0524e9c1bb349
packages/screensavers/PhotoTable d5a731373f32b698776402bae8ff09a9676b6bb1
packages/services/AlternativeNetworkAccess dc09bf9c4b5652ef0096e4991f565854160395af
@ -1336,7 +1336,7 @@ tools/tradefederation/prebuilts dcb8956ae70359e7f554b9eb50e185d2a7feb6cd
tools/treble d74b74010472ba957f4125b676a41c23ca91e549
tools/trebuchet 9ff3c1fd3ea48b7c148fc1f6e2456dbc5596ca8d
vendor/codeaurora/telephony ebdb27e3a6d9f94aed27dee2819829a3d656ad20
vendor/crowdin 23858c9f1f5bbcc44dff482339cf4a1e3061bfbe
vendor/crowdin 9a06bda8e5cfbb78aa92ca4f4591f572df02f3d5
vendor/essential/mata 3e37777606e559f33c9e1d247b15de1fac359fe5
vendor/fairphone/FP3 6ebc77ace3dce27e03973ddb4bb9629de576cdd7
vendor/fairphone/FP4 6482b251c7c1620cbc85d513cfd12fce70ff6eb6
@ -1413,7 +1413,7 @@ vendor/qcom/opensource/data-ipa-cfg-mgr 3c0a7c4a067323d92e1091429e5f6bb6e099473f
vendor/qcom/opensource/data-ipa-cfg-mgr-legacy-um bb0df39c52503c687d39903155b44e85c32708aa
vendor/qcom/opensource/dataservices c8adc2a4daddce3176b928661fb7e83b72dd2423
vendor/qcom/opensource/display 69f7b0550973a0f6bfb3ff9a244b75dfe008c781
vendor/qcom/opensource/fm-commonsys 9811f8b6b1a8fc53ba8d302ef23c21d990fc2087
vendor/qcom/opensource/fm-commonsys 38285208731a8b72500db60d3e8ae321a3d88434
vendor/qcom/opensource/healthd-ext 398ea4b554fffbed4a59294b51085b7eba8b5f5d
vendor/qcom/opensource/interfaces 7e41eeb480578966fd87d42f439aa0b4fb4188c9
vendor/qcom/opensource/libfmjni e33227ed63c6b8e7df0b638f556bf14fa99acd83

View File

@ -1,167 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Valentin Iftime <valiiftime@google.com>
Date: Mon, 16 Oct 2023 09:29:17 +0200
Subject: [PATCH] Prioritize system toasts
Insert toasts from system packages at the front of the queue
to ensure that apps can't spam with toast to delay system toasts from showing.
Also increase Clipboard paste warning toasts length to LENGTH_LONG.
Test: atest NotificationManagerServiceTest
Bug: 293301736
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:58d89b491668663963e66906196fd93b9c73ee80)
Merged-In: I13547f853476bc88d12026c545aba9f857ce8724
Change-Id: I13547f853476bc88d12026c545aba9f857ce8724
---
.../server/clipboard/ClipboardService.java | 4 +-
.../NotificationManagerService.java | 32 ++++++++-
.../NotificationManagerServiceTest.java | 68 +++++++++++++++++++
3 files changed, 100 insertions(+), 4 deletions(-)
diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java
index 6f9a17682dd7..20157dd60b63 100644
--- a/services/core/java/com/android/server/clipboard/ClipboardService.java
+++ b/services/core/java/com/android/server/clipboard/ClipboardService.java
@@ -1189,11 +1189,11 @@ public class ClipboardService extends SystemService {
.getDrawable(R.drawable.ic_safety_protection);
toastToShow = Toast.makeCustomToastWithIcon(getContext(),
UiThread.get().getLooper(), message,
- Toast.LENGTH_SHORT, safetyProtectionIcon);
+ Toast.LENGTH_LONG, safetyProtectionIcon);
} else {
toastToShow = Toast.makeText(
getContext(), UiThread.get().getLooper(), message,
- Toast.LENGTH_SHORT);
+ Toast.LENGTH_LONG);
}
toastToShow.show();
} catch (PackageManager.NameNotFoundException e) {
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index a59e2dbfe0f2..1c8c85cf8d29 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -3369,8 +3369,19 @@ public class NotificationManagerService extends SystemService {
null /* options */);
record = getToastRecord(callingUid, callingPid, pkg, isSystemToast, token,
text, callback, duration, windowToken, displayId, textCallback);
- mToastQueue.add(record);
- index = mToastQueue.size() - 1;
+
+ // Insert system toasts at the front of the queue
+ int systemToastInsertIdx = mToastQueue.size();
+ if (isSystemToast) {
+ systemToastInsertIdx = getInsertIndexForSystemToastLocked();
+ }
+ if (systemToastInsertIdx < mToastQueue.size()) {
+ index = systemToastInsertIdx;
+ mToastQueue.add(index, record);
+ } else {
+ mToastQueue.add(record);
+ index = mToastQueue.size() - 1;
+ }
keepProcessAliveForToastIfNeededLocked(callingPid);
}
// If it's at index 0, it's the current toast. It doesn't matter if it's
@@ -3386,6 +3397,23 @@ public class NotificationManagerService extends SystemService {
}
}
+ @GuardedBy("mToastQueue")
+ private int getInsertIndexForSystemToastLocked() {
+ // If there are other system toasts: insert after the last one
+ int idx = 0;
+ for (ToastRecord r : mToastQueue) {
+ if (idx == 0 && mIsCurrentToastShown) {
+ idx++;
+ continue;
+ }
+ if (!r.isSystemToast) {
+ return idx;
+ }
+ idx++;
+ }
+ return idx;
+ }
+
private boolean checkCanEnqueueToast(String pkg, int callingUid,
boolean isAppRenderedToast, boolean isSystemToast) {
final boolean isPackageSuspended = isPackagePaused(pkg);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 7a3754e4e5fa..4f0a7ca0ad51 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -7117,6 +7117,74 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertEquals(NotificationManagerService.MAX_PACKAGE_TOASTS, mService.mToastQueue.size());
}
+ @Test
+ public void testPrioritizeSystemToasts() throws Exception {
+ // Insert non-system toasts
+ final String testPackage = "testPackageName";
+ assertEquals(0, mService.mToastQueue.size());
+ mService.isSystemUid = false;
+ mService.isSystemAppId = false;
+ setToastRateIsWithinQuota(true);
+ setIfPackageHasPermissionToAvoidToastRateLimiting(testPackage, false);
+
+ // package is not suspended
+ when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ INotificationManager nmService = (INotificationManager) mService.mService;
+
+ // Enqueue maximum number of toasts for test package
+ for (int i = 0; i < NotificationManagerService.MAX_PACKAGE_TOASTS; i++) {
+ nmService.enqueueTextToast(testPackage, new Binder(), "Text", 2000, 0, null);
+ }
+
+ // Enqueue system toast
+ final String testPackageSystem = "testPackageNameSystem";
+ mService.isSystemUid = true;
+ setIfPackageHasPermissionToAvoidToastRateLimiting(testPackageSystem, false);
+ when(mPackageManager.isPackageSuspendedForUser(testPackageSystem, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ nmService.enqueueToast(testPackageSystem, new Binder(), new TestableToastCallback(), 2000, 0);
+
+ // System toast is inserted at the front of the queue, behind current showing toast
+ assertEquals(testPackageSystem, mService.mToastQueue.get(1).pkg);
+ }
+
+ @Test
+ public void testPrioritizeSystemToasts_enqueueAfterExistingSystemToast() throws Exception {
+ // Insert system toasts
+ final String testPackageSystem1 = "testPackageNameSystem1";
+ assertEquals(0, mService.mToastQueue.size());
+ mService.isSystemUid = true;
+ setToastRateIsWithinQuota(true);
+ setIfPackageHasPermissionToAvoidToastRateLimiting(testPackageSystem1, false);
+
+ // package is not suspended
+ when(mPackageManager.isPackageSuspendedForUser(testPackageSystem1, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ INotificationManager nmService = (INotificationManager) mService.mService;
+
+ // Enqueue maximum number of toasts for test package
+ for (int i = 0; i < NotificationManagerService.MAX_PACKAGE_TOASTS; i++) {
+ nmService.enqueueTextToast(testPackageSystem1, new Binder(), "Text", 2000, 0, null);
+ }
+
+ // Enqueue another system toast
+ final String testPackageSystem2 = "testPackageNameSystem2";
+ mService.isSystemUid = true;
+ setIfPackageHasPermissionToAvoidToastRateLimiting(testPackageSystem2, false);
+ when(mPackageManager.isPackageSuspendedForUser(testPackageSystem2, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ nmService.enqueueToast(testPackageSystem2, new Binder(), new TestableToastCallback(), 2000, 0);
+
+ // System toast is inserted at the back of the queue, after the other system toasts
+ assertEquals(testPackageSystem2,
+ mService.mToastQueue.get(mService.mToastQueue.size() - 1).pkg);
+ }
+
private void setAppInForegroundForToasts(int uid, boolean inForeground) {
int importance = (inForeground) ? IMPORTANCE_FOREGROUND : IMPORTANCE_NONE;
when(mActivityManager.getUidImportance(mUid)).thenReturn(importance);

View File

@ -7,14 +7,14 @@ Change-Id: I43524f0567eabff163ce81c4a93cf145542a3d5d
Signed-off-by: Tavi <tavi@divested.dev>
---
app/src/main/AndroidManifest.xml | 3 ++-
.../lineageos/updater/UpdatesActivity.java | 3 +++
.../lineageos/updater/UpdatesActivity.java | 4 +++
.../org/lineageos/updater/misc/Constants.java | 11 ++++++++
.../org/lineageos/updater/misc/Utils.java | 27 ++++++++++++++++---
.../main/res/layout/preferences_dialog.xml | 22 +++++++++++++++
app/src/main/res/values/arrays.xml | 7 +++++
app/src/main/res/values/strings.xml | 5 ++++
.../main/res/xml/network_security_config.xml | 8 ++++++
8 files changed, 81 insertions(+), 5 deletions(-)
8 files changed, 82 insertions(+), 5 deletions(-)
create mode 100644 app/src/main/res/xml/network_security_config.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
@ -32,7 +32,7 @@ index 6041740..a4cdf95 100644
<activity
android:name=".UpdatesActivity"
diff --git a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java
index 387eea0..cd91968 100644
index 387eea0..87adfbb 100644
--- a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java
+++ b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java
@@ -573,6 +573,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
@ -43,7 +43,15 @@ index 387eea0..cd91968 100644
SwitchCompat onionRouting = view.findViewById(R.id.preferences_onion_routing);
SwitchCompat autoDelete = view.findViewById(R.id.preferences_auto_delete_updates);
SwitchCompat meteredNetworkWarning = view.findViewById(
@@ -627,6 +628,8 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
@@ -586,6 +587,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
autoCheckInterval.setSelection(Utils.getUpdateCheckSetting(this));
+ serverChoice.setSelection(Utils.getServerChoiceSetting(this));
onionRouting.setChecked(prefs.getBoolean(Constants.PREF_ONION_ROUTING, false));
autoDelete.setChecked(prefs.getBoolean(Constants.PREF_AUTO_DELETE_UPDATES, false));
meteredNetworkWarning.setChecked(prefs.getBoolean(Constants.PREF_METERED_NETWORK_WARNING,
@@ -627,6 +629,8 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
prefs.edit()
.putInt(Constants.PREF_AUTO_UPDATES_CHECK_INTERVAL,
autoCheckInterval.getSelectedItemPosition())
@ -77,7 +85,7 @@ index 825e1a0..eac5451 100644
public static final String PREF_AUTO_DELETE_UPDATES = "auto_delete_updates";
public static final String PREF_AB_PERF_MODE = "ab_perf_mode";
diff --git a/app/src/main/java/org/lineageos/updater/misc/Utils.java b/app/src/main/java/org/lineageos/updater/misc/Utils.java
index 3d4aab9..efcd363 100644
index 3d4aab9..28c8fe5 100644
--- a/app/src/main/java/org/lineageos/updater/misc/Utils.java
+++ b/app/src/main/java/org/lineageos/updater/misc/Utils.java
@@ -201,14 +201,33 @@ public class Utils {
@ -95,7 +103,7 @@ index 3d4aab9..efcd363 100644
+ case Constants.PREF_SERVER_CHOICE_PRIMARY:
+ default:
+ return Constants.PREF_SERVER_CHOICE_PRIMARY_ACTUAL;
+ case Constants.PREF_SERVER_CHOICE_SECONDARY_ACTUAL:
+ case Constants.PREF_SERVER_CHOICE_SECONDARY:
+ return Constants.PREF_SERVER_CHOICE_PRIMARY_ACTUAL;
+ case Constants.PREF_SERVER_CHOICE_ONION_PRIMARY:
+ return Constants.PREF_SERVER_CHOICE_ONION_PRIMARY_ACTUAL;
@ -113,7 +121,7 @@ index 3d4aab9..efcd363 100644
- if(serverOnion.toLowerCase().startsWith("http") && isOnionRoutingEnabled(context)) {
- server = serverOnion;
+ String server = getServerBaseUrl(context);
+ if (!isOnionRoutingEnabled(context) && server.contains(".onion/")) {
+ if (!isOnionRoutingEnabled(context) && server.toLowerCase().startsWith("http://") && server.toLowerCase().contains(".onion/")) {
+ server = Constants.PREF_SERVER_CHOICE_PRIMARY_ACTUAL;
}
@ -168,7 +176,7 @@ index cc90a3f..2940af9 100644
+ </string-array>
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ac159a8..c947659 100644
index ac159a8..5d97180 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -59,6 +59,11 @@

View File

@ -98,7 +98,6 @@ applyPatch "$DOS_PATCHES/android_build/0004-Selective_APEX.patch"; #Only enable
sed -i '75i$(my_res_package): PRIVATE_AAPT_FLAGS += --auto-add-overlay' core/aapt2.mk; #Enable auto-add-overlay for packages, this allows the vendor overlay to easily work across all branches.
sed -i 's/PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION := 23/PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION := 28/' core/version_util.mk; #Set the minimum supported target SDK to Pie (GrapheneOS)
#sed -i 's/PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true/PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false/' core/product_config.mk; #broken by hardenDefconfig
sed -i 's/2024-04-05/2024-05-05/' core/version_defaults.mk; #Bump Security String #x_asb_2024-05
fi;
if enterAndClear "build/soong"; then
@ -125,16 +124,11 @@ sed -i -e '76,78d;' Android.bp; #fix compile under A13
fi;
fi;
if enterAndClear "external/sonivox"; then
applyPatch "$DOS_PATCHES_COMMON/android_external_sonivox/392224.patch"; #T_asb_2024-05 Fix buffer overrun in eas_wtengine
fi;
if enterAndClear "frameworks/av"; then
git am $DOS_PATCHES/ASB-2023-10/av-*.patch;
fi;
if enterAndClear "frameworks/base"; then
applyPatch "$DOS_PATCHES/android_frameworks_base/392225.patch"; #T_asb_2024-05 Prioritize system toasts
git revert --no-edit d36faad3267522c6d3ff91ba9dcca8f6274bccd1; #Reverts "JobScheduler: Respect allow-in-power-save perm" in favor of below patch
git revert --no-edit 90d6826548189ca850d91692e71fcc1be426f453; #Reverts "Remove sensitive info from SUPL requests" in favor of below patch
git revert --no-edit 6d2955f0bd55e9938d5d49415182c27b50900b95; #Reverts "Allow signature spoofing for microG Companion/Services" in favor of below patch

View File

@ -103,7 +103,7 @@ export DOS_BRANDING_LINK_PRIVACY="https://divestos.org/pages/privacy_policy";
#OTAs
export DOS_OTA_SERVER_LEGACY="https://divestos.org/updater.php";
export DOS_OTA_SERVER_EXTENDED=true; #Enable to provide mutliple choices as set below
export DOS_OTA_SERVER_PRIMARY="https://divestos.org/updater.php";
export DOS_OTA_SERVER_PRIMARY="$DOS_OTA_SERVER_LEGACY";
export DOS_OTA_SERVER_SECONDARY="https://divestos.eeyo.re/updater.php";
export DOS_OTA_SERVER_SECONDARY_NAME="Cloudflare";
export DOS_OTA_SERVER_ONION_PRIMARY="http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion/updater.php";