Let DeviceCoordinator decide which activity to launch on click

This commit is contained in:
cpfeiffer 2015-07-20 23:20:24 +02:00
parent 184e0f2dea
commit 13d2c2166c
5 changed files with 26 additions and 3 deletions

View File

@ -102,9 +102,14 @@ public class ControlCenter extends Activity {
deviceListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position, long id) {
if (deviceList.get(position).isConnected()) {
Intent startIntent = new Intent(ControlCenter.this, AppManagerActivity.class);
startActivity(startIntent);
GBDevice gbDevice = deviceList.get(position);
if (gbDevice.isConnected()) {
DeviceCoordinator coordinator = DeviceHelper.getInstance().getCoordinator(gbDevice);
Class<? extends Activity> primaryActivity = coordinator.getPrimaryActivity();
if (primaryActivity != null) {
Intent startIntent = new Intent(ControlCenter.this, primaryActivity);
startActivity(startIntent);
}
} else {
Intent startIntent = new Intent(ControlCenter.this, BluetoothCommunicationService.class);
startIntent.setAction(BluetoothCommunicationService.ACTION_CONNECT);

View File

@ -14,4 +14,6 @@ public interface DeviceCoordinator {
DeviceType getDeviceType();
Class<? extends Activity> getPairingActivity();
Class<? extends Activity> getPrimaryActivity();
}

View File

@ -24,4 +24,9 @@ public class UnknownDeviceCoordinator implements DeviceCoordinator {
public Class<? extends Activity> getPairingActivity() {
return ControlCenter.class;
}
@Override
public Class<? extends Activity> getPrimaryActivity() {
return null;
}
}

View File

@ -9,10 +9,12 @@ import org.slf4j.LoggerFactory;
import java.util.Calendar;
import nodomain.freeyourgadget.gadgetbridge.AppManagerActivity;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.activities.ChartsActivity;
import nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate;
public class MiBandCoordinator implements DeviceCoordinator {
@ -38,6 +40,10 @@ public class MiBandCoordinator implements DeviceCoordinator {
return MiBandPairingActivity.class;
}
public Class<? extends Activity> getPrimaryActivity() {
return ChartsActivity.class;
}
public static boolean hasValidUserInfo() {
String dummyMacAddress = MiBandService.MAC_ADDRESS_FILTER + ":00:00:00";
try {

View File

@ -2,6 +2,7 @@ package nodomain.freeyourgadget.gadgetbridge.pebble;
import android.app.Activity;
import nodomain.freeyourgadget.gadgetbridge.AppManagerActivity;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
@ -27,4 +28,8 @@ public class PebbleCoordinator implements DeviceCoordinator {
public Class<? extends Activity> getPairingActivity() {
return null;
}
public Class<? extends Activity> getPrimaryActivity() {
return AppManagerActivity.class;
}
}