mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Request permission to use internethelper
This commit is contained in:
committed by
Arjan Schrijver
parent
38d877556d
commit
b74105cf95
+2
-9
@@ -39,6 +39,7 @@ import java.util.Set;
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AndroidUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
@@ -111,18 +112,10 @@ public class CatimaManager {
|
||||
public List<CharSequence> findInstalledCatimaPackages() {
|
||||
final List<CharSequence> installedCatimaPackages = new ArrayList<>();
|
||||
for (final String knownPackage : CatimaContentProvider.KNOWN_PACKAGES) {
|
||||
if (isPackageInstalled(knownPackage)) {
|
||||
if (AndroidUtils.isPackageInstalled(knownPackage)) {
|
||||
installedCatimaPackages.add(knownPackage);
|
||||
}
|
||||
}
|
||||
return installedCatimaPackages;
|
||||
}
|
||||
|
||||
private boolean isPackageInstalled(final String packageName) {
|
||||
try {
|
||||
return context.getPackageManager().getApplicationInfo(packageName, 0).enabled;
|
||||
} catch (final PackageManager.NameNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-9
@@ -46,6 +46,7 @@ import java.util.List;
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.NavigationInfoSpec;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AndroidUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
public class OsmandEventReceiver {
|
||||
@@ -220,18 +221,10 @@ public class OsmandEventReceiver {
|
||||
public List<CharSequence> findInstalledOsmandPackages() {
|
||||
List<CharSequence> installedPackages = new ArrayList<>();
|
||||
for (String knownPackage : app.getBaseContext().getResources().getStringArray(R.array.osmand_package_names)) {
|
||||
if (isPackageInstalled(knownPackage)) {
|
||||
if (AndroidUtils.isPackageInstalled(knownPackage)) {
|
||||
installedPackages.add(knownPackage);
|
||||
}
|
||||
}
|
||||
return installedPackages;
|
||||
}
|
||||
|
||||
private boolean isPackageInstalled(final String packageName) {
|
||||
try {
|
||||
return app.getBaseContext().getPackageManager().getApplicationInfo(packageName, 0).enabled;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import android.content.BroadcastReceiver;
|
||||
import android.content.ContentUris;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.TypedArray;
|
||||
import android.database.Cursor;
|
||||
@@ -356,4 +357,12 @@ public class AndroidUtils {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isPackageInstalled(final String packageName) {
|
||||
try {
|
||||
return GBApplication.getContext().getPackageManager().getApplicationInfo(packageName, 0).enabled;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,8 @@ public class PermissionsUtils {
|
||||
public static final String CUSTOM_PERM_NOTIFICATION_LISTENER = "custom_perm_notifications_listener";
|
||||
public static final String CUSTOM_PERM_NOTIFICATION_SERVICE = "custom_perm_notifications_service";
|
||||
public static final String CUSTOM_PERM_DISPLAY_OVER = "custom_perm_display_over";
|
||||
public static final String CUSTOM_PERM_INTERNET_HELPER = "nodomain.freeyourgadget.internethelper.INTERNET";
|
||||
public static final String PACKAGE_INTERNET_HELPER = "nodomain.freeyourgadget.internethelper";
|
||||
|
||||
public static final List<String> specialPermissions = new ArrayList<>() {{
|
||||
add(CUSTOM_PERM_IGNORE_BATT_OPTIM);
|
||||
@@ -142,6 +144,13 @@ public class PermissionsUtils {
|
||||
activity.getString(R.string.permission_internet_access_title),
|
||||
activity.getString(R.string.permission_internet_access_summary)));
|
||||
}
|
||||
if (AndroidUtils.isPackageInstalled(PACKAGE_INTERNET_HELPER)) {
|
||||
permissionsList.add(new PermissionDetails(
|
||||
CUSTOM_PERM_INTERNET_HELPER,
|
||||
"Internet helper",
|
||||
"Permit access to the Gadgetbridge-internethelper add-on app"
|
||||
));
|
||||
}
|
||||
// permissionsList.add(new PermissionDetails( // NOTE: can't request this, it's only allowed for system apps
|
||||
// Manifest.permission.MEDIA_CONTENT_CONTROL,
|
||||
// "Media content control",
|
||||
|
||||
@@ -208,6 +208,9 @@ public class WebViewSingleton {
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
internetHelperInstalled = false;
|
||||
LOG.info("WEBVIEW: Internet helper not installed, only mimicked HTTP requests will work.");
|
||||
} catch (SecurityException e) {
|
||||
internetHelperInstalled = false;
|
||||
LOG.info("WEBVIEW: Permission for internet helper not granted, only mimicked HTTP requests will work.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user