private void SetupRunningBtn(Context ctx, RemoteViews views) { var entry = new WidgetSyncManager.WidgetEntryData(); var isRunning = false; // Check if an entry is running. foreach (var item in UpdateService.LastEntries) { if (item.IsRunning) { entry = item; isRunning = true; } } var baseTime = SystemClock.ElapsedRealtime(); if (isRunning) { views.SetInt(Resource.Id.WidgetActionButton, "setBackgroundColor", ctx.Resources.GetColor(Resource.Color.bright_red)); views.SetInt(Resource.Id.WidgetActionButton, "setText", Resource.String.TimerStopButtonText); views.SetInt(Resource.Id.WidgetColorView, "setColorFilter", Color.ParseColor(entry.Color)); views.SetViewVisibility(Resource.Id.WidgetRunningEntry, ViewStates.Visible); views.SetTextViewText( Resource.Id.WidgetRunningDescriptionTextView, String.IsNullOrWhiteSpace(entry.Description) ? ctx.Resources.GetString(Resource.String.RunningWidgetNoDescription) : entry.Description); var time = (long)entry.Duration.TotalMilliseconds; // Format chronometer correctly. string format = "00:%s"; if (time >= 3600000 && time < 36000000) { format = "0%s"; } else if (time >= 36000000) { format = "%s"; } views.SetChronometer(Resource.Id.Chronometer, baseTime - (long)entry.Duration.TotalMilliseconds, format, true); } else { views.SetInt(Resource.Id.WidgetActionButton, "setBackgroundColor", ctx.Resources.GetColor(Resource.Color.bright_green)); views.SetInt(Resource.Id.WidgetActionButton, "setText", Resource.String.TimerStartButtonText); views.SetViewVisibility(Resource.Id.WidgetRunningEntry, ViewStates.Invisible); views.SetChronometer(Resource.Id.Chronometer, baseTime, "00:%s", false); views.SetTextViewText(Resource.Id.Chronometer, "00:00:00"); } }
private Intent ConstructFillIntent(WidgetSyncManager.WidgetEntryData entryData) { var intent = new Intent(); if (entryData.IsRunning) { intent.SetAction(WidgetProvider.StartStopAction); } else { intent.SetAction(WidgetProvider.ContiueAction); intent.PutExtra(WidgetProvider.TimeEntryIdParameter, entryData.Id); } return(intent); }