From 157deff237aa70bbd99a6313bb65b7572f9c93c2 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 7 May 2015 23:46:18 +0200 Subject: [PATCH] Send current time to device if time/timezone changes. Closes #51. --- app/src/main/AndroidManifest.xml | 7 +++++ .../freeyourgadget/gadgetbridge/GB.java | 2 ++ .../externalevents/TimeChangeReceiver.java | 26 +++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/TimeChangeReceiver.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f15ef907..bfcd0c5f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -102,6 +102,13 @@ + + + + + + diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GB.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GB.java index 8d83a4fd..6ee4387b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GB.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GB.java @@ -16,6 +16,7 @@ import nodomain.freeyourgadget.gadgetbridge.externalevents.MusicPlaybackReceiver import nodomain.freeyourgadget.gadgetbridge.externalevents.PebbleReceiver; import nodomain.freeyourgadget.gadgetbridge.externalevents.PhoneCallReceiver; import nodomain.freeyourgadget.gadgetbridge.externalevents.SMSReceiver; +import nodomain.freeyourgadget.gadgetbridge.externalevents.TimeChangeReceiver; public class GB { public static final int NOTIFICATION_ID = 1; @@ -54,6 +55,7 @@ public class GB { K9Receiver.class, PebbleReceiver.class, MusicPlaybackReceiver.class, + TimeChangeReceiver.class, //NotificationListener.class, // disabling this leads to loss of permission to read notifications }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/TimeChangeReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/TimeChangeReceiver.java new file mode 100644 index 00000000..197e3286 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/TimeChangeReceiver.java @@ -0,0 +1,26 @@ +package nodomain.freeyourgadget.gadgetbridge.externalevents; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService; + + +public class TimeChangeReceiver extends BroadcastReceiver { + + private final String TAG = this.getClass().getSimpleName(); + + @Override + public void onReceive(Context context, Intent intent) { + final String action = intent.getAction(); + + if (action.equals(Intent.ACTION_TIME_CHANGED) || action.equals(Intent.ACTION_TIMEZONE_CHANGED)) { + Log.i(TAG, "Time or Timezone changed, syncing with device"); + Intent startIntent = new Intent(context, BluetoothCommunicationService.class); + startIntent.setAction(BluetoothCommunicationService.ACTION_SETTIME); + context.startService(startIntent); + } + } +} \ No newline at end of file