mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Pebble Webview: check the availability of Internet Helper packages before
binding the service to it. Could help with #643, but it's a blind attempt.
This commit is contained in:
@@ -23,6 +23,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.MutableContextWrapper;
|
import android.content.MutableContextWrapper;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -63,7 +64,8 @@ public class WebViewSingleton {
|
|||||||
public static boolean internetHelperBound;
|
public static boolean internetHelperBound;
|
||||||
public static CountDownLatch latch;
|
public static CountDownLatch latch;
|
||||||
public static WebResourceResponse internetResponse;
|
public static WebResourceResponse internetResponse;
|
||||||
public final static Messenger internetHelperListener = new Messenger(new IncomingHandler());
|
public static Messenger internetHelperListener;
|
||||||
|
private static boolean internetHelperInstalled;
|
||||||
|
|
||||||
private WebViewSingleton() {
|
private WebViewSingleton() {
|
||||||
}
|
}
|
||||||
@@ -71,7 +73,7 @@ public class WebViewSingleton {
|
|||||||
public static synchronized void ensureCreated(Activity context) {
|
public static synchronized void ensureCreated(Activity context) {
|
||||||
if (webViewSingleton.instance == null) {
|
if (webViewSingleton.instance == null) {
|
||||||
webViewSingleton.contextWrapper = new MutableContextWrapper(context);
|
webViewSingleton.contextWrapper = new MutableContextWrapper(context);
|
||||||
webViewSingleton.mainLooper = context.getMainLooper();
|
webViewSingleton.mainLooper = webViewSingleton.contextWrapper.getMainLooper();
|
||||||
webViewSingleton.instance = new WebView(webViewSingleton.contextWrapper);
|
webViewSingleton.instance = new WebView(webViewSingleton.contextWrapper);
|
||||||
WebView.setWebContentsDebuggingEnabled(true);
|
WebView.setWebContentsDebuggingEnabled(true);
|
||||||
webViewSingleton.instance.setWillNotDraw(true);
|
webViewSingleton.instance.setWillNotDraw(true);
|
||||||
@@ -170,10 +172,21 @@ public class WebViewSingleton {
|
|||||||
webView.loadUrl("file:///android_asset/app_config/configure.html?rand=" + Math.random() * 500);
|
webView.loadUrl("file:///android_asset/app_config/configure.html?rand=" + Math.random() * 500);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (!internetHelperBound) {
|
if (!internetHelperBound && !internetHelperInstalled) {
|
||||||
Intent intent = new Intent();
|
String internetHelperPkg = "nodomain.freeyourgadget.internethelper";
|
||||||
intent.setComponent(new ComponentName("nodomain.freeyourgadget.internethelper", "nodomain.freeyourgadget.internethelper.MyService"));
|
String internetHelperCls = internetHelperPkg + ".MyService";
|
||||||
webViewSingleton.contextWrapper.getApplicationContext().bindService(intent, internetHelperConnection, Context.BIND_AUTO_CREATE);
|
try {
|
||||||
|
webViewSingleton.contextWrapper.getPackageManager().getApplicationInfo(internetHelperPkg, 0);
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.setComponent(new ComponentName(internetHelperPkg, internetHelperCls));
|
||||||
|
webViewSingleton.contextWrapper.getApplicationContext().bindService(intent, internetHelperConnection, Context.BIND_AUTO_CREATE);
|
||||||
|
internetHelperListener = new Messenger(new IncomingHandler());
|
||||||
|
internetHelperInstalled = true;
|
||||||
|
}
|
||||||
|
catch (PackageManager.NameNotFoundException e) {
|
||||||
|
internetHelperInstalled = false;
|
||||||
|
LOG.info("WEBVIEW: Internet helper not installed, only mimicked HTTP requests will work.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user