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.util.Log;
import android.widget.RemoteViews;
import com.joelapenna.foursquare.types.User;
import com.joelapenna.foursquared.Foursquared;
import com.joelapenna.foursquared.R;
import com.joelapenna.foursquared.StatsActivity;
import com.joelapenna.foursquared.VenueActivity;
import com.joelapenna.foursquared.app.FoursquaredService;
import com.joelapenna.foursquared.appwidget.stats.StatsWidgetUpdater;
import com.joelapenna.foursquared.appwidget.stats.UserRank;
import com.joelapenna.foursquared.appwidget.stats.UserStats;
/**
* @author Nick Burton (charlesnicholasburton [at] gmail.com)
*/
public final class StatsWidgetProviderTiny extends AppWidgetProvider {
final private static String TAG = "StatsWidgetProviderTiny";
@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);
Log.i(TAG, "fired " + intent + " from onUpdate()");
}
public static StatsWidgetUpdater updater(Foursquared foursquared) {
return new TinyUpdater(foursquared);
}
private static class TinyUpdater extends StatsWidgetUpdater {
TinyUpdater(Foursquared foursquared) {
super(foursquared);
}
@Override
protected void setLayoutResources() {
Log.i(TAG, "setLayoutResources()");
mLayoutResource = R.layout.stats_widget_layout_tiny;
mLayoutId = R.id.widget_tiny;
}
@Override
protected void updateUserStats(RemoteViews updateViews, UserStats userStats) {
Log.i(TAG, "updateUserStats()");
updateViews.setTextViewText(R.id.venue_tiny, userStats.getVenue());
}
@Override
protected void updateUserRank(RemoteViews updateViews, UserRank userRank) {
Log.i(TAG, "updateUserRank()");
updateViews.setTextViewText(R.id.user_rank_tiny, userRank.getUserRank());
updateViews.setTextViewText(R.id.checkins_tiny, 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_tiny, 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);
}
}
}