From f6d576727673eaac02da01a2aaadfc0dbd5ad23d Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Sat, 6 Jun 2015 23:24:00 +0200 Subject: [PATCH] Remove reference to PebbleIOThread from BluetoothCommunicationService Let PebbleSupport do this instead. --- .../BluetoothCommunicationService.java | 6 +----- .../freeyourgadget/gadgetbridge/EventHandler.java | 6 +++++- .../gadgetbridge/miband/MiBandSupport.java | 7 +++++++ .../gadgetbridge/pebble/PebbleSupport.java | 14 ++++++++++++++ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java index 83b0d6be6..8901ebc05 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java @@ -63,7 +63,6 @@ public class BluetoothCommunicationService extends Service { private static final Logger LOG = LoggerFactory.getLogger(BluetoothCommunicationService.class); public static final String EXTRA_DEVICE_ADDRESS = "device_address"; - private GBDeviceIoThread mGBDeviceIoThread = null; private boolean mStarted = false; @@ -166,9 +165,6 @@ public class BluetoothCommunicationService extends Service { } else { mDeviceSupport.connect(); } - if (mDeviceSupport instanceof AbstractBTDeviceSupport) { - mGBDeviceIoThread = ((AbstractBTDeviceSupport) mDeviceSupport).getDeviceIOThread(); - } } } catch (Exception e) { Toast.makeText(this, R.string.cannot_connect_bt_address_invalid_, Toast.LENGTH_SHORT).show(); @@ -246,7 +242,7 @@ public class BluetoothCommunicationService extends Service { String uriString = intent.getStringExtra("app_uri"); if (uriString != null) { LOG.info("will try to install app"); - ((PebbleIoThread) mGBDeviceIoThread).installApp(Uri.parse(uriString)); + mDeviceSupport.onInstallApp(Uri.parse(uriString)); } break; case ACTION_START: diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java index a24e6ab1f..cfeb80afd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java @@ -1,5 +1,8 @@ package nodomain.freeyourgadget.gadgetbridge; +import android.net.Uri; + +import java.net.URI; import java.util.UUID; public interface EventHandler { @@ -19,6 +22,8 @@ public interface EventHandler { void onBatteryInfoReq(); + void onInstallApp(Uri uri); + void onAppInfoReq(); void onAppStart(UUID uuid); @@ -30,5 +35,4 @@ public interface EventHandler { void onFetchActivityData(); void onReboot(); - } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java index 04159baeb..ecb2d0663 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java @@ -3,12 +3,14 @@ package nodomain.freeyourgadget.gadgetbridge.miband; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCharacteristic; import android.content.SharedPreferences; +import android.net.Uri; import android.preference.PreferenceManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.net.URI; import java.util.Arrays; import java.util.Calendar; import java.util.GregorianCalendar; @@ -380,6 +382,11 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport { } } + @Override + public void onInstallApp(Uri uri) { + // not supported + } + @Override public void onAppInfoReq() { // not supported diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleSupport.java index 1d55c4afc..692b73f21 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleSupport.java @@ -1,5 +1,9 @@ package nodomain.freeyourgadget.gadgetbridge.pebble; +import android.net.Uri; + +import java.net.URI; + import nodomain.freeyourgadget.gadgetbridge.AbstractBTDeviceSupport; import nodomain.freeyourgadget.gadgetbridge.GBDeviceIoThread; import nodomain.freeyourgadget.gadgetbridge.protocol.GBDeviceProtocol; @@ -26,4 +30,14 @@ public class PebbleSupport extends AbstractBTDeviceSupport { public boolean useAutoConnect() { return false; } + + @Override + public void onInstallApp(Uri uri) { + getDeviceIOThread().installApp(uri); + } + + @Override + public synchronized PebbleIoThread getDeviceIOThread() { + return (PebbleIoThread) super.getDeviceIOThread(); + } }