Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit baf801b

Browse files
kunall17niftynei
authored andcommitted
Setup a clickPendingIntent for the refresh button
1 parent c6ab9bf commit baf801b

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

app/src/main/java/com/zulip/android/widget/ZulipWidget.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.PendingIntent;
44
import android.appwidget.AppWidgetManager;
55
import android.appwidget.AppWidgetProvider;
6+
import android.content.ComponentName;
67
import android.content.Context;
78
import android.content.Intent;
89
import android.net.Uri;
@@ -21,6 +22,7 @@
2122
public class ZulipWidget extends AppWidgetProvider {
2223
private static AsyncGetEvents asyncGetEvents;
2324
private static int intervalMilliseconds = 0;
25+
public static String WIDGET_REFRESH = "com.zulip.android.zulipwidget.REFRESH";
2426

2527
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
2628
String title = ZulipWidgetConfigureActivity.loadPref(context, appWidgetId, TITLE_PREFRENCE);
@@ -42,6 +44,10 @@ static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
4244
if (asyncGetEvents == null) {
4345
setupGetEvents();
4446
}
47+
final Intent refreshIntent = new Intent(context, ZulipWidget.class);
48+
refreshIntent.setAction(ZulipWidget.WIDGET_REFRESH);
49+
final PendingIntent refreshPendingIntent = PendingIntent.getBroadcast(context, 0, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT);
50+
remoteViews.setOnClickPendingIntent(R.id.widget_refresh, refreshPendingIntent);
4551
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
4652
}
4753
}
@@ -52,6 +58,12 @@ public void onReceive(Context context, Intent intent) {
5258
if (asyncGetEvents == null) {
5359
setupGetEvents();
5460
}
61+
if (action.equals(WIDGET_REFRESH)) {
62+
final AppWidgetManager mgr = AppWidgetManager.getInstance(context);
63+
final ComponentName cn = new ComponentName(context, ZulipWidget.class);
64+
mgr.notifyAppWidgetViewDataChanged(mgr.getAppWidgetIds(cn), R.id.widget_list);
65+
asyncGetEvents.interrupt();
66+
}
5567
super.onReceive(context, intent);
5668
}
5769

0 commit comments

Comments
 (0)