//Only one updatePeriodMillis is used for all instances of the widget public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { base.OnUpdate(context, appWidgetManager, appWidgetIds); Setup(context); int numOfIds = appWidgetIds.Length; for (int i = 0; i < numOfIds; i++) { int appWidgetId = appWidgetIds[i]; //Get the layout for the App Widget using RemoteViews and attach a clicking listener to the widget RemoteViews widgetUI = new RemoteViews(context.PackageName, Resource.Layout.activity_main); // Create an Intent to update the widget Intent intent = new Intent(context, typeof(AppWidget)); intent.PutExtra("widgetUI", widgetUI); PendingIntent pendingIntent = PendingIntent.GetBroadcast(context, 0, intent, 0); widgetUI.SetOnClickPendingIntent(Resource.Id.widgetBackground, pendingIntent); UpdateTextAndImage(context, widgetUI); //Update the current app widget (attaches UI to widget?) appWidgetManager.UpdateAppWidget(appWidgetId, BuildRemoteViews(context, appWidgetIds)); } }
/// <summary> /// This method is called when the 'updatePeriodMillis' from the AppwidgetProvider passes, /// or the user manually refreshes/resizes. /// </summary> public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { foreach (var id in appWidgetIds) { var rv = new RemoteViews(context.PackageName, Resource.Layout.appwidget_schedule); SetTextViewText(rv); var intent = new Intent(context, typeof(StackWidgetService)); intent.PutExtra(AppWidgetManager.ExtraAppwidgetId, id); rv.SetRemoteAdapter(Resource.Id.list_schedule, intent); var intent2 = new Intent(context, typeof(ScheduleAppwidgetView)); intent2.SetAction(OpenApp); var piBackground = PendingIntent.GetBroadcast(context, 0, intent2, 0); rv.SetOnClickPendingIntent(Resource.Id.layout_schedule_widget, piBackground); var intent3 = new Intent(context, typeof(ScheduleAppwidgetView)); var piBackground2 = PendingIntent.GetBroadcast(context, 0, intent3, 0); intent3.SetAction(UpdateSchedule); rv.SetOnClickPendingIntent(Resource.Id.button_schedule_refresh, piBackground2); appWidgetManager.UpdateAppWidget(id, rv); } }
public ThisSimpleImageLoadingListener(AppWidgetManager appWidgetManager, int appWidgetId, RemoteViews remoteViews, int imageResId) { mAppWidgetManager = appWidgetManager; mAppWidgetId = appWidgetId; mRemoteViews = remoteViews; mImageResId = imageResId; }
public override void OnReceive(Context context, Intent intent) { if (intent.Action == AppWidgetManager.ActionAppwidgetUpdate) { AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(context); int[] appWidgetIds = intent.GetIntArrayExtra(AppWidgetManager.ExtraAppwidgetIds); // Service update if (appWidgetIds == null) { WidgetUpdateService.Start(context); Update(context, appWidgetManager); } // System update else { Update(context, appWidgetManager, appWidgetIds); } } else { base.OnReceive(context, intent); } }
public static void Update(Context context, AppWidgetManager appWidgetManager, params int[] appWidgetIds) { foreach (int appWidgetId in appWidgetIds) { Step step; if (!TramUrWayApplication.Config.StepWidgets.TryGetValue(appWidgetId, out step)) { return; } RemoteViews remoteViews = new RemoteViews(context.PackageName, Resource.Layout.StepWidget); Intent intent = new Intent(context, typeof(StopActivity)); intent.PutExtra("Stop", step.Stop.Id); intent.PutExtra("Route", step.Route.Id); int code = Util.Hash(step.Stop.Id, step.Route.Id); PendingIntent pendingIntent = PendingIntent.GetActivity(context, code, intent, 0); remoteViews.SetOnClickPendingIntent(Resource.Id.StepWidget_Button, pendingIntent); // Update widget UI remoteViews.SetTextViewText(Resource.Id.StepWidget_Name, step.Stop.Name); remoteViews.SetViewVisibility(Resource.Id.StepWidget_Description, TramUrWayApplication.Config.EnableWidgetRefresh ? ViewStates.Visible : ViewStates.Gone); Bitmap bitmap = Utils.GetTransportIconForLine(context, step.Route.Line, 48); remoteViews.SetImageViewBitmap(Resource.Id.StepWidget_Icon, bitmap); // Get step information if (TramUrWayApplication.Config.EnableWidgetRefresh) { DateTime now = DateTime.Now; TimeStep[] timeSteps = null; try { timeSteps = TramUrWayApplication.Service.GetLiveTimeSteps(step.Route.Line).Where(t => t.Step.Stop == step.Stop).OrderBy(t => t.Date).Take(2).ToArray(); } catch (Exception e) { timeSteps = TramUrWayApplication.Lines.SelectMany(l => l.Routes) .SelectMany(r => r.Steps.Where(s => s.Stop.Name == step.Stop.Name)) .SelectMany(s => s.Route.TimeTable?.GetStepsFromStep(s, now)?.Take(3) ?? Enumerable.Empty <TimeStep>()) .Take(2) .ToArray(); } remoteViews.SetTextViewText(Resource.Id.StepWidget_Description, timeSteps == null ? "???" : Utils.GetReadableTimes(timeSteps, now, false)); } try { appWidgetManager.UpdateAppWidget(appWidgetId, remoteViews); } catch (Exception e) { Toast.MakeText(context, "Exception while updating widget: " + e, ToastLength.Long).Show(); } } }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { foreach (var item in appWidgetIds) { ActualizarWidget(context, item); } }
public static void UpdateWidget(Context context, AppWidgetManager appWidgetManager, int widgetID) { RemoteViews widgetView = new RemoteViews(context.PackageName, Resource.Layout.layout1); _SecondsLeft -= 5; TimeSpan differ = (DateTime.Now.AddSeconds(_SecondsLeft) - DateTime.Now); widgetView.SetTextViewText(2131296412, "Осталось целых дней: " + Math.Floor((DateTime.Now.AddSeconds(_SecondsLeft) - DateTime.Now).TotalDays) + "\nОсталось минут: " + (int)differ.TotalMinutes); if (_SecondsLeft < 0) { notificationEventStarted(context, widgetID); } Intent configIntent = new Intent(context, Java.Lang.Class.FromType(typeof(CalendarActivity))); configIntent.SetAction(AppWidgetManager.ActionAppwidgetConfigure); configIntent.PutExtra(AppWidgetManager.ExtraAppwidgetId, widgetID); PendingIntent pIntent = PendingIntent.GetActivity(context, widgetID, configIntent, 0); widgetView.SetOnClickPendingIntent(2131296411, pIntent); appWidgetManager.UpdateAppWidget(widgetID, widgetView); }
public void UpdateAppWidget(Context context, int[] appWidgetIds) { if (appWidgetIds == null || appWidgetIds.Length == 0) { return; } if (context == null) { throw new ArgumentNullException(nameof(context)); } using (var appWidgetManager = AppWidgetManager.GetInstance(context)) { foreach (var appWidgetId in appWidgetIds) { using (var providerInfo = appWidgetManager.GetAppWidgetInfo(appWidgetId)) { if (providerInfo == null) { continue; } var widgetView = BuildRemoteViewsFactory(context, providerInfo.Provider.ClassName, appWidgetId); if (widgetView != null) { appWidgetManager.UpdateAppWidget(appWidgetId, widgetView); } } } } }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { System.Diagnostics.Debug.WriteLine("Widget OnUpdate"); var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); appWidgetManager.UpdateAppWidget(me, BuildRemoteViews(context, appWidgetIds)); var scheduler = context.GetSystemService(Context.JobSchedulerService) as JobScheduler; var jobName = new ComponentName(context, Java.Lang.Class.FromType(typeof(WidgetJobService)).Name); var jobInfo = new JobInfo.Builder(1, jobName); jobInfo.SetBackoffCriteria(5000, BackoffPolicy.Linear); jobInfo.SetPersisted(true); jobInfo.SetPeriodic(900000); jobInfo.SetRequiredNetworkType(NetworkType.Any); jobInfo.SetRequiresCharging(false); var bundle = new PersistableBundle(); bundle.PutIntArray(WIDGET_BUNDLE, appWidgetIds); jobInfo.SetExtras(bundle); var job = jobInfo.Build(); scheduler.Schedule(job); }
public override void OnAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) { base.OnAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions); var dimensions = WidgetDimensions.FromBundle(newOptions); updateWidget(context, appWidgetManager, appWidgetId, dimensions); }
readonly string UpdateAllWidgets = "update_all_widgets"; // Used for alarm based updates public override void OnReceive(Context context, Intent intent) { base.OnReceive(context, intent); // This code is for widget update via broadcase reciever when clicking on widget if (intent.Action.Equals(ActionOnClick, StringComparison.OrdinalIgnoreCase)) { int itemPosition = intent.GetIntExtra(ReittiWidget.ItemPosition, -1); if (itemPosition != -1) { //Toast.MakeText(context, "Clicked on item " + itemPosition, ToastLength.Short).Show(); ComponentName thisAppWidget = new ComponentName(context.PackageName, Class.Name); AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(context); int[] appWidgetIds = appWidgetManager.GetAppWidgetIds(thisAppWidget); foreach (int appWidgetId in appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } } } // This code is for widget update via broadcase reciever via alarms if (intent.Action.Equals(UpdateAllWidgets, StringComparison.OrdinalIgnoreCase)) { ComponentName thisAppWidget = new ComponentName(context.PackageName, Class.Name); AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(context); int[] appWidgetIds = appWidgetManager.GetAppWidgetIds(thisAppWidget); foreach (int appWidgetId in appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } } }
public override async void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); var widgetView = new RemoteViews(context.PackageName, Resource.Layout.Widget); InternetStatus status = new InternetStatus(); NetCredential credential = new NetCredential(); credential.State = await status.SuggestAsync(); var helper = credential.GetHelper(); if (helper != null) { FluxUser user = await helper.GetFluxAsync(); widgetView.SetTextViewText(Resource.Id.widgetTitle, user.Username); widgetView.SetTextViewText(Resource.Id.widgetFlux, $"流量:{user.Flux}"); widgetView.SetTextViewText(Resource.Id.widgetBalance, string.Format(CultureInfo.GetCultureInfo("zh-CN"), "余额:{0:C2}", user.Balance)); } var intent = new Intent(context, typeof(AppWidget)); intent.SetAction(AppWidgetManager.ActionAppwidgetUpdate); intent.PutExtra(AppWidgetManager.ExtraAppwidgetId, appWidgetIds); var piBackground = PendingIntent.GetBroadcast(context, 0, intent, PendingIntentFlags.UpdateCurrent); widgetView.SetOnClickPendingIntent(Resource.Id.widgetBackground, piBackground); appWidgetManager.UpdateAppWidget(me, widgetView); }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { context.StartService(new Intent(context, typeof(UpdateService))); //var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(TrueTimeWidget)).Name); //appWidgetManager.UpdateAppWidget(me, UpdateTimes(context)); }
/// <summary> /// This method is called when clicks are registered. /// </summary> public override void OnReceive(Context context, Intent intent) { base.OnReceive(context, intent); // Check if the click is from the "Announcement" button if (RefreshClick.Equals(intent.Action)) { // Retrieve the widget layout. This is a RemoteViews, so we can't use 'FindViewById' var widgetView = new RemoteViews(context.PackageName, Resource.Layout.Widget); SetTextViewText(widgetView); Toast.MakeText(context, "Namaz vakitleri yenilandi", ToastLength.Short); UserDialogs.Instance.Toast("Namaz vakitleri yenilandi", TimeSpan.FromSeconds(3)); ComponentName componentName = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); AppWidgetManager.GetInstance(context)?.UpdateAppWidget(componentName, widgetView); widgetView.SetOnClickPendingIntent(Resource.Id.widgetRefreshIcon, GetPendingSelfIntent(context, RefreshClick)); //var pm = context.PackageManager; //try //{ // var packageName = "com.suleymaniyetakvimi"; // var launchIntent = pm.GetLaunchIntentForPackage(packageName); // context.StartActivity(launchIntent); //} //catch //{ // // Something went wrong :) //} } }
public override async void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); appWidgetManager.UpdateAppWidget(me, await BuildRemoteViews(context, appWidgetIds)); }
public override void OnReceive(Context context, Intent intent) { string action = intent?.Action; if (Intent.ActionTimeChanged.Equals(action) || Intent.ActionTimezoneChanged.Equals(action)) { // Update clock widget var appWidgetManager = AppWidgetManager.GetInstance(context); var componentname = new ComponentName(context.PackageName, ClassName); int[] appWidgetIds = appWidgetManager.GetAppWidgetIds(componentname); WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService)) .SetAction(WeatherWidgetService.ACTION_UPDATECLOCK) .PutExtra(EXTRA_WIDGET_IDS, appWidgetIds) .PutExtra(EXTRA_WIDGET_TYPE, (int)WidgetType)); } else if (Intent.ActionDateChanged.Equals(action)) { // Update clock widget var appWidgetManager = AppWidgetManager.GetInstance(context); var componentname = new ComponentName(context.PackageName, ClassName); int[] appWidgetIds = appWidgetManager.GetAppWidgetIds(componentname); WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService)) .SetAction(WeatherWidgetService.ACTION_UPDATEDATE) .PutExtra(EXTRA_WIDGET_IDS, appWidgetIds) .PutExtra(EXTRA_WIDGET_TYPE, (int)WidgetType)); } else { base.OnReceive(context, intent); } }
public void UpdateWidget(double totalMoney, double profit, string fiatPref) { HodlrWidgetProvider widgetProvider = new HodlrWidgetProvider(); Context context = MainActivity.Context; int[] ids = AppWidgetManager.GetInstance(context.ApplicationContext) .GetAppWidgetIds(new ComponentName( context.ApplicationContext, Java.Lang.Class.FromType(typeof(HodlrWidgetProvider)))); CurrencySymbolManager_Android symbolManager = new CurrencySymbolManager_Android(); RegionInfo region = symbolManager.GetRegion(fiatPref); CultureInfo culture = symbolManager.GetCulture(region.Name); string totalVal = string.Format(culture, "{0:C}", totalMoney); string profitVal = string.Format(culture, "{0:C}", profit); string timeVal = string.Format("Updated: {0:t}", DateTime.Now); Android.Graphics.Color profCol = (profit >= 0) ? Android.Graphics.Color.ForestGreen : Android.Graphics.Color.IndianRed; widgetProvider.UpdateWidgets( context, AppWidgetManager.GetInstance(context), ids, timeVal, totalVal, profitVal, profCol, false, true ); }
/// <summary> /// This method is called when clicks are registered. /// </summary> public override void OnReceive(Context context, Intent intent) { base.OnReceive(context, intent); Log.Debug("pet", intent.Action); // Check if the click is from the "Announcement" button if (int.TryParse(intent.Action, out int id)) { PetAction action = (PetAction)id; int res = PetLogic(action, context); if (res == -1) { return; } AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(context); var component = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); RemoteViews remoteViews = new RemoteViews(context.PackageName, Resource.Layout.Widget); remoteViews.SetImageViewResource(Resource.Id.room, res); appWidgetManager.UpdateAppWidget(component, remoteViews); } }
public override void OnReceive(Context context, Intent intent) { AppWidgetManager widgetManager = AppWidgetManager.GetInstance(context); switch (intent.Action) { case NavigationAction: { int noteIndex = intent.GetIntExtra(ExtraItem, 0); Intent openAppIntent = new Intent(context, typeof(MainActivity)); openAppIntent.PutExtra(PageNumber, $"NoteIndex/{noteIndex}"); openAppIntent.SetFlags(ActivityFlags.NewTask); context.StartActivity(openAppIntent); break; } case RefreshAction: { int id = intent.GetIntExtra(AppWidgetManager.ExtraAppwidgetId, 0); currentAppWidgetManager?.NotifyAppWidgetViewDataChanged(id, Resource.Id.list_view); break; } } base.OnReceive(context, intent); }
public int[] GetAppWidgetsIds(Context context, string[] appWidgetProviderClassNames) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (appWidgetProviderClassNames == null) { throw new ArgumentNullException(nameof(appWidgetProviderClassNames)); } var result = new List <int>(); using (var appWidgetManager = AppWidgetManager.GetInstance(context)) { foreach (var className in appWidgetProviderClassNames) { using (var provider = new ComponentName(context, className)) { var appWidgetIds = appWidgetManager.GetAppWidgetIds(provider); if (appWidgetIds != null && appWidgetIds.Length > 0) { result.AddRange(appWidgetIds); } } } } return(result.Count == 0 ? null : result.ToArray()); }
private void updateWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId, WidgetDimensions dimensions) { var widgetInfo = TimeEntryWidgetInfo.FromSharedPreferences(); var remoteViews = TimeEntryWidgetFactory.Create(dimensions).Setup(context, widgetInfo); appWidgetManager.UpdateAppWidget(appWidgetId, remoteViews); }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // Default to use taichi's ID :) data = PersistentData.Load(context) ?? new PersistentData(2429129807113296L); Console.WriteLine("Updating ScoreSaber Widget!"); ScheduleUpdateNow(context); }
private void UpdateLayout(Context context, AppWidgetManager manager, int[] appWidgetIds) { foreach (int id in appWidgetIds) { var remoteViews = (Preferences.Get($"{SettingConstants.WIDGET_BACKGROUND}_{id}", "White")) switch { "Black" => new RemoteViews(context.PackageName, Resource.Layout.WAWidget), _ => new RemoteViews(context.PackageName, Resource.Layout.WAWidget) }; remoteViews.SetTextViewText(Resource.Id.WAWidgetTitle, AppResources.WAWidget_Title); for (int i = 0; i < locationImageViewIds.Length; ++i) { var location = (Locations)i; WAListItem item = WAEnv.Instance.Items .Find(x => (x as WAListItem).Item.Location == location) as WAListItem; string itemName = item.Item.ItemName; remoteViews.SetImageViewResource(locationImageViewIds[i], GetWABookImageId(itemName, location)); CreateWAIconClickIntent(context, remoteViews, locationImageViewIds[i], itemName, location); } CreateClickIntent(context, appWidgetIds, id, remoteViews); manager.UpdateAppWidget(id, remoteViews); } }
public void UpdateAll(Context context) { AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(context); ComponentName appWidgetComponentName = new ComponentName(context, Java.Lang.Class.FromType(typeof(WidgetLargeAlt)).Name); int[] appWidgetIds = appWidgetManager.GetAppWidgetIds(appWidgetComponentName); OnUpdate(context, appWidgetManager, appWidgetIds); }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { //Update Widget layout //Run when create widget or meet update time var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(my_widget_class)).Name); appWidgetManager.UpdateAppWidget(me, BuildRemoteViews(context, appWidgetIds)); }
/// <summary> /// Update all instances of this widget /// Get an array containing the identities of all the displayed widgets and get them updated /// </summary> /// <param name="context"></param> private void UpdateAllWidgets(Context context) { AppWidgetManager appManager = AppWidgetManager.GetInstance(context); int[] appWidgetIds = appManager.GetAppWidgetIds(new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)))); OnUpdate(context, appManager, appWidgetIds); }
public override void OnAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) { WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService)) .SetAction(WeatherWidgetService.ACTION_RESIZEWIDGET) .PutExtra(EXTRA_WIDGET_ID, appWidgetId) .PutExtra(EXTRA_WIDGET_OPTIONS, newOptions) .PutExtra(EXTRA_WIDGET_TYPE, (int)WidgetType)); }
public override bool HasInstances(Context context) { var appWidgetManager = AppWidgetManager.GetInstance(context); int[] appWidgetIds = appWidgetManager.GetAppWidgetIds( new ComponentName(context, ClassName)); return(appWidgetIds.Length > 0); }
private void RefreshRemoteViews(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { for (int i = 0; i < appWidgetIds.Length; i++) { var remoteViews = UpdateWidget(context, appWidgetIds[i], appWidgetIds); appWidgetManager.UpdateAppWidget(appWidgetIds[i], remoteViews); } }
private void UpdateAppWidget(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, string updatedText = null) { //Update Widget layout //Run when create widget or meet update time var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(DemoClickWidgetProvider))); appWidgetManager.UpdateAppWidget(me, BuildRemoteViews(context, appWidgetIds, updatedText)); }