package com.naman14.timber.widgets.desktop;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.LayoutRes;
import android.widget.RemoteViews;
import com.naman14.timber.MusicService;
/**
* Created by nv95 on 02.11.16.
*/
public abstract class BaseWidget extends AppWidgetProvider {
protected static final int REQUEST_NEXT = 1;
protected static final int REQUEST_PREV = 2;
protected static final int REQUEST_PLAYPAUSE = 3;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
ComponentName serviceName = new ComponentName(context, MusicService.class);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), getLayoutRes());
try {
onViewsUpdate(context, remoteViews, serviceName);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action != null && action.startsWith("com.naman14.timber.")) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName thisAppWidget = new ComponentName(context.getPackageName(), this.getClass().getName());
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisAppWidget);
onUpdate(context, appWidgetManager, appWidgetIds);
} else {
super.onReceive(context, intent);
}
}
abstract void onViewsUpdate(Context context, RemoteViews remoteViews, ComponentName serviceName);
abstract @LayoutRes int getLayoutRes();
}