package uk.org.brindy.android.moneytracker;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;
public class MoneyTrackerWidgetProvider extends AppWidgetProvider {
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}
@Override
public void onEnabled(Context context) {
// broadcast an update
context.sendBroadcast(new Intent(
AppWidgetManager.ACTION_APPWIDGET_UPDATE));
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
updateWidget(context, appWidgetManager);
}
private void updateWidget(Context context, AppWidgetManager appWidgetManager) {
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget);
Intent defineIntent = new Intent(Intent.ACTION_MAIN, null, context,
MoneyTracker.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
defineIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
views.setOnClickPendingIntent(R.id.thewidget, pendingIntent);
double remaining = new ExpensesDbHelper(context).remaining();
String formatted = MoneyTracker.formatRemaining(remaining);
views.setTextViewText(R.id.disposable, formatted);
views.setTextViewText(R.id.remaining, remaining < 0 ? "over budget"
: "remaining");
views.setTextColor(R.id.disposable, remaining < 0 ? 0xFFFF0000
: 0xFF000000);
appWidgetManager.updateAppWidget(new ComponentName(context,
MoneyTrackerWidgetProvider.class), views);
}
}