package widget; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.widget.RemoteViews; import java.util.TimeZone; import io.github.project_travel_mate.R; /** * Implementation of App Widget functionality. * App Widget Configuration implemented in {@link ClockWidgetConfigureActivity ClockWidgetConfigureActivity} */ public class ClockWidget extends AppWidgetProvider { static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { String mTimezoneCode = ClockWidgetConfigureActivity.loadTitlePref(context, appWidgetId); // Construct the RemoteViews object RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.clock_widget); TimeZone targetTimezone = TimeZone.getTimeZone(mTimezoneCode); views.setTextViewText(R.id.tView_timezone, targetTimezone.getID()); views.setString(R.id.txtClockDigitalClock, "setTimeZone", mTimezoneCode); // Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views); } @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // There may be multiple widgets active, so update all of them for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } } @Override public void onDeleted(Context context, int[] appWidgetIds) { // When the user deletes the widget, delete the preference associated with it. for (int appWidgetId : appWidgetIds) { ClockWidgetConfigureActivity.deleteTitlePref(context, appWidgetId); } } @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 } }