Merge branch 'feature-configuration' of https://github.com/Freeyourgadget/Gadgetbridge into feature-configuration

here
Andreas Shimokawa 2016-03-05 21:26:03 +01:00
commit fa6b572172
5 changed files with 70 additions and 6 deletions

View File

@ -34,6 +34,9 @@ function gbPebble() {
this.configurationValues = null;
this.addEventListener = function(e, f) {
if(e == 'ready') {
this.ready = f;
}
if(e == 'showConfiguration') {
this.showConfiguration = f;
}
@ -45,6 +48,20 @@ function gbPebble() {
}
}
this.removeEventListener = function(e, f) {
if(e == 'ready') {
this.ready = null;
}
if(e == 'showConfiguration') {
this.showConfiguration = null;
}
if(e == 'webviewclosed') {
this.parseconfig = null;
}
if(e == 'appmessage') {
this.appmessage = null;
}
}
this.actuallyOpenURL = function() {
window.open(this.configurationURL.toString(), "config");
}
@ -64,15 +81,31 @@ function gbPebble() {
return JSON.parse(GBjs.getActiveWatchInfo());
}
this.sendAppMessage = function (dict, callback){
this.configurationValues = JSON.stringify(dict);
document.getElementById("jsondata").innerHTML=this.configurationValues;
return callback;
this.sendAppMessage = function (dict, callbackAck, callbackNack){
try {
this.configurationValues = JSON.stringify(dict);
document.getElementById("jsondata").innerHTML=this.configurationValues;
return callbackAck;
}
catch (e) {
GBjs.gbLog("sendAppMessage failed");
return callbackNack;
}
}
this.ready = function(e) {
GBjs.gbLog("ready called");
this.getAccountToken = function() {
return '';
}
this.getWatchToken = function() {
return GBjs.getWatchToken();
}
this.showSimpleNotificationOnPebble = function(title, body) {
GBjs.gbLog("app wanted to show: " + title + " body: "+ body);
}
}
var Pebble = new gbPebble();

View File

@ -131,7 +131,11 @@ public class ExternalPebbleJSActivity extends Activity {
public String getActiveWatchInfo() {
JSONObject wi = new JSONObject();
try {
wi.put("firmware",mGBDevice.getFirmwareVersion());
wi.put("platform", PebbleUtils.getPlatformName(mGBDevice.getHardwareVersion()));
wi.put("model", PebbleUtils.getModel(mGBDevice.getHardwareVersion()));
//TODO: use real info
wi.put("language","en");
} catch (JSONException e) {
e.printStackTrace();
}
@ -157,6 +161,12 @@ public class ExternalPebbleJSActivity extends Activity {
public String getAppUUID() {
return appUuid.toString();
}
@JavascriptInterface
public String getWatchToken() {
//specification says: A string that is is guaranteed to be identical for each Pebble device for the same app across different mobile devices. The token is unique to your app and cannot be used to track Pebble devices across applications. see https://developer.pebble.com/docs/js/Pebble/
return "gb"+appUuid.toString();
}
}
@Override

View File

@ -96,18 +96,24 @@ public class AppMessageHandlerPebStyle extends AppMessageHandler {
@Override
public GBDeviceEvent[] handleMessage(ArrayList<Pair<Integer, Object>> pairs) {
return null;
/*
GBDeviceEventSendBytes sendBytes = new GBDeviceEventSendBytes();
ByteBuffer buf = ByteBuffer.allocate(encodeAck().length + encodePebStyleConfig().length);
buf.put(encodeAck());
buf.put(encodePebStyleConfig());
sendBytes.encodedBytes = buf.array();
return new GBDeviceEvent[]{sendBytes};
*/
}
@Override
public GBDeviceEvent[] pushMessage() {
return null;
/*
GBDeviceEventSendBytes sendBytes = new GBDeviceEventSendBytes();
sendBytes.encodedBytes = encodePebStyleConfig();
return new GBDeviceEvent[]{sendBytes};
*/
}
}

View File

@ -100,8 +100,11 @@ public class AppMessageHandlerTimeStylePebble extends AppMessageHandler {
@Override
public GBDeviceEvent[] handleMessage(ArrayList<Pair<Integer, Object>> pairs) {
return null;
/*
GBDeviceEventSendBytes sendBytes = new GBDeviceEventSendBytes();
sendBytes.encodedBytes = encodeTimeStylePebbleConfig();
return new GBDeviceEvent[]{sendBytes};
*/
}
}

View File

@ -12,4 +12,16 @@ public class PebbleUtils {
}
return platformName;
}
public static String getModel(String hwRev) {
//TODO: get real data?
String model;
if (hwRev.startsWith("snowy")) {
model = "pebble_time_black";
} else if (hwRev.startsWith("spalding")) {
model = "pebble_time_round_black_20mm";
} else {
model = "pebble_black";
}
return model;
}
}