public void OnAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) { RemoteViews layout = RemoteViewsFactory.CreateLayout(context, appWidgetId, newOptions); appWidgetManager.UpdateAppWidget(appWidgetId, layout); }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Log.Info(App.Tag, "In MainWidget.OnUpdate()"); var remoteViews = new RemoteViews(context.PackageName, Resource.Layout.mainWidget); var thisWidget = new ComponentName(context, this.Class); Intent intent = new Intent(context, typeof(WidgetService)); PendingIntent pendingIntent = PendingIntent.GetService(context, 0, intent, PendingIntentFlags.UpdateCurrent); remoteViews.SetOnClickPendingIntent(Resource.Id.MyButton, pendingIntent); appWidgetManager.UpdateAppWidget(thisWidget, remoteViews); }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Console.WriteLine("PlayerWidgetProvider - OnUpdate - appWidgetIds.length: {0}", appWidgetIds.Length); AlarmManager alarmManager = (AlarmManager)context.GetSystemService(Context.AlarmService); Intent intentAlarm = new Intent(context, typeof(WidgetService)); intentAlarm.SetAction(AppWidgetManager.ActionAppwidgetUpdate); intentAlarm.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds); if (_pendingIntentWidgetService == null) _pendingIntentWidgetService = PendingIntent.GetService(context, 0, intentAlarm, PendingIntentFlags.CancelCurrent); Calendar time = Calendar.Instance; time.Set(CalendarField.Minute, 0); time.Set(CalendarField.Second, 0); time.Set(CalendarField.Millisecond, 0); alarmManager.SetRepeating(AlarmType.Rtc, time.Time.Time, 1000 * 10, _pendingIntentWidgetService); //alarmManager.SetRepeating(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime(), 1000, _pendingIntentWidgetService); for (int a = 0; a < appWidgetIds.Length; a++) { int appWidgetId = appWidgetIds[a]; RemoteViews views = new RemoteViews(context.PackageName, Resource.Layout.WidgetPlayer); //var intentBackground = new Intent(context, typeof (WidgetService)); //intentBackground.SetAction(SessionsWidgetActions.op.ToString()); //intentBackground.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds); //var pendingIntentBackgroundClick = PendingIntent.GetService(context, appWidgetId, intentBackground, PendingIntentFlags.UpdateCurrent); //views.SetOnClickPendingIntent(Resource.Id.widgetPlayer, pendingIntentBackgroundClick); var intentPrevious = new Intent(context, typeof(WidgetService)); intentPrevious.SetAction(SessionsWidgetActions.SessionsWidgetPrevious.ToString()); intentPrevious.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds); var pendingIntentPreviousClick = PendingIntent.GetService(context, appWidgetId, intentPrevious, PendingIntentFlags.UpdateCurrent); views.SetOnClickPendingIntent(Resource.Id.widgetPlayer_btnPrevious, pendingIntentPreviousClick); var intentPlayPause = new Intent(context, typeof(WidgetService)); intentPlayPause.SetAction(SessionsWidgetActions.SessionsWidgetPlayPause.ToString()); intentPlayPause.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds); var pendingIntentPlayPauseClick = PendingIntent.GetService(context, appWidgetId, intentPlayPause, PendingIntentFlags.UpdateCurrent); views.SetOnClickPendingIntent(Resource.Id.widgetPlayer_btnPlayPause, pendingIntentPlayPauseClick); var intentNext = new Intent(context, typeof(WidgetService)); intentNext.SetAction(SessionsWidgetActions.SessionsWidgetNext.ToString()); intentNext.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds); var pendingIntentNextClick = PendingIntent.GetService(context, appWidgetId, intentNext, PendingIntentFlags.UpdateCurrent); views.SetOnClickPendingIntent(Resource.Id.widgetPlayer_btnNext, pendingIntentNextClick); appWidgetManager.UpdateAppWidget(appWidgetId, views); } }
public void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // Update each of the widgets with the remote adapter foreach (int id in appWidgetIds) { RemoteViews layout = null; // API 16 and above supports reconfigurable layouts if ((int) Build.VERSION.SdkInt >= 16) { Bundle options = appWidgetManager.GetAppWidgetOptions(id); layout = RemoteViewsFactory.CreateLayout(context, id, options); } else { layout = RemoteViewsFactory.CreateLayout(context, id); } appWidgetManager.UpdateAppWidget(id, layout); } base.OnUpdate(context, appWidgetManager, appWidgetIds); }