diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 60d09124..8d4aacd1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -260,6 +260,7 @@ android:name=".activities.AlarmDetails" android:label="@string/title_activity_alarm_details" android:parentActivityName=".activities.ConfigureAlarms"/> + diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/contentprovider/PebbleContentProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/contentprovider/PebbleContentProvider.java new file mode 100644 index 00000000..a6bf3792 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/contentprovider/PebbleContentProvider.java @@ -0,0 +1,62 @@ +package nodomain.freeyourgadget.gadgetbridge.contentprovider; + +import android.content.ContentProvider; +import android.content.ContentValues; +import android.database.Cursor; +import android.database.MatrixCursor; +import android.net.Uri; +import android.support.annotation.NonNull; + +public class PebbleContentProvider extends ContentProvider { + + public static final int COLUMN_CONNECTED = 0; + public static final int COLUMN_APPMSG_SUPPORT = 1; + public static final int COLUMN_DATALOGGING_SUPPORT = 2; + public static final int COLUMN_VERSION_MAJOR = 3; + public static final int COLUMN_VERSION_MINOR = 4; + public static final int COLUMN_VERSION_POINT = 5; + public static final int COLUMN_VERSION_TAG = 6; + + // this is only needed for the MatrixCursor constructor + public static final String[] columnNames = new String[]{"0", "1", "2", "3", "4", "5", "6"}; + + static final String PROVIDER_NAME = "com.getpebble.android.provider"; + static final String URL = "content://" + PROVIDER_NAME + "/state"; + static final Uri CONTENT_URI = Uri.parse(URL); + + @Override + public boolean onCreate() { + return true; + } + + @Override + public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { + if (uri.equals(CONTENT_URI)) { + MatrixCursor mc = new MatrixCursor(columnNames); + mc.addRow(new Object[]{1, 1, 0, 3, 8, 0, "Gadgetbridge"}); + return mc; + } else { + return null; + } + } + + @Override + public String getType(@NonNull Uri uri) { + return null; + } + + @Override + public Uri insert(@NonNull Uri uri, ContentValues values) { + return null; + } + + @Override + public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) { + return 0; + } + + @Override + public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) { + return 0; + } +} \ No newline at end of file diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerPebStyle.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerPebStyle.java index c29460da..37468e75 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerPebStyle.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerPebStyle.java @@ -12,6 +12,8 @@ import java.util.UUID; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes; import nodomain.freeyourgadget.gadgetbridge.devices.pebble.PebbleColor; +import nodomain.freeyourgadget.gadgetbridge.model.Weather; +import ru.gelin.android.weather.notification.ParcelableWeather2; public class AppMessageHandlerPebStyle extends AppMessageHandler { public static final int KEY_AMPM_TEXT = 21; @@ -57,7 +59,7 @@ public class AppMessageHandlerPebStyle extends AppMessageHandler { pairs.add(new Pair<>(KEY_SECOND_HAND, (Object) 0)); //1 enabled pairs.add(new Pair<>(KEY_BLUETOOTH_ALERT, (Object) 0)); //1 silent, 2 weak, up to 5 pairs.add(new Pair<>(KEY_TEMPERATURE_FORMAT, (Object) 1)); //0 fahrenheit - pairs.add(new Pair<>(KEY_LOCATION_SERVICE, (Object) 2)); //0 uto, 1 manual + //pairs.add(new Pair<>(KEY_LOCATION_SERVICE, (Object) 2)); //0 uto, 1 manual pairs.add(new Pair<>(KEY_SIDEBAR_LOCATION, (Object) 1)); //0 right pairs.add(new Pair<>(KEY_COLOR_SELECTION, (Object) 1)); //1 custom pairs.add(new Pair<>(KEY_MAIN_COLOR, (Object) PebbleColor.Black)); @@ -65,7 +67,7 @@ public class AppMessageHandlerPebStyle extends AppMessageHandler { pairs.add(new Pair<>(KEY_SIDEBAR_BG_COLOR, (Object) PebbleColor.MediumSpringGreen)); //DIGITAL settings - /* + /* pairs.add(new Pair<>(KEY_MAIN_CLOCK, (Object) 1)); //0 analog pairs.add(new Pair<>(KEY_SECONDARY_INFO_TYPE, (Object) 3)); //1 time, 2 location */ @@ -75,12 +77,13 @@ public class AppMessageHandlerPebStyle extends AppMessageHandler { //WEATHER - /* - //comment the same key in the general section above! - pairs.add(new Pair<>(KEY_LOCATION_SERVICE, (Object) 0)); //0 auto, 1 manual - pairs.add(new Pair<>(KEY_WEATHER_CODE, (Object) 3)); - pairs.add(new Pair<>(KEY_WEATHER_TEMP, (Object) 10)); - */ + ParcelableWeather2 weather = Weather.getInstance().getWeather2(); + if (weather != null) { + //comment the same key in the general section above! + pairs.add(new Pair<>(KEY_LOCATION_SERVICE, (Object) 0)); //0 auto, 1 manual + pairs.add(new Pair<>(KEY_WEATHER_CODE, (Object) Weather.mapToYahooCondition(weather.currentConditionCode))); + pairs.add(new Pair<>(KEY_WEATHER_TEMP, (Object) (weather.currentTemp - 273))); + } byte[] testMessage = mPebbleProtocol.encodeApplicationMessagePush(PebbleProtocol.ENDPOINT_APPLICATIONMESSAGE, mUUID, pairs);