package com.maxiee.heartbeat.widget; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; import android.widget.RemoteViews; import com.maxiee.heartbeat.R; import com.maxiee.heartbeat.common.ThemeUtils; import com.maxiee.heartbeat.data.DataManager; import com.maxiee.heartbeat.ui.AddEventActivity; import com.maxiee.heartbeat.ui.EntryActivity; /** * Created by maxiee on 16/4/26. */ public class HeartBeatWidgetProvider extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int n = appWidgetIds.length; int currentTheme = ThemeUtils.getCurrentActivityTheme(context); context.setTheme(currentTheme); int attrs[] = {R.attr.colorAccent, R.attr.colorPrimary, R.attr.colorPrimaryDark}; TypedArray ta = context.obtainStyledAttributes(currentTheme, attrs); int colorAccent = ThemeUtils.getAttributeColor(context, R.attr.colorAccent); int colorPrimary = ThemeUtils.getAttributeColor(context, R.attr.colorPrimary); int colorPrimaryDark = ThemeUtils.getAttributeColor(context, R.attr.colorPrimaryDark); ta.recycle(); for (int i=0; i<n; i++) { Intent intentOpenApp = new Intent(context, EntryActivity.class); PendingIntent pendingIntentOpenApp = PendingIntent.getActivity(context, 0, intentOpenApp, 0); Intent intentAddEvent = new Intent(context, AddEventActivity.class); PendingIntent pendingIntentAddEvent = PendingIntent.getActivity(context, 0, intentAddEvent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setOnClickPendingIntent(R.id.open_app, pendingIntentOpenApp); views.setOnClickPendingIntent(R.id.add_event, pendingIntentAddEvent); views.setTextColor(R.id.open_app, colorAccent); views.setTextColor(R.id.add_event, colorAccent); views.setTextColor(R.id.event_text, colorPrimaryDark); views.setTextColor(R.id.event_count, colorAccent); views.setTextColor(R.id.thought_text, colorPrimaryDark); views.setTextColor(R.id.thought_count, colorAccent); DataManager dm = DataManager.getInstance(context); views.setTextViewText(R.id.event_count, String.valueOf(dm.getTodayEventCount())); views.setTextViewText(R.id.thought_count, String.valueOf(dm.getTodayThoughtCount())); appWidgetManager.updateAppWidget(appWidgetIds[i], views); } } }