only launch onboarding after device is initialized and write device to database if not in yet.

master
Andreas Shimokawa 2016-08-25 01:08:43 +02:00
parent 49b8b9ebca
commit 063d00cc51
1 changed files with 14 additions and 10 deletions

View File

@ -131,16 +131,6 @@ public class ControlCenter extends GBActivity {
}
} else {
GBApplication.deviceService().connect(gbDevice);
try (DBHandler dbHandler = GBApplication.acquireDB()) {
DaoSession session = dbHandler.getDaoSession();
if (DBHelper.findDevice(gbDevice, session) == null) {
Intent startIntent = new Intent(ControlCenter.this, OnboardingActivity.class);
startIntent.putExtra(GBDevice.EXTRA_DEVICE, gbDevice);
startActivity(startIntent);
}
} catch (Exception _ignore) {
}
}
}
});
@ -348,6 +338,20 @@ public class ControlCenter extends GBActivity {
for (GBDevice device : deviceList) {
if (device.isConnected() || device.isConnecting()) {
connectedDevice = device;
if (device.isInitialized()) {
LOG.info("will try");
try (DBHandler dbHandler = GBApplication.acquireDB()) {
DaoSession session = dbHandler.getDaoSession();
if (DBHelper.findDevice(device, session) == null) {
DBHelper.getDevice(device, session); // implicitly creates it :P
Intent startIntent = new Intent(ControlCenter.this, OnboardingActivity.class);
startIntent.putExtra(GBDevice.EXTRA_DEVICE, device);
startActivity(startIntent);
}
} catch (Exception _ignore) {
}
}
break;
}
}