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());