package yotacast.com.yotacast; 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.util.Log; import android.widget.RemoteViews; /** * Implementation of App Widget functionality. */ public class YotaCastWidget extends AppWidgetProvider { public static final String ACTION_UPDATE_CLICK = "yotacast.com.yotacast.action.UPDATE_CLICK"; public static final String ACTION_ALARM_CLICK = "yotacast.com.yotacast.action.ACTION_ALARM_CLICK"; public static final String ACTION_PREV_CLICK = "yotacast.com.yotacast.action.PREV_CLICK"; public static final String ACTION_FWD_CLICK = "yotacast.com.yotacast.action.FWD_CLICK"; public static final String ACTION_BACK_CLICK = "yotacast.com.yotacast.action.BACK_CLICK"; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // There may be multiple widgets active, so update all of them final int N = appWidgetIds.length; for (int i=0; i<N; i++) { updateAppWidget(context, appWidgetManager, appWidgetIds[i]); } } @Override public void onEnabled(Context context) { // Enter relevant functionality for when the first widget is created } @Override public void onDisabled(Context context) { // Enter relevant functionality for when the last widget is disabled } void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { // Construct the RemoteViews object RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.yotacast); // Start/Stop PendingIntent pendingIntent; Intent intent = new Intent(context, MainActivity.class); intent.setAction(ACTION_UPDATE_CLICK); pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.buttonPlay, pendingIntent); // PREV PendingIntent pendingIntentPrev; Intent intentPrev = new Intent(context, MainActivity.class); intentPrev.setAction(ACTION_PREV_CLICK); pendingIntentPrev = PendingIntent.getActivity(context, 0, intentPrev, 0); views.setOnClickPendingIntent(R.id.buttonPrev, pendingIntentPrev); // FWD PendingIntent pendingIntentFwd; Intent intentFwd = new Intent(context, MainActivity.class); intentFwd.setAction(ACTION_FWD_CLICK); pendingIntentFwd = PendingIntent.getActivity(context, 0, intentFwd, 0); views.setOnClickPendingIntent(R.id.buttonFwd, pendingIntentFwd); // BACK PendingIntent pendingIntentBack; Intent intentBack = new Intent(context, MainActivity.class); intentBack.setAction(ACTION_BACK_CLICK); pendingIntentBack = PendingIntent.getActivity(context, 0, intentBack, 0); views.setOnClickPendingIntent(R.id.buttonBack, pendingIntentBack); // Toggle alert PendingIntent pendingIntentAlarm; Intent intentAlarm = new Intent(context, MainActivity.class); intentAlarm.setAction(ACTION_ALARM_CLICK); pendingIntentAlarm = PendingIntent.getActivity(context, 0, intentAlarm, 0); views.setOnClickPendingIntent(R.id.alarm, pendingIntentAlarm); // Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views); } }