diff --git a/play-services-core/microg-ui-tools/src/main/java/org/microg/tools/selfcheck/PermissionCheckGroup.java b/play-services-core/microg-ui-tools/src/main/java/org/microg/tools/selfcheck/PermissionCheckGroup.java
index 0fe6c2b0..a19d1275 100644
--- a/play-services-core/microg-ui-tools/src/main/java/org/microg/tools/selfcheck/PermissionCheckGroup.java
+++ b/play-services-core/microg-ui-tools/src/main/java/org/microg/tools/selfcheck/PermissionCheckGroup.java
@@ -57,12 +57,10 @@ public class PermissionCheckGroup implements SelfCheckGroup {
PackageManager pm = context.getPackageManager();
try {
PermissionInfo info = pm.getPermissionInfo(permission, 0);
- PermissionGroupInfo groupInfo = info.group != null ? pm.getPermissionGroupInfo(info.group, 0) : null;
CharSequence permLabel = info.loadLabel(pm);
- CharSequence groupLabel = groupInfo != null ? groupInfo.loadLabel(pm) : permLabel;
collector.addResult(context.getString(R.string.self_check_name_permission, permLabel),
context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED ? Positive : Negative,
- context.getString(R.string.self_check_resolution_permission, groupLabel),
+ context.getString(R.string.self_check_resolution_permission),
fragment -> fragment.requestPermissions(new String[]{permission}, 0));
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, e);
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-de/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-de/strings.xml
index 239d3992..02b5d03b 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-de/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-de/strings.xml
@@ -30,7 +30,7 @@
Erteilte Berechtigungen
%1$s:
- Hier drücken, um die Berechtigung \"%1$s\" zu erteilen. Verweigern einer Berechtigung kann zu Fehlverhalten in anderen Anwendungen führen.
+ Hier drücken, um die Berechtigung zu erteilen. Verweigern einer Berechtigung kann zu Fehlverhalten in anderen Anwendungen führen.
microG UI Demo
Zusammenfassung
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-fr/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-fr/strings.xml
index 62e0c9ea..f81fe051 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-fr/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-fr/strings.xml
@@ -30,7 +30,7 @@
Autorisations accordées
Autorisation à %1$s :
- Touchez ici pour accorder l’autorisation %1$s. Des applications peuvent mal se comporter si vous ne le faites pas.
+ Touchez ici pour accorder l’autorisation. Des applications peuvent mal se comporter si vous ne le faites pas.
Version v0.1.0
Librairies incluses
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-it/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-it/strings.xml
index 52e85d46..10bf1971 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-it/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-it/strings.xml
@@ -30,7 +30,7 @@
Autorizzazione concessa
Autorizzazione a %1$s:
- Tocca qui per concedere l\'autorizzazione a %1$s. Negare l\'autorizzazione può comportare il funzionamento anomalo di altre applicazioni.
+ Tocca qui per concedere l\'autorizzazione. Negare l\'autorizzazione può comportare il funzionamento anomalo di altre applicazioni.
microG UI Demo
Sommario
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-pl/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-pl/strings.xml
index 86e569b8..09bc2c69 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-pl/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-pl/strings.xml
@@ -30,7 +30,7 @@
Udzielono uprawnień
Uprawnienie do %1$s:
- Stuknij, aby udzielić uprawnienia na %1$s. Nieudzielenie uprawnienia może powodować problemy z aplikacjami.
+ Stuknij, aby udzielić uprawnienia. Nieudzielenie uprawnienia może powodować problemy z aplikacjami.
Demo microG UI
Podsumowanie
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-ru/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-ru/strings.xml
index 69bc5b75..99b2cc13 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-ru/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-ru/strings.xml
@@ -30,7 +30,7 @@
Права доступа предоставлены
Разрешение для %1$s:
- Нажмите здесь, чтобы дать разрешение на %1$s. Непредоставление разрешения может привести некорректной работе приложения.
+ Нажмите здесь, чтобы дать разрешение. Непредоставление разрешения может привести некорректной работе приложения.
microG UI Demo
Сводка
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-sr/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-sr/strings.xml
index 687f2b62..900da90c 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-sr/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-sr/strings.xml
@@ -23,6 +23,6 @@
Дозволе одобрене
Дозволе за %1$s:
- Тапните овде да одобрите дозволе за %1$s. Не одобравање дозвола може да резултира чудним понашањем апликација.
+ Тапните овде да одобрите дозволе. Не одобравање дозвола може да резултира чудним понашањем апликација.
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-uk/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-uk/strings.xml
index 8ca8c5ed..2675da69 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-uk/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-uk/strings.xml
@@ -30,7 +30,7 @@
Доступ надано
Доступ до %1$s:
- Торкніться, аби надати доступ до %1$s. Без доступу не гарантується робота додатку належним чином.
+ Торкніться, аби надати доступ. Без доступу не гарантується робота додатку належним чином.
Демонстрація microG UI
Резюме
diff --git a/play-services-core/microg-ui-tools/src/main/res/values-zh-rTW/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values-zh-rTW/strings.xml
index f1f7d11c..592db83e 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values-zh-rTW/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values-zh-rTW/strings.xml
@@ -30,7 +30,7 @@
允許權限
給 %1$s的權限:
- 按這裡給%1$s權限。不允許權限可能導致程式運作不正常。
+ 按這裡給權限。不允許權限可能導致程式運作不正常。
microG UI Demo
大綱
diff --git a/play-services-core/microg-ui-tools/src/main/res/values/strings.xml b/play-services-core/microg-ui-tools/src/main/res/values/strings.xml
index 5479f66a..e62b0f4a 100644
--- a/play-services-core/microg-ui-tools/src/main/res/values/strings.xml
+++ b/play-services-core/microg-ui-tools/src/main/res/values/strings.xml
@@ -30,7 +30,7 @@
Permissions granted
Permission to %1$s:
- Touch here to grant permission to %1$s. Not granting the permission can result in misbehaving applications.
+ Touch here to grant permission. Not granting the permission can result in misbehaving applications.
microG UI Demo
Summary
diff --git a/play-services-core/src/main/java/org/microg/gms/ui/SelfCheckFragment.java b/play-services-core/src/main/java/org/microg/gms/ui/SelfCheckFragment.java
index 10d0d83a..77c8303d 100644
--- a/play-services-core/src/main/java/org/microg/gms/ui/SelfCheckFragment.java
+++ b/play-services-core/src/main/java/org/microg/gms/ui/SelfCheckFragment.java
@@ -16,8 +16,15 @@
package org.microg.gms.ui;
+import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.PermissionGroupInfo;
+import android.content.pm.PermissionInfo;
+import android.net.Uri;
import android.os.Build;
+import android.provider.Settings;
+import android.util.Log;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
@@ -42,6 +49,8 @@ import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.Manifest.permission.GET_ACCOUNTS;
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
import static android.Manifest.permission.READ_PHONE_STATE;
+import static android.Manifest.permission.READ_SMS;
+import static android.Manifest.permission.RECEIVE_SMS;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import static android.os.Build.VERSION.SDK_INT;
import static android.os.Build.VERSION_CODES.LOLLIPOP_MR1;
@@ -52,7 +61,7 @@ public class SelfCheckFragment extends AbstractSelfCheckFragment {
protected void prepareSelfCheckList(List checks) {
checks.add(new RomSpoofSignatureChecks());
checks.add(new InstalledPackagesChecks());
- if (SDK_INT > LOLLIPOP_MR1) {
+ if (SDK_INT >= 23) {
List permissions = new ArrayList<>();
permissions.add(ACCESS_COARSE_LOCATION);
permissions.add(ACCESS_FINE_LOCATION);
@@ -63,7 +72,29 @@ public class SelfCheckFragment extends AbstractSelfCheckFragment {
permissions.add(WRITE_EXTERNAL_STORAGE);
permissions.add(GET_ACCOUNTS);
permissions.add(READ_PHONE_STATE);
- checks.add(new PermissionCheckGroup(permissions.toArray(new String[0])));
+ permissions.add(RECEIVE_SMS);
+ checks.add(new PermissionCheckGroup(permissions.toArray(new String[0])) {
+ @Override
+ public void doChecks(Context context, ResultCollector collector) {
+ super.doChecks(context, collector);
+ PackageManager pm = context.getPackageManager();
+ try {
+ PermissionInfo info = pm.getPermissionInfo("android.permission.SYSTEM_ALERT_WINDOW", 0);
+ CharSequence permLabel = info.loadLabel(pm);
+ collector.addResult(
+ context.getString(org.microg.tools.ui.R.string.self_check_name_permission, permLabel),
+ Settings.canDrawOverlays(context) ? Result.Positive : Result.Negative,
+ context.getString(org.microg.tools.ui.R.string.self_check_resolution_permission),
+ fragment -> {
+ Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + context.getPackageName()));
+ startActivityForResult(intent, 42);
+ }
+ );
+ } catch (Exception e) {
+ Log.w("SelfCheckPerms", e);
+ }
+ }
+ });
}
if (SDK_INT >= Build.VERSION_CODES.M) {
checks.add(new SystemChecks());