aboutsummaryrefslogtreecommitdiff
path: root/apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java
diff options
context:
space:
mode:
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.java48
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