Register implicit broadcasts at runtime for updating widgets
It resolves Broadcast Limitations issue if target API level is changed as 26 or higher later. It includes fixing code style also. Test: Check messaging widgets' changes. Change-Id: I6e08027b1d6a5a19cfd17f8ec3e9a895dbb3c44a Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
This commit is contained in:
@@ -484,9 +484,6 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="com.android.Bugle.intent.action.ACTION_NOTIFY_CONVERSATIONS_CHANGED" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="android.appwidget.provider"
|
||||
android:resource="@xml/widget_conversation_list" />
|
||||
</receiver>
|
||||
@@ -497,9 +494,6 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="com.android.Bugle.intent.action.ACTION_NOTIFY_MESSAGES_CHANGED" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="android.appwidget.provider"
|
||||
android:resource="@xml/widget_conversation" />
|
||||
</receiver>
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.appwidget.AppWidgetProvider;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.android.messaging.util.LogUtil;
|
||||
@@ -78,6 +79,12 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnabled(Context context) {
|
||||
super.onEnabled(context);
|
||||
context.getApplicationContext().registerReceiver(this, new IntentFilter(getAction()));
|
||||
}
|
||||
|
||||
protected abstract String getAction();
|
||||
|
||||
protected abstract int getListId();
|
||||
@@ -87,8 +94,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider {
|
||||
*/
|
||||
protected abstract void updateWidget(Context context, int appWidgetId);
|
||||
|
||||
private int getWidgetSize(AppWidgetManager appWidgetManager,
|
||||
int appWidgetId) {
|
||||
private int getWidgetSize(AppWidgetManager appWidgetManager, int appWidgetId) {
|
||||
if (LogUtil.isLoggable(TAG, LogUtil.VERBOSE)) {
|
||||
LogUtil.v(TAG, "BaseWidgetProvider.getWidgetSize");
|
||||
}
|
||||
@@ -105,8 +111,8 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider {
|
||||
final int columns = getCellsForSize(minWidth);
|
||||
|
||||
if (LogUtil.isLoggable(TAG, LogUtil.VERBOSE)) {
|
||||
LogUtil.v(TAG, "BaseWidgetProvider.getWidgetSize row: " + rows +
|
||||
" columns: " + columns);
|
||||
LogUtil.v(TAG, "BaseWidgetProvider.getWidgetSize row: " + rows
|
||||
+ " columns: " + columns);
|
||||
}
|
||||
|
||||
int size = SIZE_MEDIUM;
|
||||
@@ -127,8 +133,8 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider {
|
||||
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, getListId());
|
||||
|
||||
if (LogUtil.isLoggable(TAG, LogUtil.VERBOSE)) {
|
||||
LogUtil.v(TAG, "BaseWidgetProvider.getWidgetSize old size: " + savedSize +
|
||||
" new size saved: " + size);
|
||||
LogUtil.v(TAG, "BaseWidgetProvider.getWidgetSize old size: " + savedSize
|
||||
+ " new size saved: " + size);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user