From c076bccd3fe1125b0858f07346d5cef8af188596 Mon Sep 17 00:00:00 2001 From: bulic Date: Tue, 4 Nov 2014 12:56:17 -0800 Subject: Added internet connectivity indicator b/17916808 Change-Id: I94fb8c52139ea4e5ec5cbcf15fdd1e7b04d84c6c --- apps/LeanbackWidget/AndroidManifest.xml | 11 ++++- .../drawable-hdpi/ic_settings_wifi_no_internet.png | Bin 0 -> 2322 bytes .../ic_settings_wifi_not_connected.png | Bin 0 -> 3314 bytes .../drawable-mdpi/ic_settings_wifi_no_internet.png | Bin 0 -> 1711 bytes .../ic_settings_wifi_not_connected.png | Bin 0 -> 2175 bytes .../ic_settings_wifi_no_internet.png | Bin 0 -> 3016 bytes .../ic_settings_wifi_not_connected.png | Bin 0 -> 4444 bytes apps/LeanbackWidget/res/layout/clock_widget.xml | 21 ++++++--- apps/LeanbackWidget/res/xml/clock_widget_info.xml | 6 ++- .../partnerwidget/ClockWidgetProvider.java | 48 ++++++++++++++++++--- 10 files changed, 69 insertions(+), 17 deletions(-) create mode 100644 apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png create mode 100644 apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png create mode 100644 apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png create mode 100644 apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png create mode 100644 apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png create mode 100644 apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png (limited to 'apps') diff --git a/apps/LeanbackWidget/AndroidManifest.xml b/apps/LeanbackWidget/AndroidManifest.xml index 7c7001f..8a0f819 100644 --- a/apps/LeanbackWidget/AndroidManifest.xml +++ b/apps/LeanbackWidget/AndroidManifest.xml @@ -6,11 +6,17 @@ android:minSdkVersion="19" android:targetSdkVersion="19" /> - + + - + + + + + + @@ -18,5 +24,6 @@ android:name="android.appwidget.provider" android:resource="@xml/clock_widget_info" /> + diff --git a/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png new file mode 100644 index 0000000..d80a984 Binary files /dev/null and b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png differ diff --git a/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png new file mode 100644 index 0000000..50d20bf Binary files /dev/null and b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png differ diff --git a/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png new file mode 100644 index 0000000..f243675 Binary files /dev/null and b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png differ diff --git a/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png new file mode 100644 index 0000000..1f33e68 Binary files /dev/null and b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png differ diff --git a/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png new file mode 100644 index 0000000..c2cbbe4 Binary files /dev/null and b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png differ diff --git a/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png new file mode 100644 index 0000000..418e0ab Binary files /dev/null and b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png differ diff --git a/apps/LeanbackWidget/res/layout/clock_widget.xml b/apps/LeanbackWidget/res/layout/clock_widget.xml index 9da9dc4..0a1ca2a 100644 --- a/apps/LeanbackWidget/res/layout/clock_widget.xml +++ b/apps/LeanbackWidget/res/layout/clock_widget.xml @@ -1,18 +1,27 @@ - + android:layout_height="match_parent"> + android:textSize="@dimen/clock_text_size" /> - + + + diff --git a/apps/LeanbackWidget/res/xml/clock_widget_info.xml b/apps/LeanbackWidget/res/xml/clock_widget_info.xml index d932126..a877df8 100644 --- a/apps/LeanbackWidget/res/xml/clock_widget_info.xml +++ b/apps/LeanbackWidget/res/xml/clock_widget_info.xml @@ -1,4 +1,6 @@ \ No newline at end of file + android:updatePeriodMillis="1800000" + android:initialLayout="@layout/clock_widget" + android:widgetCategory="home_screen" + android:resizeMode="none" /> 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 -- cgit v1.2.3