(Translated by https://www.hiragana.jp/)
Add support for Themed App Icons in Android 13 by gnufella · Pull Request #95 · ProtonVPN/android-app · GitHub
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Themed App Icons in Android 13 #95

Open
wants to merge 183 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
65c9a13
Update guest hole servers
mateusz-markowicz Aug 4, 2021
d48609b
Add changelog for 2.8.75
mateusz-markowicz Aug 4, 2021
4fa59a2
Merge branch 'release/2.8.75' into 'master'
mateusz-markowicz Aug 5, 2021
4877f6c
Always ping server ports before connection [VPNAND-606]
mateusz-markowicz Aug 31, 2021
52aeb89
Add cambodia coordinates to map view
AlgirdasPundzius Sep 1, 2021
e18421c
Support smart reconnections for WireGuard when server is unreachable
mateusz-markowicz Sep 2, 2021
13bca64
Set error state on unknown final errors
mateusz-markowicz Sep 2, 2021
40ff0f5
Log unhandled java exceptions in app log file
mateusz-markowicz Sep 3, 2021
cb1329b
Add Puerto Rico coordinates to map view
AlgirdasPundzius Sep 3, 2021
4211b11
Cherry-pick missing translations to 2.9.0.x releases
mateusz-markowicz Sep 8, 2021
6c64ca9
Fix comparing connection params for WireGuard
mateusz-markowicz Sep 8, 2021
ee12fc4
Try to release memory used by reading app packages [VPNAND-620].
msimonides-proton Sep 13, 2021
ae45f69
Log VPN ports selected for pinging
mateusz-markowicz Sep 14, 2021
7f897f9
Use default port for WireGuard when not pinging
mateusz-markowicz Sep 14, 2021
42bfaea
Use IKEv2 when all pings fail only with Smart Protocol [VPNAND-622]
mateusz-markowicz Sep 14, 2021
51e6740
Don't trigger reconnection on local agent's unreachable
mateusz-markowicz Sep 15, 2021
80d8d2b
Handle generic final errors from Local Agent after specific errors
mateusz-markowicz Sep 15, 2021
db165a8
Fix NPE in NetworkUtils.getLocalNetworks
mateusz-markowicz Sep 16, 2021
c429db0
Move creation logic out of SelectedApplicationEntry.
msimonides-proton Sep 20, 2021
0715281
Load app label and icon via resources [VPNAND-631].
msimonides-proton Sep 20, 2021
0e9dfef
Remove the code that tries to trigger GC.
msimonides-proton Sep 20, 2021
463e32e
Use dynamic row height to accomodate for custom font size.
msimonides-proton Sep 20, 2021
5e12422
Show UI state for port scanning also without Smart Protocol
mateusz-markowicz Sep 20, 2021
909eddc
Don't close own assets [VPNAND-631].
msimonides-proton Sep 21, 2021
6aafe3c
Revert "Don't close own assets [VPNAND-631]."
msimonides-proton Sep 22, 2021
080a045
Revert "Load app label and icon via resources [VPNAND-631]."
msimonides-proton Sep 22, 2021
ef9a4ef
Split the list of apps in Exclude Apps dialog [VPNAND-629].
msimonides-proton Sep 17, 2021
e70d521
Adopt netzone header for loads and logicals requests [VPNAND-640].
msimonides-proton Sep 24, 2021
f7ecbfc
Update go-vpn-lib to 0.1.5 to fix go-srp dependencies [VPNAND-636]
mateusz-markowicz Sep 28, 2021
ba57b65
Prevent user password being captured by screen capture [VPNAND-637]
mateusz-markowicz Sep 28, 2021
811acfc
Load applications metadata in a separate process [VPNAND-619].
msimonides-proton Sep 13, 2021
5c39871
Don't cache build directories to avoid passing APKs from previous pip…
mateusz-markowicz Oct 5, 2021
8c29010
Update guest hole servers
mateusz-markowicz Oct 7, 2021
42fa261
Update f-droid metadata for 2.9.0.28
mateusz-markowicz Oct 7, 2021
796e29c
Merge remote-tracking branch 'origin/master' into release/2.9.0
mateusz-markowicz Oct 7, 2021
b0a51e6
Merge branch 'release/2.9.0' into 'master'
mateusz-markowicz Oct 7, 2021
c0e4dfd
Update wireguard library to 1.0.20210926
mateusz-markowicz Oct 5, 2021
6c503fc
Introduce random jitter to periodic API calls [VPNAND-642]
mateusz-markowicz Sep 27, 2021
b8f605d
Basic implementation of promo offer panel [VPNAND-529].
msimonides-proton Oct 7, 2021
6655561
Move offer-related code out of HomeActivity [VPNAND-526].
msimonides-proton Oct 7, 2021
0221006
Prefetch and try to preload the offer picture [VPNAND-526].
msimonides-proton Oct 7, 2021
3831279
Fix AppConfig fetch on login.
msimonides-proton Oct 7, 2021
6aad2a8
Convert ProtonHomeActivityTestRule to kotlin
mateusz-markowicz Oct 11, 2021
2ed4d99
Convert ProtonLoginActivityTestRule to kotlin
mateusz-markowicz Oct 11, 2021
cd20ecd
Update netshield live data on login and tier change [VPNAND-661]
mateusz-markowicz Oct 11, 2021
2491249
A quick fix for missing permissions dialog [VPNAND-668].
msimonides-proton Oct 13, 2021
0601d00
Fix the recents list on TV [VPNAND-668].
msimonides-proton Oct 13, 2021
bb648dd
Update tests for the recents list [VPNAND-668].
msimonides-proton Oct 13, 2021
a6923b7
Fix server list connection tests.
msimonides-proton Oct 14, 2021
c65ea52
Temporarily disable flaky test.
msimonides-proton Oct 15, 2021
e9b019e
Fix "Server List" being inaccessible on FireTV [VPNAND-666].
msimonides-proton Oct 12, 2021
199acbd
Update f-droid metadata for 2.9.0.77
mateusz-markowicz Nov 1, 2021
a507293
Update Guest Hole servers
mateusz-markowicz Nov 1, 2021
f3a11f8
Update f-droid metadata for 2.9.0.77
mateusz-markowicz Nov 1, 2021
54b2961
Update Guest Hole servers
mateusz-markowicz Nov 1, 2021
0a43045
Check "Include error logs" by default in report bug screen [VPNAND-626]
mateusz-markowicz Nov 2, 2021
7ac2b99
Merge branch 'release/2.9.0.77' into 'master'
mateusz-markowicz Nov 2, 2021
e4d656a
Don't allow touch events through the "loading" UI [VPNAND-679].
msimonides-proton Oct 28, 2021
4c2926d
Update Guest Hole servers
mateusz-markowicz Nov 11, 2021
cf19bad
Update f-droid metadata for 2.9.0.82
mateusz-markowicz Nov 11, 2021
6039f3d
Merge remote-tracking branch 'origin/master' into release/2.9.0.82
mateusz-markowicz Nov 11, 2021
ea36bdc
Fix versioning for release branch
mateusz-markowicz Nov 11, 2021
242f10c
Merge branch 'release/2.9.0.82' into 'master'
mateusz-markowicz Nov 11, 2021
5271eec
Expose profile list instead of an event [VPNAND-603]
msimonides-proton Nov 15, 2021
ba1c278
Update server status on the unfiltered list [VPNAND-404].
msimonides-proton Nov 15, 2021
36adb27
Update the server load in connection bottom sheet [VPNAND-404].
msimonides-proton Nov 15, 2021
88cd61e
Use up-to-date server object to get load [VPNAND-404].
msimonides-proton Nov 18, 2021
b105509
Don't crash when header is tapped in QC profile setting [VPMNAND-730].
msimonides-proton Nov 22, 2021
92bfec3
Revert "Fallback to fastest profile on maintenance for wireguard"
msimonides-proton Nov 19, 2021
6d49dd1
Fix profile display in connection panel header [VPNAND-729].
msimonides-proton Nov 19, 2021
4942698
Decrease the threshold for hiding the traffic graph [VPNAND-740].
msimonides-proton Nov 29, 2021
008a2a6
Don't crash when non-items are clicked [VPNAND-742].
msimonides-proton Nov 30, 2021
3a7620f
Disable selected country highlighting on Shield TV [VPNAND-731].
msimonides-proton Dec 2, 2021
807aa5a
Update guest hole servers.
msimonides-proton Dec 13, 2021
0accc68
Update f-droid metadata for 2.11.90.9.
msimonides-proton Dec 10, 2021
fbec8c6
Merge remote-tracking branch 'origin/master' into release/2.11.90.9
msimonides-proton Dec 13, 2021
a166ace
Merge branch 'release/2.11.90.9' into 'master'
msimonides-proton Dec 13, 2021
81fd1ee
Disable logcat logs for release builds with proguard [VPNAND-638]
mateusz-markowicz Dec 15, 2021
6ff964c
Set empty taskAffinity on launch activity [VPNAND-751].
msimonides-proton Dec 15, 2021
14b7ba9
Always open TV via SplashActivity [VPNAND-751].
msimonides-proton Dec 21, 2021
14d3e57
Remove the SplashActivity task from recents [VPNAND-763].
msimonides-proton Dec 28, 2021
9ad22c6
Use taskAffinity="" for all activities [VPNAND-751].
msimonides-proton Jan 5, 2022
c12bd50
Use "singleInstance" launch mode for SplashActivity [VPNAND-779].
msimonides-proton Jan 10, 2022
76026ab
Fix wasOnboardingShown().
msimonides-proton Jan 10, 2022
344278b
Merge remote-tracking branch 'origin/master' into release/2.11.90
mateusz-markowicz Jan 20, 2022
6f40a91
Update f-droid metadata for 2.11.90.17
mateusz-markowicz Jan 21, 2022
624de2a
Update guest hole servers
mateusz-markowicz Jan 21, 2022
d3eac23
Upgrade Core to 7.1.4.
msimonides-proton Mar 17, 2022
c0b3a24
Update Core to 7.1.5.
msimonides-proton Mar 23, 2022
caadbec
Update docker image to shared core CI.
msimonides-proton Mar 25, 2022
5a062c0
Add support for building Core against a specific commit.
armatys Mar 8, 2022
6a7dfba
Enable gradle build cache
armatys Mar 8, 2022
0ad90db
Add a fallback, for then proton-libs/gradle/include-core-libs.gradle.…
armatys Mar 17, 2022
59bb46d
Update Core with progress indicator fix.
msimonides-proton Mar 25, 2022
90b2953
Update Core to 7.1.6 with a hotfix.
msimonides-proton Mar 25, 2022
ab6aff9
Update branch reference for including `checkout-core.gitlab-ci.yml` f…
armatys Mar 25, 2022
cdd2723
Mark portrait orientation as not required.
msimonides-proton Apr 1, 2022
a40e01b
Update guest hole servers
mateusz-markowicz Apr 5, 2022
01dec44
Merge remote-tracking branch 'origin/master' into release/3.2.96
mateusz-markowicz Apr 5, 2022
1daf83b
Merge branch 'release/3.2.96' into 'master'
mateusz-markowicz Apr 5, 2022
70d38e6
Install connect-proxy before running github jobs
mateusz-markowicz Apr 6, 2022
2d79f58
Remove connect-proxy install for publish-github job
mateusz-markowicz Apr 6, 2022
77cd571
Add changelog for 3.2.96.10
mateusz-markowicz Apr 6, 2022
d4161f7
Add f-droid metadata
Apr 21, 2022
82b0455
Merge remote-tracking branch 'origin/master' into release/3.3.58.0
Apr 21, 2022
a18f107
Install connect-proxy before github jobs
Apr 21, 2022
902c210
Move core libs to google play flavor
Apr 27, 2022
9dda173
Force push tags on sync job
Apr 28, 2022
e66a2ac
Update embedded proton-libs to feat/rebranding/5.8
armatys Mar 1, 2022
f300e91
Update splash screen
armatys Mar 1, 2022
20ce93f
Update launcher icons
armatys Mar 1, 2022
b14cfcf
Add custom icons and brand color for the "black" flavor
armatys Mar 1, 2022
efebe95
Remove old profile colors (the new ones are defined in `proton-libs/p…
armatys Mar 1, 2022
3ee739b
Update TV colors [VPNAND-814].
msimonides-proton Mar 11, 2022
8a5499e
Update TV icons [VPNAND-814].
msimonides-proton Mar 16, 2022
744a86c
Use Core icons in mobile UI [VPNAND-814].
msimonides-proton Mar 16, 2022
31c1e16
Remove color override [VPNAND-814].
msimonides-proton Mar 16, 2022
1f7f7f7
Update corner radius [VPNAND-814].
msimonides-proton Mar 16, 2022
3320608
Update third party licenses colors [VPNAND-814].
msimonides-proton Mar 16, 2022
fe3af4f
Update illustrations [VPNAND-814].
msimonides-proton Mar 17, 2022
b17ff93
Remove unused code.
msimonides-proton Mar 17, 2022
0ec2c3c
New logo in the update icon [VPNAND-814].
msimonides-proton Mar 17, 2022
7748993
Convert AnimationTools to Java (fully automatic).
msimonides-proton Mar 21, 2022
dbd89f8
Update the FAB [VPNAND-814].
msimonides-proton Mar 21, 2022
d58a0fa
Remove unnecessary code.
msimonides-proton Mar 21, 2022
c3480a0
Update the status icons [VPNAND-814].
msimonides-proton Mar 21, 2022
e703cea
Use accent colors on plain background [VPNAND-814].
msimonides-proton Mar 21, 2022
e2c50b4
Update map markers [VPNAND-814].
msimonides-proton Mar 21, 2022
bebd0ee
Add "welcome to new look" dialog [VPNAND-814].
msimonides-proton Mar 23, 2022
bf8d92f
Use new loading animations [VPNAND-814].
msimonides-proton Mar 24, 2022
0b128d5
Update Secure Core arrow position [VPNAND-814].
msimonides-proton Mar 25, 2022
1201e8e
Update plans-related texts [VPNAND-814].
msimonides-proton Mar 28, 2022
15db13b
Remove unused color values.
msimonides-proton Mar 29, 2022
59302fb
Set up sync job for "new_plans" strings [VPNAND-814].
msimonides-proton Mar 29, 2022
68e9a91
Different icons for different flavors [VPNAND-814].
msimonides-proton Mar 30, 2022
f771953
Use stronger red for a number of UI elements.
msimonides-proton Apr 14, 2022
c08b4f8
Update "Disconnect" button color in map [VPNAND-814].
msimonides-proton Apr 14, 2022
a3e3b31
Fix black suffix and echo build url on each pipeline
Apr 14, 2022
d7c81a3
Show upgrade button in country selection in profiles [VPNAND-884].
msimonides-proton Apr 21, 2022
48dd102
Add "Need help?" in VPN error state in bottom sheet [VPNAND-892].
msimonides-proton Apr 26, 2022
bdcfc76
Troubleshoot screen uses in-app bug report [VPNAND-892].
msimonides-proton Apr 26, 2022
cd5bc4d
Disable LeakCanary in non-debug builds [VPNAND-891].
msimonides-proton Apr 25, 2022
72fe3ac
Remove LeakCanary import [VPNAND-891].
msimonides-proton Apr 26, 2022
dbc6a51
Add support for coupon codes [VPNAND-864].
msimonides-proton Apr 1, 2022
255e39b
Switch to /vpn/v2 endpoint [VPNAND-864].
msimonides-proton Apr 7, 2022
6897da2
Move account-related UI code to its own package.
msimonides-proton Apr 7, 2022
29d3e34
Remove setContentViewBinding.
msimonides-proton Apr 8, 2022
5c69926
Add feature flag for coupons [VPNAND-864].
msimonides-proton Apr 28, 2022
be488cd
Update copy for non-standard ports [VPNAND-880]
mateusz-markowicz Apr 21, 2022
5f08885
Update translations.
msimonides-proton Apr 29, 2022
a6e9ad2
New plans translations.
msimonides-proton Apr 29, 2022
fd15e3b
Use fake SharedPreferences in tests.
msimonides-proton Apr 26, 2022
5d2818b
Support disabling purchases [VPNAND-816]
mateusz-markowicz Apr 28, 2022
e46d5ca
Update Core to 7.2.1.
msimonides-proton May 4, 2022
1aae239
Add in app review suggestion for google play flavor [VPNAND-177]
Apr 29, 2022
e324103
Switch CI from direct flavor to google play flavor as it has most fun…
Apr 29, 2022
050e0d5
[i18n@2b670a1a] ~ Upgrade translations from crowdin
proton-ci May 2, 2022
3a655c4
Replace "ProtonMail" with "Proton Mail" (mostly in Core).
msimonides-proton May 4, 2022
9967e04
Disable payments related conditions in tests.
msimonides-proton May 4, 2022
78e8348
Add firstConnection condition to in app review
May 4, 2022
d661db6
Add logs only on debug builds for review tracker
May 4, 2022
6ea553b
Fix handling of 0 connections assigned.
msimonides-proton May 5, 2022
d47c620
Use bitmaps for notification icons.
msimonides-proton May 5, 2022
7319274
Fix stub update view for flavors hiding categories in bug report screen
Apr 29, 2022
cbe37f7
Enable Amazon builds in CI.
msimonides-proton May 19, 2022
89ebbc1
Adjust in app review conditions to be correct for successful connecti…
May 16, 2022
74e0875
Add try-catch to in app review suggestion for google free phones laun…
May 16, 2022
162712b
Update Learn more link in New look dialog [VPNAND-934].
msimonides-proton May 18, 2022
ebc4a0a
Don't pass CountryCard as Fragment argument [VPNAND-882].
msimonides-proton May 11, 2022
d9866ea
Change "ProtonVPN" to "Proton VPN".
msimonides-proton May 20, 2022
891b166
Include core fix for captcha on DoH [VPNAND-858]
mateusz-markowicz May 24, 2022
4e4d63e
Update guest hole servers.
msimonides-proton May 26, 2022
19a4b11
Merge remote-tracking branch 'origin/master' into release/4.0
msimonides-proton May 26, 2022
2106875
Merge branch 'release/4.0' into 'master'
msimonides-proton May 27, 2022
59109f1
Add changelog.
msimonides-proton May 27, 2022
a6e1021
Migrate IP value from old storage to new.
msimonides-proton Jun 10, 2022
5be3dc7
Update guest hole servers
mateusz-markowicz Jun 15, 2022
6a011a0
Merge remote-tracking branch 'origin/master' into release/4.1.83
mateusz-markowicz Jun 16, 2022
544b343
Update f-droid metadata for 4.1.83.1
mateusz-markowicz Jun 16, 2022
27e395e
Update guesthole servers
Aug 8, 2022
3233330
Update f-droid metadata
Aug 8, 2022
beece57
Merge remote-tracking branch 'origin/master' into release/4.2.63.0
Aug 8, 2022
1ec89d0
Add monochrome entry to support Themed App Icons
gnufella Aug 21, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Don't close own assets [VPNAND-631].
Also cancel the mapping loop in getInstalledInternetApps when the
coroutine is canceled.
  • Loading branch information
msimonides-proton committed Sep 21, 2021
commit 909eddce06150be99587c5af10c7321886aba8c7
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package com.protonvpn.android.ui.splittunneling

import android.Manifest
import android.app.ActivityManager
import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.content.res.Resources
Expand All @@ -41,6 +42,7 @@ import com.protonvpn.android.components.ContentLayout
import com.protonvpn.android.models.config.UserData
import com.protonvpn.android.utils.sortedByLocaleAware
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ensureActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import javax.inject.Inject
Expand Down Expand Up @@ -79,7 +81,7 @@ class AppsDialog : BaseDialog() {

val selection = userData.splitTunnelApps.toSet()
viewLifecycleOwner.lifecycleScope.launch {
val allApps = getInstalledInternetApps(requireContext().packageManager)
val allApps = getInstalledInternetApps(requireContext().applicationContext)
val sortedApps = withContext(Dispatchers.Default) {
allApps.forEach { app ->
if (selection.contains(app.packageName)) {
Expand Down Expand Up @@ -109,28 +111,36 @@ class AppsDialog : BaseDialog() {
.forEach { userData.removeAppFromSplitTunnel(it) }
}

// Pass app context to avoid problems when the dialog is closed and the IO thread is still
// accessing the PackageManager.
private suspend fun getInstalledInternetApps(
packageManager: PackageManager
appContext: Context
): List<SelectedApplicationEntry> = withContext(Dispatchers.IO) {
val packageManager = appContext.packageManager
val ourPackageName = appContext.packageName
val apps = packageManager.getInstalledApplications(
0
).filter { appInfo ->
(packageManager.checkPermission(Manifest.permission.INTERNET, appInfo.packageName)
== PackageManager.PERMISSION_GRANTED)
}.map { appInfo ->
getAppMetadata(packageManager, appInfo)
ensureActive()
getAppMetadata(packageManager, appInfo, ourPackageName)
}
apps
}

private fun getAppMetadata(
packageManager: PackageManager,
appInfo: ApplicationInfo
appInfo: ApplicationInfo,
ourPackageName: String
): SelectedApplicationEntry {
val appResources = packageManager.getResourcesForApplication(appInfo)
val label = getLabel(appResources, appInfo.labelRes) ?: appInfo.packageName
val icon = getIcon(appResources, appInfo.icon) ?: packageManager.defaultActivityIcon
appResources.assets.close()
if (appInfo.packageName != ourPackageName) {
appResources.assets.close()
}
return SelectedApplicationEntry(appInfo.packageName, label.toString(), icon)
}

Expand Down