diff --git a/app/build.gradle b/app/build.gradle index cd8899cc..fff6c619 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { defaultConfig { versionCode getCommitCount() - versionName '2.0.0' + "-" + versionCode + versionName '2.0.1' + "-" + versionCode minSdkVersion 15 targetSdkVersion 27 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 917c1663..dccfcc09 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,21 +49,20 @@ + + - - - - + diff --git a/app/src/main/java/org/andstatus/todoagenda/EnvironmentChangedReceiver.java b/app/src/main/java/org/andstatus/todoagenda/EnvironmentChangedReceiver.java index 4a93005e..c3ce6228 100644 --- a/app/src/main/java/org/andstatus/todoagenda/EnvironmentChangedReceiver.java +++ b/app/src/main/java/org/andstatus/todoagenda/EnvironmentChangedReceiver.java @@ -3,11 +3,13 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.util.Log; public class EnvironmentChangedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { + Log.i(this.getClass().getName(), "Received intent: " + intent); String action = intent.getAction(); if (action.equals(Intent.ACTION_LOCALE_CHANGED) || action.equals(Intent.ACTION_TIME_CHANGED) diff --git a/app/src/main/java/org/andstatus/todoagenda/EventAppWidgetProvider.java b/app/src/main/java/org/andstatus/todoagenda/EventAppWidgetProvider.java index 5fea283c..46793488 100644 --- a/app/src/main/java/org/andstatus/todoagenda/EventAppWidgetProvider.java +++ b/app/src/main/java/org/andstatus/todoagenda/EventAppWidgetProvider.java @@ -6,31 +6,42 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Color; import android.net.Uri; import android.support.annotation.IdRes; +import android.util.Log; import android.view.View; import android.widget.RemoteViews; import org.andstatus.todoagenda.prefs.InstanceSettings; import org.andstatus.todoagenda.util.PermissionsUtil; - import org.joda.time.DateTime; import java.util.List; import java.util.Locale; -import static android.graphics.Color.*; -import static org.andstatus.todoagenda.CalendarIntentUtil.*; -import static org.andstatus.todoagenda.RemoteViewsUtil.*; +import static android.graphics.Color.alpha; +import static android.graphics.Color.blue; +import static android.graphics.Color.green; +import static android.graphics.Color.red; +import static org.andstatus.todoagenda.CalendarIntentUtil.createOpenCalendarAtDayIntent; +import static org.andstatus.todoagenda.CalendarIntentUtil.createOpenCalendarEventPendingIntent; +import static org.andstatus.todoagenda.CalendarIntentUtil.createOpenCalendarPendingIntent; +import static org.andstatus.todoagenda.RemoteViewsUtil.setAlpha; +import static org.andstatus.todoagenda.RemoteViewsUtil.setColorFilter; +import static org.andstatus.todoagenda.RemoteViewsUtil.setImageFromAttr; +import static org.andstatus.todoagenda.RemoteViewsUtil.setTextColorFromAttr; +import static org.andstatus.todoagenda.RemoteViewsUtil.setTextSize; import static org.andstatus.todoagenda.Theme.themeNameToResId; public class EventAppWidgetProvider extends AppWidgetProvider { private static final String PACKAGE = EventAppWidgetProvider.class.getPackage().getName(); public static final String ACTION_REFRESH = PACKAGE + ".action.REFRESH"; + private static volatile boolean receiversRegistered = false; public static int[] getWidgetIds(Context context) { return AppWidgetManager.getInstance(context) @@ -47,6 +58,7 @@ public void onDeleted(Context context, int[] appWidgetIds) { @Override public void onUpdate(Context baseContext, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + registerReceivers(baseContext); for (int widgetId : appWidgetIds) { InstanceSettings settings = InstanceSettings.fromId(baseContext, widgetId); AlarmReceiver.scheduleAlarm(settings.getHeaderThemeContext()); @@ -122,7 +134,8 @@ private static PendingIntent getEmptyPendingIntent(Context context) { } private void configureRefresh(Context context, RemoteViews rv) { - Intent intent = new Intent(ACTION_REFRESH); + Intent intent = new Intent(context, EnvironmentChangedReceiver.class); + intent.setAction(ACTION_REFRESH); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); rv.setOnClickPendingIntent(R.id.refresh, pendingIntent); } @@ -163,6 +176,7 @@ private void configureList(InstanceSettings settings, int widgetId, RemoteViews } public static void updateEventList(Context context) { + registerReceivers(context); AppWidgetManager.getInstance(context).notifyAppWidgetViewDataChanged(getWidgetIds(context), R.id.event_list); } @@ -173,4 +187,23 @@ public static void updateAllWidgets(Context context) { context.sendBroadcast(intent); } + private static void registerReceivers(Context contextIn) { + if (receiversRegistered) return; + + Context context = contextIn.getApplicationContext(); + EnvironmentChangedReceiver receiver = new EnvironmentChangedReceiver(); + + IntentFilter providerChanged = new IntentFilter(); + providerChanged.addAction("android.intent.action.PROVIDER_CHANGED"); + providerChanged.addDataScheme("content"); + providerChanged.addDataAuthority("com.android.calendar", null); + context.registerReceiver(receiver, providerChanged); + + IntentFilter userPresent = new IntentFilter(); + userPresent.addAction("android.intent.action.USER_PRESENT"); + context.registerReceiver(receiver, userPresent); + + Log.i(EventAppWidgetProvider.class.getName(), "Registered receivers from " + contextIn.getClass().getName()); + receiversRegistered = true; + } } diff --git a/build.gradle b/build.gradle index b2d7d73f..941bb0d5 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.3.0' classpath 'org.ajoberstar:grgit:2.1.0' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 35f3b280..2728897b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Sep 25 20:42:50 MSK 2018 +#Thu Jan 17 20:51:35 MSK 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip