Skip to content

Commit 301be44

Browse files
committed
Do not allow to contribute for Gms related apps
1 parent 3bbbc19 commit 301be44

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

app/src/main/java/com/klee/sapio/data/InstalledApplicationsRepository.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class InstalledApplicationsRepository @Inject constructor() {
1515
fun getAppList(context: Context): List<InstalledApplication> {
1616
val apps = context.packageManager.getInstalledApplications(PackageManager.GET_META_DATA)
1717
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
18-
apps.removeIf { x -> isSystemApp(x) }
18+
apps.removeIf { x -> isSystemApp(x) || isGmsRelated(x) }
1919
}
2020

2121
val results: MutableList<InstalledApplication> = arrayListOf()
@@ -60,4 +60,9 @@ class InstalledApplicationsRepository @Inject constructor() {
6060
fun isSystemApp(info: ApplicationInfo): Boolean {
6161
return info.flags and ApplicationInfo.FLAG_SYSTEM != 0
6262
}
63+
64+
@VisibleForTesting
65+
fun isGmsRelated(info: ApplicationInfo): Boolean {
66+
return info.packageName.contains(".gms.")
67+
}
6368
}

app/src/test/java/com/klee/sapio/InstalledApplicationsRepositoryTest.kt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class InstalledApplicationsRepositoryTest {
4545

4646
private lateinit var fakeRegularApplicationInfo: ApplicationInfo
4747
private lateinit var fakeSystemApplicationInfo: ApplicationInfo
48+
private lateinit var fakeGmsApp: ApplicationInfo
4849

4950
private var fakeListApplicationInfo: List<ApplicationInfo>? = null
5051

@@ -66,9 +67,15 @@ class InstalledApplicationsRepositoryTest {
6667
flags = ApplicationInfo.FLAG_SYSTEM
6768
}
6869

70+
fakeGmsApp = ApplicationInfo().apply {
71+
packageName = "fake.package.gms.three"
72+
name = "FakeApplicationThree"
73+
}
74+
6975
fakeListApplicationInfo = mutableListOf(
7076
fakeRegularApplicationInfo,
71-
fakeSystemApplicationInfo
77+
fakeSystemApplicationInfo,
78+
fakeGmsApp
7279
)
7380

7481
Mockito.`when`(mockedContext.packageManager).thenReturn(mockedPackageManager)
@@ -103,6 +110,24 @@ class InstalledApplicationsRepositoryTest {
103110
)
104111
}
105112

113+
@Test
114+
fun test_isGmsWithRegularApp() {
115+
Assert.assertEquals(
116+
"App status error",
117+
false,
118+
repository.isGmsRelated(fakeRegularApplicationInfo)
119+
)
120+
}
121+
122+
@Test
123+
fun test_isGmsWithGmsApp() {
124+
Assert.assertEquals(
125+
"App status error",
126+
true,
127+
repository.isGmsRelated(fakeGmsApp)
128+
)
129+
}
130+
106131
@Test
107132
fun listApplicationCheckListSize() {
108133
val list = repository.getAppList(mockedContext)

0 commit comments

Comments
 (0)