Loading src/com/android/alarmclock/DigitalAppWidgetProvider.java +25 −43 Original line number Original line Diff line number Diff line Loading @@ -20,42 +20,28 @@ import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.appwidget.AppWidgetProvider; import android.appwidget.AppWidgetProviderInfo; import android.appwidget.AppWidgetProviderInfo; import android.content.ComponentName; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.res.Resources; import android.net.Uri; import android.net.Uri; import android.os.Bundle; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; import android.text.format.DateFormat; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.widget.RemoteViews; import android.widget.RemoteViews; import com.android.deskclock.Alarms; import com.android.deskclock.DeskClock; import com.android.deskclock.DeskClock; import com.android.deskclock.R; import com.android.deskclock.R; import com.android.deskclock.Utils; import com.android.deskclock.worldclock.CitiesActivity; import com.android.deskclock.worldclock.CitiesActivity; import java.util.Calendar; public class DigitalAppWidgetProvider extends AppWidgetProvider { public class DigitalAppWidgetProvider extends AppWidgetProvider { private static final String TAG = "DigitalAppWidgetProvider"; public DigitalAppWidgetProvider() { public DigitalAppWidgetProvider() { } } @Override @Override public void onUpdate(Context ctxt, AppWidgetManager appWidgetManager, int[] appWidgetIds) { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { for (int appWidgetId : appWidgetIds) { for (int appWidgetId : appWidgetIds) { float ratio = WidgetUtils.getScaleRatio(ctxt, null, appWidgetId); float ratio = WidgetUtils.getScaleRatio(context, null, appWidgetId); updateClock(ctxt, appWidgetManager, appWidgetId, ratio); updateClock(context, appWidgetManager, appWidgetId, ratio); } } super.onUpdate(ctxt, appWidgetManager, appWidgetIds); super.onUpdate(context, appWidgetManager, appWidgetIds); } } @Override @Override Loading @@ -67,43 +53,39 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider { updateClock(context, widgetManager, appWidgetId, ratio); updateClock(context, widgetManager, appWidgetId, ratio); } } static ComponentName getComponentName(Context context) { return new ComponentName(context, DigitalAppWidgetProvider.class); } private void updateClock( private void updateClock( Context c, AppWidgetManager appWidgetManager, int appWidgetId, float ratio) { Context context, AppWidgetManager appWidgetManager, int appWidgetId, float ratio) { RemoteViews widget = new RemoteViews(c.getPackageName(), R.layout.digital_appwidget); RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); // launch clock when clicking on the time in the widget only if not a lock screen widget // Launch clock when clicking on the time in the widget only if not a lock screen widget Bundle newOptions = appWidgetManager.getAppWidgetOptions(appWidgetId); Bundle newOptions = appWidgetManager.getAppWidgetOptions(appWidgetId); if (newOptions != null && if (newOptions != null && newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, -1) newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, -1) != AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD) { != AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD) { widget.setOnClickPendingIntent(R.id.digital_appwidget, widget.setOnClickPendingIntent(R.id.digital_appwidget, PendingIntent.getActivity(c, 0, new Intent(c, DeskClock.class), 0)); PendingIntent.getActivity(context, 0, new Intent(context, DeskClock.class), 0)); } } refreshAlarm(c, widget); WidgetUtils.setClockSize(c, widget, ratio); // Setup alarm text and font sizes final Intent intent = new Intent(c, DigitalAppWidgetService.class); DigitalWidgetViewsFactory.refreshAlarm(context, widget); WidgetUtils.setClockSize(context, widget, ratio); // Set up R.id.digital_appwidget_listview to use a remote views adapter // That remote views adapter connects to a RemoteViewsService through intent. final Intent intent = new Intent(context, DigitalAppWidgetService.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); widget.setRemoteAdapter(appWidgetId, R.id.digital_appwidget_listview, intent); widget.setRemoteAdapter(R.id.digital_appwidget_listview, intent); // Set up the click on any world clock to start the Cities Activity //TODO: Should this be in the options guard above? widget.setPendingIntentTemplate(R.id.digital_appwidget_listview, widget.setPendingIntentTemplate(R.id.digital_appwidget_listview, PendingIntent.getActivity(c, 0, new Intent(c, CitiesActivity.class), 0)); PendingIntent. getActivity(context, 0, new Intent(context, CitiesActivity.class), 0)); // Refresh the widget appWidgetManager.notifyAppWidgetViewDataChanged( appWidgetManager.notifyAppWidgetViewDataChanged( appWidgetId, R.id.digital_appwidget_listview); appWidgetId, R.id.digital_appwidget_listview); appWidgetManager.updateAppWidget(appWidgetId, widget); appWidgetManager.updateAppWidget(appWidgetId, widget); } } private void refreshAlarm(Context c, RemoteViews clock) { String nextAlarm = Settings.System.getString( c.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); if (!TextUtils.isEmpty(nextAlarm)) { clock.setTextViewText(R.id.nextAlarm, c.getString(R.string.control_set_alarm_with_existing, nextAlarm)); clock.setViewVisibility(R.id.nextAlarm, View.VISIBLE); } else { clock.setViewVisibility(R.id.nextAlarm, View.GONE); } } } } src/com/android/alarmclock/DigitalWidgetViewsFactory.java +18 −11 Original line number Original line Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.widget.RemoteViewsService.RemoteViewsFactory; import com.android.deskclock.Alarms; import com.android.deskclock.Alarms; import com.android.deskclock.R; import com.android.deskclock.R; import com.android.deskclock.Utils; import com.android.deskclock.Utils; import com.android.deskclock.worldclock.Cities; import com.android.deskclock.worldclock.CityObj; import com.android.deskclock.worldclock.CityObj; import com.android.deskclock.worldclock.WorldClockAdapter; import com.android.deskclock.worldclock.WorldClockAdapter; Loading Loading @@ -134,14 +135,15 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo } } } } public DigitalWidgetViewsFactory(Context c, Intent intent) { public DigitalWidgetViewsFactory(Context context, Intent intent) { mContext = c; mContext = context; mId = intent.getIntExtra( mId = intent.getIntExtra( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); mAdapter = new RemoteWorldClockAdapter(c); mAdapter = new RemoteWorldClockAdapter(context); mLastTimeZone = TimeZone.getDefault().getID(); mLastTimeZone = TimeZone.getDefault().getID(); } } @SuppressWarnings("unused") public DigitalWidgetViewsFactory() { public DigitalWidgetViewsFactory() { } } Loading Loading @@ -195,8 +197,9 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo filter.addAction(Utils.ACTION_ON_QUARTER_HOUR); filter.addAction(Utils.ACTION_ON_QUARTER_HOUR); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_LOCALE_CHANGED); filter.addAction(Intent.ACTION_LOCALE_CHANGED); filter.addAction("com.android.deskclock.NEXT_ALARM_TIME_SET"); filter.addAction(Alarms.NEXT_ALARM_TIME_SET); filter.addAction("com.android.deskclock.worldclock.update"); filter.addAction(Cities.WORLDCLOCK_UPDATE_INTENT); Log.v(TAG, "DigitalWidget register receiver"); mContext.registerReceiver(this, filter); mContext.registerReceiver(this, filter); } } Loading @@ -217,6 +220,7 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo @Override @Override public void onDestroy() { public void onDestroy() { Log.v(TAG, "DigitalWidget unregister receiver"); Utils.cancelAlarmOnQuarterHour(mContext, mQuarterlyIntent); Utils.cancelAlarmOnQuarterHour(mContext, mQuarterlyIntent); mContext.unregisterReceiver(this); mContext.unregisterReceiver(this); } } Loading @@ -227,21 +231,24 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo if (mId == AppWidgetManager.INVALID_APPWIDGET_ID) { if (mId == AppWidgetManager.INVALID_APPWIDGET_ID) { return; return; } } mContext = context; String action = intent.getAction(); String action = intent.getAction(); AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); if (action.equals("com.android.deskclock.NEXT_ALARM_TIME_SET")) { if (action == null || widgetManager == null) { return; } if (action.equals(Alarms.NEXT_ALARM_TIME_SET)) { // Update the next alarm text view // Update the next alarm text view RemoteViews widget = RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); refreshAlarm(context, widget); refreshAlarm(context, widget); widgetManager.partiallyUpdateAppWidget(mId, widget); widgetManager.partiallyUpdateAppWidget(mId, widget); } else if (action.equals("com.android.deskclock.worldclock.update")) { } else if (action.equals(Cities.WORLDCLOCK_UPDATE_INTENT)) { // Reload the list of cities // Reload the list of cities mReloadCitiesList = true; mReloadCitiesList = true; widgetManager.notifyAppWidgetViewDataChanged(mId, R.id.digital_appwidget_listview); widgetManager.notifyAppWidgetViewDataChanged(mId, R.id.digital_appwidget_listview); } else if (action.equals(Intent.ACTION_SCREEN_ON)) { } else if (action.equals(Intent.ACTION_SCREEN_ON)) { // Force a refresh of the next alarm text view RemoteViews widget = RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); refreshAlarm(context, widget); refreshAlarm(context, widget); Loading Loading @@ -279,12 +286,12 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo } } } } private void refreshAlarm(Context c, RemoteViews widget) { protected static void refreshAlarm(Context context, RemoteViews widget) { String nextAlarm = Settings.System.getString(c.getContentResolver(), String nextAlarm = Settings.System.getString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); Settings.System.NEXT_ALARM_FORMATTED); if (!TextUtils.isEmpty(nextAlarm)) { if (!TextUtils.isEmpty(nextAlarm)) { widget.setTextViewText(R.id.nextAlarm, widget.setTextViewText(R.id.nextAlarm, c.getString(R.string.control_set_alarm_with_existing, nextAlarm)); context.getString(R.string.control_set_alarm_with_existing, nextAlarm)); widget.setViewVisibility(R.id.nextAlarm, View.VISIBLE); widget.setViewVisibility(R.id.nextAlarm, View.VISIBLE); Log.v(TAG, "DigitalWidget sets next alarm string to " + nextAlarm); Log.v(TAG, "DigitalWidget sets next alarm string to " + nextAlarm); } else { } else { Loading Loading
src/com/android/alarmclock/DigitalAppWidgetProvider.java +25 −43 Original line number Original line Diff line number Diff line Loading @@ -20,42 +20,28 @@ import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.appwidget.AppWidgetProvider; import android.appwidget.AppWidgetProviderInfo; import android.appwidget.AppWidgetProviderInfo; import android.content.ComponentName; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.res.Resources; import android.net.Uri; import android.net.Uri; import android.os.Bundle; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; import android.text.format.DateFormat; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.widget.RemoteViews; import android.widget.RemoteViews; import com.android.deskclock.Alarms; import com.android.deskclock.DeskClock; import com.android.deskclock.DeskClock; import com.android.deskclock.R; import com.android.deskclock.R; import com.android.deskclock.Utils; import com.android.deskclock.worldclock.CitiesActivity; import com.android.deskclock.worldclock.CitiesActivity; import java.util.Calendar; public class DigitalAppWidgetProvider extends AppWidgetProvider { public class DigitalAppWidgetProvider extends AppWidgetProvider { private static final String TAG = "DigitalAppWidgetProvider"; public DigitalAppWidgetProvider() { public DigitalAppWidgetProvider() { } } @Override @Override public void onUpdate(Context ctxt, AppWidgetManager appWidgetManager, int[] appWidgetIds) { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { for (int appWidgetId : appWidgetIds) { for (int appWidgetId : appWidgetIds) { float ratio = WidgetUtils.getScaleRatio(ctxt, null, appWidgetId); float ratio = WidgetUtils.getScaleRatio(context, null, appWidgetId); updateClock(ctxt, appWidgetManager, appWidgetId, ratio); updateClock(context, appWidgetManager, appWidgetId, ratio); } } super.onUpdate(ctxt, appWidgetManager, appWidgetIds); super.onUpdate(context, appWidgetManager, appWidgetIds); } } @Override @Override Loading @@ -67,43 +53,39 @@ public class DigitalAppWidgetProvider extends AppWidgetProvider { updateClock(context, widgetManager, appWidgetId, ratio); updateClock(context, widgetManager, appWidgetId, ratio); } } static ComponentName getComponentName(Context context) { return new ComponentName(context, DigitalAppWidgetProvider.class); } private void updateClock( private void updateClock( Context c, AppWidgetManager appWidgetManager, int appWidgetId, float ratio) { Context context, AppWidgetManager appWidgetManager, int appWidgetId, float ratio) { RemoteViews widget = new RemoteViews(c.getPackageName(), R.layout.digital_appwidget); RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); // launch clock when clicking on the time in the widget only if not a lock screen widget // Launch clock when clicking on the time in the widget only if not a lock screen widget Bundle newOptions = appWidgetManager.getAppWidgetOptions(appWidgetId); Bundle newOptions = appWidgetManager.getAppWidgetOptions(appWidgetId); if (newOptions != null && if (newOptions != null && newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, -1) newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, -1) != AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD) { != AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD) { widget.setOnClickPendingIntent(R.id.digital_appwidget, widget.setOnClickPendingIntent(R.id.digital_appwidget, PendingIntent.getActivity(c, 0, new Intent(c, DeskClock.class), 0)); PendingIntent.getActivity(context, 0, new Intent(context, DeskClock.class), 0)); } } refreshAlarm(c, widget); WidgetUtils.setClockSize(c, widget, ratio); // Setup alarm text and font sizes final Intent intent = new Intent(c, DigitalAppWidgetService.class); DigitalWidgetViewsFactory.refreshAlarm(context, widget); WidgetUtils.setClockSize(context, widget, ratio); // Set up R.id.digital_appwidget_listview to use a remote views adapter // That remote views adapter connects to a RemoteViewsService through intent. final Intent intent = new Intent(context, DigitalAppWidgetService.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); widget.setRemoteAdapter(appWidgetId, R.id.digital_appwidget_listview, intent); widget.setRemoteAdapter(R.id.digital_appwidget_listview, intent); // Set up the click on any world clock to start the Cities Activity //TODO: Should this be in the options guard above? widget.setPendingIntentTemplate(R.id.digital_appwidget_listview, widget.setPendingIntentTemplate(R.id.digital_appwidget_listview, PendingIntent.getActivity(c, 0, new Intent(c, CitiesActivity.class), 0)); PendingIntent. getActivity(context, 0, new Intent(context, CitiesActivity.class), 0)); // Refresh the widget appWidgetManager.notifyAppWidgetViewDataChanged( appWidgetManager.notifyAppWidgetViewDataChanged( appWidgetId, R.id.digital_appwidget_listview); appWidgetId, R.id.digital_appwidget_listview); appWidgetManager.updateAppWidget(appWidgetId, widget); appWidgetManager.updateAppWidget(appWidgetId, widget); } } private void refreshAlarm(Context c, RemoteViews clock) { String nextAlarm = Settings.System.getString( c.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); if (!TextUtils.isEmpty(nextAlarm)) { clock.setTextViewText(R.id.nextAlarm, c.getString(R.string.control_set_alarm_with_existing, nextAlarm)); clock.setViewVisibility(R.id.nextAlarm, View.VISIBLE); } else { clock.setViewVisibility(R.id.nextAlarm, View.GONE); } } } }
src/com/android/alarmclock/DigitalWidgetViewsFactory.java +18 −11 Original line number Original line Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.widget.RemoteViewsService.RemoteViewsFactory; import com.android.deskclock.Alarms; import com.android.deskclock.Alarms; import com.android.deskclock.R; import com.android.deskclock.R; import com.android.deskclock.Utils; import com.android.deskclock.Utils; import com.android.deskclock.worldclock.Cities; import com.android.deskclock.worldclock.CityObj; import com.android.deskclock.worldclock.CityObj; import com.android.deskclock.worldclock.WorldClockAdapter; import com.android.deskclock.worldclock.WorldClockAdapter; Loading Loading @@ -134,14 +135,15 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo } } } } public DigitalWidgetViewsFactory(Context c, Intent intent) { public DigitalWidgetViewsFactory(Context context, Intent intent) { mContext = c; mContext = context; mId = intent.getIntExtra( mId = intent.getIntExtra( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); mAdapter = new RemoteWorldClockAdapter(c); mAdapter = new RemoteWorldClockAdapter(context); mLastTimeZone = TimeZone.getDefault().getID(); mLastTimeZone = TimeZone.getDefault().getID(); } } @SuppressWarnings("unused") public DigitalWidgetViewsFactory() { public DigitalWidgetViewsFactory() { } } Loading Loading @@ -195,8 +197,9 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo filter.addAction(Utils.ACTION_ON_QUARTER_HOUR); filter.addAction(Utils.ACTION_ON_QUARTER_HOUR); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_LOCALE_CHANGED); filter.addAction(Intent.ACTION_LOCALE_CHANGED); filter.addAction("com.android.deskclock.NEXT_ALARM_TIME_SET"); filter.addAction(Alarms.NEXT_ALARM_TIME_SET); filter.addAction("com.android.deskclock.worldclock.update"); filter.addAction(Cities.WORLDCLOCK_UPDATE_INTENT); Log.v(TAG, "DigitalWidget register receiver"); mContext.registerReceiver(this, filter); mContext.registerReceiver(this, filter); } } Loading @@ -217,6 +220,7 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo @Override @Override public void onDestroy() { public void onDestroy() { Log.v(TAG, "DigitalWidget unregister receiver"); Utils.cancelAlarmOnQuarterHour(mContext, mQuarterlyIntent); Utils.cancelAlarmOnQuarterHour(mContext, mQuarterlyIntent); mContext.unregisterReceiver(this); mContext.unregisterReceiver(this); } } Loading @@ -227,21 +231,24 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo if (mId == AppWidgetManager.INVALID_APPWIDGET_ID) { if (mId == AppWidgetManager.INVALID_APPWIDGET_ID) { return; return; } } mContext = context; String action = intent.getAction(); String action = intent.getAction(); AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); if (action.equals("com.android.deskclock.NEXT_ALARM_TIME_SET")) { if (action == null || widgetManager == null) { return; } if (action.equals(Alarms.NEXT_ALARM_TIME_SET)) { // Update the next alarm text view // Update the next alarm text view RemoteViews widget = RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); refreshAlarm(context, widget); refreshAlarm(context, widget); widgetManager.partiallyUpdateAppWidget(mId, widget); widgetManager.partiallyUpdateAppWidget(mId, widget); } else if (action.equals("com.android.deskclock.worldclock.update")) { } else if (action.equals(Cities.WORLDCLOCK_UPDATE_INTENT)) { // Reload the list of cities // Reload the list of cities mReloadCitiesList = true; mReloadCitiesList = true; widgetManager.notifyAppWidgetViewDataChanged(mId, R.id.digital_appwidget_listview); widgetManager.notifyAppWidgetViewDataChanged(mId, R.id.digital_appwidget_listview); } else if (action.equals(Intent.ACTION_SCREEN_ON)) { } else if (action.equals(Intent.ACTION_SCREEN_ON)) { // Force a refresh of the next alarm text view RemoteViews widget = RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); new RemoteViews(context.getPackageName(), R.layout.digital_appwidget); refreshAlarm(context, widget); refreshAlarm(context, widget); Loading Loading @@ -279,12 +286,12 @@ public class DigitalWidgetViewsFactory extends BroadcastReceiver implements Remo } } } } private void refreshAlarm(Context c, RemoteViews widget) { protected static void refreshAlarm(Context context, RemoteViews widget) { String nextAlarm = Settings.System.getString(c.getContentResolver(), String nextAlarm = Settings.System.getString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); Settings.System.NEXT_ALARM_FORMATTED); if (!TextUtils.isEmpty(nextAlarm)) { if (!TextUtils.isEmpty(nextAlarm)) { widget.setTextViewText(R.id.nextAlarm, widget.setTextViewText(R.id.nextAlarm, c.getString(R.string.control_set_alarm_with_existing, nextAlarm)); context.getString(R.string.control_set_alarm_with_existing, nextAlarm)); widget.setViewVisibility(R.id.nextAlarm, View.VISIBLE); widget.setViewVisibility(R.id.nextAlarm, View.VISIBLE); Log.v(TAG, "DigitalWidget sets next alarm string to " + nextAlarm); Log.v(TAG, "DigitalWidget sets next alarm string to " + nextAlarm); } else { } else { Loading