public RemoteViews GetViewAt(int position) { var view = new RemoteViews(context.PackageName, Resource.Layout.SuggestionsWidgetItem); var item = items[position]; var hasDescription = !string.IsNullOrEmpty(item.Description); var hasProject = !string.IsNullOrEmpty(item.ProjectName); view.SetViewVisibility(Resource.Id.DescriptionTextView, hasDescription.ToVisibility()); if (hasDescription) { view.SetTextViewText(Resource.Id.DescriptionTextView, item.Description); } view.SetViewVisibility(Resource.Id.ProjectClientRow, hasProject.ToVisibility()); if (hasProject) { view.SetTextViewText(Resource.Id.ProjectNameTextView, item.ProjectName); view.SetTextColor(Resource.Id.ProjectNameTextView, Color.ParseColor(item.ProjectColor)); view.SetTextViewText(Resource.Id.ClientNameTextView, item.ClientName); } var bottomBorderVisibility = (position != Count - 1).ToVisibility(); view.SetViewVisibility(Resource.Id.BottomSeparator, bottomBorderVisibility); var intent = new Intent(); intent.PutExtra(TappedSuggestionIndex, position); view.SetOnClickFillInIntent(Resource.Id.RootLayout, intent); return(view); }
void SetLessonType(RemoteViews rv, Lesson lesson, bool enabled = true) { rv.SetTextColor(Resource.Id.text_schedule_type, enabled ? (lesson.IsImportant() ? this.lessonTypeColors[0] : this.lessonTypeColors[1]) : this.disabledColor); rv.SetTextViewText(Resource.Id.text_schedule_type, lesson.Type.ToUpper()); //viewHolder.LessonType.Enabled = enabled; }
private void UpdateDisplay(string message, Android.Graphics.Color color) { //Uncomment if you want to hear a success sound on every screenupdate // AudioManager audio = (AudioManager) GetSystemService(Context.AudioService); // audio.PlaySoundEffect((SoundEffect)Sounds.Success); if (color == Android.Graphics.Color.Yellow) { remoteViews.SetTextColor(Resource.Id.LivecardContent, Android.Graphics.Color.Black); } else { remoteViews.SetTextColor(Resource.Id.LivecardContent, Android.Graphics.Color.White); } remoteViews.SetInt(Resource.Id.Framelayout1, "setBackgroundColor", color); remoteViews.SetTextViewText(Resource.Id.LivecardContent, message); livecard.SetViews(remoteViews); }
public void UpdateWidgets(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, string updateMessage, string totalVal, string profitVal, Color profCol, bool updating, bool setIntents = false) { for (int i = 0; i < appWidgetIds.Length; i++) { int widgetId = appWidgetIds[i]; RemoteViews remoteViews = new RemoteViews(context.PackageName, Resource.Layout.Widget); remoteViews.SetViewVisibility(Resource.Id.widgetButton, (updating)? Android.Views.ViewStates.Gone : Android.Views.ViewStates.Visible); remoteViews.SetViewVisibility(Resource.Id.widgetLoading, (updating)? Android.Views.ViewStates.Visible : Android.Views.ViewStates.Gone); if (!string.IsNullOrWhiteSpace(profitVal)) { remoteViews.SetTextViewText(Resource.Id.widgetProfit, profitVal); remoteViews.SetTextColor(Resource.Id.widgetProfit, profCol); } if (!string.IsNullOrWhiteSpace(totalVal)) { remoteViews.SetTextViewText(Resource.Id.widgetTotal, totalVal); } if (!string.IsNullOrWhiteSpace(updateMessage)) { remoteViews.SetTextViewText(Resource.Id.widgetTime, updateMessage); } if (setIntents) { Intent intent = new Intent(context, typeof(HodlrWidgetProvider)); intent.SetAction(AppWidgetManager.ActionAppwidgetUpdate); intent.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds); PendingIntent pendingIntent = PendingIntent.GetBroadcast( context, 0, intent, PendingIntentFlags.UpdateCurrent); remoteViews.SetOnClickPendingIntent(Resource.Id.widgetButton, pendingIntent); Intent activityIntent = new Intent(context, typeof(MainActivity)); PendingIntent pendingAct = PendingIntent.GetActivity(context, 0, activityIntent, 0); remoteViews.SetOnClickPendingIntent(Resource.Id.widgetImage, pendingAct); } appWidgetManager.UpdateAppWidget(widgetId, remoteViews); } }
public override void OnAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) { var defconStatus = GetApplicationDefconStatus().ToString(); var widgetHeight = newOptions.GetInt(AppWidgetManager.OptionAppwidgetMinHeight); Intent intent = new Intent(context, typeof(MainActivity)); PendingIntent pendingIntent = PendingIntent.GetActivity(context, 0, intent, 0); ComponentName componentName = new ComponentName(context, Java.Lang.Class.FromType(typeof(MyDefconWidget)).Name); RemoteViews remoteViews = new RemoteViews(context.PackageName, Resource.Layout.mydefcon_widget); remoteViews.SetTextViewTextSize(Resource.Id.mydefconWidgetTextView, 2, widgetHeight * (float)0.5); remoteViews.SetTextViewText(Resource.Id.mydefconWidgetTextView, defconStatus); remoteViews.SetTextColor(Resource.Id.mydefconWidgetTextView, GetLightColor(defconStatus)); remoteViews.SetInt(Resource.Id.mydefconWidgetLinearLayout, "setBackgroundColor", GetDarkColor(defconStatus)); remoteViews.SetInt(Resource.Id.mydefconFrameLayout, "setBackgroundColor", GetLightColor(defconStatus)); remoteViews.SetOnClickPendingIntent(Resource.Id.mydefconWidgetLinearLayout, pendingIntent); appWidgetManager.UpdateAppWidget(componentName, remoteViews); }
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { base.OnUpdate(context, appWidgetManager, appWidgetIds); var defconStatus = GetApplicationDefconStatus().ToString(); for (int i = 0; i < appWidgetIds.Length; i++) { int appWidgetId = appWidgetIds[i]; Intent intent = new Intent(context, typeof(MainActivity)); PendingIntent pendingIntent = PendingIntent.GetActivity(context, 0, intent, 0); RemoteViews remoteViews = new RemoteViews(context.PackageName, Resource.Layout.mydefcon_widget); remoteViews.SetTextViewText(Resource.Id.mydefconWidgetTextView, defconStatus); remoteViews.SetTextColor(Resource.Id.mydefconWidgetTextView, GetLightColor(defconStatus)); remoteViews.SetInt(Resource.Id.mydefconWidgetLinearLayout, "setBackgroundColor", GetDarkColor(defconStatus)); remoteViews.SetInt(Resource.Id.mydefconFrameLayout, "setBackgroundColor", GetLightColor(defconStatus)); remoteViews.SetOnClickPendingIntent(Resource.Id.mydefconWidgetLinearLayout, pendingIntent); appWidgetManager.UpdateAppWidget(appWidgetId, remoteViews); } }
public static RemoteViews UpdateWidget(Context context, int appWidgetId, int[] appWidgetIds) { var remoteViews = new RemoteViews(context.PackageName, Resource.Layout.task_widget); var intent = new Intent(Intent.ActionMain); intent.AddCategory(Intent.CategoryLauncher); intent.SetComponent(new ComponentName(context, Java.Lang.Class.FromType(typeof(MainActivity)))); var pending = PendingIntent.GetActivity(context, 0, intent, 0); remoteViews.SetOnClickPendingIntent(Resource.Id.widget_layout, pending); remoteViews.SetOnClickPendingIntent(Resource.Id.previous_button, GetPendingSelfIntent(context, ACTION_WIDGET_PREVIOUS)); remoteViews.SetOnClickPendingIntent(Resource.Id.forward_button, GetPendingSelfIntent(context, ACTION_WIDGET_FORWARD)); remoteViews.SetOnClickPendingIntent(Resource.Id.refresh_button, GetPendingSelfIntent(context, ACTION_WIDGET_REFRESH)); var svcIntent = new Intent(context, typeof(TaskWidgetService)); svcIntent.SetPackage(context.PackageName); svcIntent.PutExtra(AppWidgetManager.ExtraAppwidgetId, appWidgetId); svcIntent.SetData(Android.Net.Uri.Parse(svcIntent.ToUri(IntentUriType.AndroidAppScheme))); var itemIntent = new Intent(context, typeof(TaskWidget)); itemIntent.PutExtra(AppWidgetManager.ExtraAppwidgetId, appWidgetIds); itemIntent.SetData(Android.Net.Uri.Parse(svcIntent.ToUri(IntentUriType.AndroidAppScheme))); itemIntent.SetAction(ACTION_WIDGET_LIST_ITEM); var itemPending = PendingIntent.GetBroadcast(context, 0, itemIntent, 0); remoteViews.SetPendingIntentTemplate(Resource.Id.task_listview, itemPending); var task = ""; switch (CurrentTask) { case 0: task = context.GetText(Resource.String.daily_task); break; case 1: task = context.GetText(Resource.String.weekly_task); break; case 2: task = context.GetText(Resource.String.one_time_task); break; } remoteViews.SetInt(Resource.Id.widget_layout, "setBackgroundColor", (int)(Opacity * 0xFF) << 24 | Theme); // 어두운 테마 if (Theme == Convert.ToInt32(0x000000)) { remoteViews.SetTextColor(Resource.Id.task, Android.Graphics.Color.White); remoteViews.SetInt(Resource.Id.divider, "setBackgroundColor", Android.Graphics.Color.White); } // 밝은 테마 else { remoteViews.SetTextColor(Resource.Id.task, Android.Graphics.Color.Black); remoteViews.SetInt(Resource.Id.divider, "setBackgroundColor", Android.Graphics.Color.Black); } remoteViews.SetTextViewText(Resource.Id.task, task); remoteViews.SetEmptyView(Resource.Id.task_listview, Resource.Id.empty_view); remoteViews.SetRemoteAdapter(Resource.Id.task_listview, svcIntent); if (Progress) { remoteViews.SetViewVisibility(Resource.Id.progress_layout, Android.Views.ViewStates.Visible); } else { remoteViews.SetViewVisibility(Resource.Id.progress_layout, Android.Views.ViewStates.Gone); } return(remoteViews); }
public override RemoteViews Setup(Context context, TimeEntryWidgetInfo widgetInfo) { var view = new RemoteViews(context.PackageName, Resource.Layout.TimeEntryWidget); SetupActionsForStartAndStopButtons(context, view); view.SetOnClickPendingIntent(Resource.Id.RootLayout, getOpenAppToLoginPendingIntent(context)); if (widgetInfo.IsRunning) { view.SetViewVisibility(Resource.Id.StartButton, Gone); view.SetViewVisibility(Resource.Id.StopButton, Visible); var duration = (DateTimeOffset.Now - widgetInfo.StartTime).TotalMilliseconds; view.SetChronometer(Resource.Id.DurationTextView, SystemClock.ElapsedRealtime() - (long)duration, "%s", true); if (string.IsNullOrEmpty(widgetInfo.Description)) { view.SetTextViewText(Resource.Id.DescriptionTextView, Resources.NoDescription); view.SetTextColor(Resource.Id.DescriptionTextView, context.SafeGetColor(Resource.Color.secondaryText)); } else { view.SetTextViewText(Resource.Id.DescriptionTextView, widgetInfo.Description); view.SetTextColor(Resource.Id.DescriptionTextView, context.SafeGetColor(Resource.Color.primaryText)); } view.SetViewVisibility(Resource.Id.DotView, widgetInfo.HasProject.ToVisibility()); view.SetViewVisibility(Resource.Id.ProjectTextView, widgetInfo.HasProject.ToVisibility()); if (widgetInfo.HasProject) { // Project var projectColor = widgetInfo.ProjectColor != null ? Color.ParseColor(widgetInfo.ProjectColor) : Color.Black; view.SetInt(Resource.Id.DotView, "setBackgroundColor", projectColor); view.SetTextViewText(Resource.Id.ProjectTextView, widgetInfo.ProjectName ?? ""); view.SetTextColor(Resource.Id.ProjectTextView, projectColor); // Client view.SetViewVisibility(Resource.Id.ClientTextView, widgetInfo.HasClient.ToVisibility()); if (widgetInfo.HasClient) view.SetTextViewText(Resource.Id.ClientTextView, widgetInfo.ClientName); } } else { view.SetViewVisibility(Resource.Id.StartButton, Visible); view.SetViewVisibility(Resource.Id.StopButton, Gone); view.SetChronometer(Resource.Id.DurationTextView, SystemClock.ElapsedRealtime(), "%s", false); view.SetTextViewText(Resource.Id.DescriptionTextView, Resources.NoDescription); view.SetTextColor(Resource.Id.DescriptionTextView, context.SafeGetColor(Resource.Color.secondaryText)); view.SetViewVisibility(Resource.Id.DotView, false.ToVisibility()); view.SetViewVisibility(Resource.Id.ProjectTextView, false.ToVisibility()); view.SetViewVisibility(Resource.Id.ClientTextView, false.ToVisibility()); } return view; }
// Build a widget update to show the current Wiktionary // "Word of the day." Will block until the online API returns. public RemoteViews BuildUpdate(Context context) { // var entry = WordEntry.GetWordOfTheDay(); // Build an update that holds the updated widget contents var updateViews = new RemoteViews(context.PackageName, Resource.Layout.taskwidget); try { var launchAppIntent = new Intent(this, typeof (MainActivity)); launchAppIntent.AddFlags(ActivityFlags.SingleTop); launchAppIntent.AddFlags(ActivityFlags.ClearTop); launchAppIntent.PutExtra("CameFromWidget", true); var pendingIntent = PendingIntent.GetActivity(context, 0, launchAppIntent, 0); updateViews.SetOnClickPendingIntent(Resource.Id.widget_top_action_bar, pendingIntent); var launchAppIntent2 = new Intent(this, typeof(MainActivity)); launchAppIntent2.AddFlags(ActivityFlags.SingleTop); launchAppIntent2.AddFlags(ActivityFlags.ClearTop); var pendingIntent2 = PendingIntent.GetActivity(context, 0, launchAppIntent, 0); updateViews.SetOnClickPendingIntent(Resource.Id.widget_main_area, pendingIntent2); var newTasks = new List<string>(); var newTasksChecked = new List<bool>(); var lineVisibility = new List<ViewStates>(); for(int i = 0; i < 15; i++) { newTasks.Add(string.Empty); newTasksChecked.Add(false); lineVisibility.Add(ViewStates.Gone); } var tasks = DataManager.GetTasks(SortOption.Newest); var count = tasks.Count(); count = count > m_TextViews.Length ? m_TextViews.Length : count; for (int i = 0; i < count; i++) { var task = tasks.ElementAt(i); newTasks[i] = task.Task; newTasksChecked[i] = task.Checked; if (i != 0) lineVisibility[i - 1] = ViewStates.Visible; } if (newTasks[0] == string.Empty) newTasks[0] = "No Tasks Added."; for(int i = 0; i < m_TextViews.Length; i++) { updateViews.SetTextViewText(m_TextViews[i], newTasks[i]); updateViews.SetTextColor(m_TextViews[i], newTasksChecked[i] ? Android.Graphics.Color.DarkGray : Android.Graphics.Color.Black ); } for(int i = 0; i < m_TextViewsLines.Length; i++) updateViews.SetViewVisibility(m_TextViewsLines[i], lineVisibility[i]); } catch (Exception ex) { updateViews.SetTextViewText(Resource.Id.widget_task_1, "Error loading widget"); } return updateViews; }
public static void Update(Context context, NextAlarm nextAlarm, int[] appWidgetIds = null) { AppWidgetManager appWidgetManager = AppWidgetManager.GetInstance(context); ComponentName thisWidget = new ComponentName(context, Class.FromType(typeof(Widget)).Name); if (appWidgetIds == null) { appWidgetIds = appWidgetManager.GetAppWidgetIds(thisWidget); } var prefs = PrefsKeys.GetPrefs(context); foreach (var appWidgetId in appWidgetIds) { var timeOffset = prefs.GetInt(PrefsKeys.TimeOffset + appWidgetId, 0); nextAlarm.RefreshDisplay(context, timeOffset); RemoteViews updateViews = new RemoteViews(context.PackageName, Resource.Layout.widget); var useTodDom = prefs.GetBoolean(PrefsKeys.DateUseTodTom + appWidgetId, true); if (useTodDom) { updateViews.SetTextViewText(Resource.Id.alarm_date, nextAlarm.DayAbbreviated); } else { updateViews.SetTextViewText(Resource.Id.alarm_date, nextAlarm.Day); } if (nextAlarm.Time.Length > 5) { updateViews.SetTextViewText(Resource.Id.alarm_time_12, nextAlarm.Time); updateViews.SetViewVisibility(Resource.Id.alarm_time_12, ViewStates.Visible); updateViews.SetViewVisibility(Resource.Id.alarm_time_24, ViewStates.Gone); } else { updateViews.SetTextViewText(Resource.Id.alarm_time_24, nextAlarm.Time); updateViews.SetViewVisibility(Resource.Id.alarm_time_24, ViewStates.Visible); updateViews.SetViewVisibility(Resource.Id.alarm_time_12, ViewStates.Gone); } var dateColor = new Color(prefs.GetInt(PrefsKeys.DateColor + appWidgetId, context.GetCompatColor(Resource.Color.date))); updateViews.SetTextColor(Resource.Id.alarm_date, dateColor); var dateTextSize = prefs.GetInt(PrefsKeys.DateTextSize + appWidgetId, -1); if (dateTextSize != -1) { updateViews.SetTextViewTextSize(Resource.Id.alarm_date, (int)ComplexUnitType.Dip, dateTextSize); } var timeColor = new Color(prefs.GetInt(PrefsKeys.TimeColor + appWidgetId, context.GetCompatColor(Resource.Color.time))); updateViews.SetTextColor(Resource.Id.alarm_time_24, timeColor); updateViews.SetTextColor(Resource.Id.alarm_time_12, timeColor); var timeTextSize = prefs.GetInt(PrefsKeys.TimeTextSize + appWidgetId, -1); if (timeTextSize != -1) { updateViews.SetTextViewTextSize(Resource.Id.alarm_time_24, (int)ComplexUnitType.Dip, timeTextSize); updateViews.SetTextViewTextSize(Resource.Id.alarm_time_12, (int)ComplexUnitType.Dip, timeTextSize); } var iconColor = new Color(prefs.GetInt(PrefsKeys.IconColor + appWidgetId, context.GetCompatColor(Resource.Color.icon))); Bitmap sourceBitmap = BitmapFactory.DecodeResource(context.Resources, Resource.Drawable.ic_alarm_white_18dp); Bitmap resultBitmap = Bitmap.CreateBitmap(sourceBitmap.Width, sourceBitmap.Height, Bitmap.Config.Argb8888); Paint p = new Paint(); float[] matrix = { 0, 0, 0, iconColor.R / 255f, 0, 0, 0, 0, iconColor.G / 255f, 0, 0, 0, 0, iconColor.B / 255f, 0, 0, 0, 0, iconColor.A / 255f, 0 }; ColorFilter filter = new ColorMatrixColorFilter(matrix); p.SetColorFilter(filter); Canvas canvas = new Canvas(resultBitmap); canvas.DrawBitmap(sourceBitmap, 0, 0, p); updateViews.SetImageViewBitmap(Resource.Id.alarm_icon, resultBitmap); var backgroundColor = new Color(prefs.GetInt(PrefsKeys.BackgroundColor + appWidgetId, context.GetCompatColor(Resource.Color.background))); updateViews.SetInt(Resource.Id.background, "setColorFilter", backgroundColor.ToArgb()); updateViews.SetInt(Resource.Id.background, "setAlpha", backgroundColor.A); updateViews.SetOnClickPendingIntent(Resource.Id.widget_root, nextAlarm.RelayIntent); appWidgetManager.UpdateAppWidget(appWidgetId, updateViews); } ScheduleMidnightUpdate(context); }
// Build a widget update to show the current Wiktionary // "Word of the day." Will block until the online API returns. public RemoteViews BuildUpdate(Context context) { // var entry = WordEntry.GetWordOfTheDay(); // Build an update that holds the updated widget contents var updateViews = new RemoteViews(context.PackageName, Resource.Layout.taskwidget); try { var launchAppIntent = new Intent(this, typeof(MainActivity)); launchAppIntent.AddFlags(ActivityFlags.SingleTop); launchAppIntent.AddFlags(ActivityFlags.ClearTop); launchAppIntent.PutExtra("CameFromWidget", true); var pendingIntent = PendingIntent.GetActivity(context, 0, launchAppIntent, 0); updateViews.SetOnClickPendingIntent(Resource.Id.widget_top_action_bar, pendingIntent); var launchAppIntent2 = new Intent(this, typeof(MainActivity)); launchAppIntent2.AddFlags(ActivityFlags.SingleTop); launchAppIntent2.AddFlags(ActivityFlags.ClearTop); var pendingIntent2 = PendingIntent.GetActivity(context, 0, launchAppIntent, 0); updateViews.SetOnClickPendingIntent(Resource.Id.widget_main_area, pendingIntent2); var newTasks = new List <string>(); var newTasksChecked = new List <bool>(); var lineVisibility = new List <ViewStates>(); for (int i = 0; i < 15; i++) { newTasks.Add(string.Empty); newTasksChecked.Add(false); lineVisibility.Add(ViewStates.Gone); } var tasks = DataManager.GetTasks(SortOption.Newest); var count = tasks.Count(); count = count > m_TextViews.Length ? m_TextViews.Length : count; for (int i = 0; i < count; i++) { var task = tasks.ElementAt(i); newTasks[i] = task.Task; newTasksChecked[i] = task.Checked; if (i != 0) { lineVisibility[i - 1] = ViewStates.Visible; } } if (newTasks[0] == string.Empty) { newTasks[0] = "No Tasks Added."; } for (int i = 0; i < m_TextViews.Length; i++) { updateViews.SetTextViewText(m_TextViews[i], newTasks[i]); updateViews.SetTextColor(m_TextViews[i], newTasksChecked[i] ? Android.Graphics.Color.DarkGray : Android.Graphics.Color.Black); } for (int i = 0; i < m_TextViewsLines.Length; i++) { updateViews.SetViewVisibility(m_TextViewsLines[i], lineVisibility[i]); } } catch (Exception ex) { updateViews.SetTextViewText(Resource.Id.widget_task_1, "Error loading widget"); } return(updateViews); }