diff options
Diffstat (limited to 'apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java')
-rw-r--r-- | apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java b/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java index 1143812..7dc57db 100644 --- a/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java +++ b/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java @@ -5,21 +5,55 @@ import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; +import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.text.TextUtils; import android.widget.RemoteViews; public class ClockWidgetProvider extends AppWidgetProvider { + @Override + public void onReceive(Context context, Intent intent) { + update(context); + super.onReceive(context, intent); + } public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + update(context); + super.onUpdate(context, appWidgetManager, appWidgetIds); + } + private void update(Context context) { + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); ComponentName thisWidget = new ComponentName(context, ClockWidgetProvider.class); - int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); - for (int widgetId : allWidgetIds) { - RemoteViews remoteView = new RemoteViews(context.getPackageName(), - R.layout.clock_widget); - appWidgetManager.updateAppWidget(widgetId, remoteView); + appWidgetManager.updateAppWidget(thisWidget, getRemoteViews(context)); + } + + private RemoteViews getRemoteViews(Context context) { + RemoteViews remoteViews = new RemoteViews(context.getPackageName(), + R.layout.clock_widget); + remoteViews.setImageViewResource(R.id.connectivity_indicator, getConnectedResId(context)); + + return remoteViews; + } + + private static int getConnectedResId(Context context) { + ConnectivityManager cm = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo info = cm.getActiveNetworkInfo(); + + int resId = 0; + if (info == null || !info.isAvailable()) { + resId = R.drawable.ic_settings_wifi_not_connected; + } else if (!info.isConnected()) { + resId = R.drawable.ic_settings_wifi_no_internet; + } else { + // internet is connected and working, show nothing + resId = android.R.color.transparent; } - super.onUpdate(context, appWidgetManager, appWidgetIds); + return resId; } -} +}
\ No newline at end of file |