package com.joelapenna.foursquared.appwidget; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.widget.RemoteViews; import com.joelapenna.foursquare.types.User; import com.joelapenna.foursquared.*; import com.joelapenna.foursquared.app.FoursquaredService; import com.joelapenna.foursquared.appwidget.stats.StatsWidgetUpdater; import com.joelapenna.foursquared.appwidget.stats.UpdateService; import com.joelapenna.foursquared.appwidget.stats.UserRank; import com.joelapenna.foursquared.appwidget.stats.UserStats; /** * @author Nick Burton (charlesnicholasburton [at] gmail.com) */ public class StatsWidgetProviderSmall extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Intent intent = new Intent(context, FoursquaredService.class); intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); context.startService(intent); } public static StatsWidgetUpdater updater(Foursquared foursquared) { return new SmallUpdater(foursquared); } private static class SmallUpdater extends StatsWidgetUpdater { protected SmallUpdater(Foursquared foursquared) { super(foursquared); } @Override protected void setLayoutResources() { mLayoutResource = R.layout.stats_widget_layout_small; mLayoutId = R.id.widget_small; } @Override protected void updateUserStats(RemoteViews updateViews, UserStats userStats) { updateViews.setTextViewText(R.id.badge_count_small, userStats.getBadgeCount()); updateViews.setTextViewText(R.id.mayor_count_small, userStats.getMayorCount()); updateViews.setTextViewText(R.id.venue_small, userStats.getVenue()); } @Override protected void updateUserRank(RemoteViews updateViews, UserRank userRank) { updateViews.setTextViewText(R.id.user_rank_small, userRank.getUserRank()); updateViews.setTextViewText(R.id.checkins_small, userRank.getCheckins()); } @Override protected void addOnClickIntents(RemoteViews updateViews, Context context, User user) { // leaderboard Intent intent = new Intent(context, StatsActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); updateViews.setOnClickPendingIntent(R.id.user_rank_small, pendingIntent); // mayorships intent = new Intent(context, UserMayorshipsActivity.class); intent.putExtra(UserMayorshipsActivity.EXTRA_USER_ID, user.getId()); pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); updateViews.setOnClickPendingIntent(R.id.mayor_count_medium, pendingIntent); // badges intent = new Intent(context, BadgesActivity.class); intent.putParcelableArrayListExtra(BadgesActivity.EXTRA_BADGE_ARRAY_LIST_PARCEL, user.getBadges()); pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); updateViews.setOnClickPendingIntent(R.id.badge_count_medium, pendingIntent); // venue intent = new Intent(context, VenueActivity.class); intent.setAction(Intent.ACTION_VIEW); intent.putExtra(Foursquared.EXTRA_VENUE_ID, user.getCheckin().getVenue().getId()); pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); updateViews.setOnClickPendingIntent(R.id.checkins_medium, pendingIntent); } } }