aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorbulic <bulic@google.com>2014-11-04 12:56:17 -0800
committerbulic <bulic@google.com>2014-11-04 18:43:02 -0800
commitc076bccd3fe1125b0858f07346d5cef8af188596 (patch)
treea3ab86fc4627e1caaae20ad4c0e1e00cb41425d4 /apps
parentb78f6a457541cf83fce9b7e290255107c9f93ec9 (diff)
downloadsample-c076bccd3fe1125b0858f07346d5cef8af188596.tar.gz
Added internet connectivity indicator
b/17916808 Change-Id: I94fb8c52139ea4e5ec5cbcf15fdd1e7b04d84c6c
Diffstat (limited to 'apps')
-rw-r--r--apps/LeanbackWidget/AndroidManifest.xml11
-rw-r--r--apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.pngbin0 -> 2322 bytes
-rw-r--r--apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.pngbin0 -> 3314 bytes
-rw-r--r--apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.pngbin0 -> 1711 bytes
-rw-r--r--apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.pngbin0 -> 2175 bytes
-rw-r--r--apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.pngbin0 -> 3016 bytes
-rw-r--r--apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.pngbin0 -> 4444 bytes
-rw-r--r--apps/LeanbackWidget/res/layout/clock_widget.xml21
-rw-r--r--apps/LeanbackWidget/res/xml/clock_widget_info.xml6
-rw-r--r--apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java48
10 files changed, 69 insertions, 17 deletions
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" />
- <application android:label="@string/app_label">
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+ <application android:label="@string/app_label">
<receiver android:name=".ClockWidgetProvider" >
<intent-filter>
- <action android:name="android.appwidget.action.APPWIDGET_ENABLED" />
+ <!-- broadcasts that could indicate our internet connection status has changed -->
+ <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
+ <action android:name="android.net.wifi.RSSI_CHANGED" />
+ <action android:name="com.google.android.gcm.CONNECTED" />
+ <action android:name="com.google.android.gcm.DISCONNECTED" />
+
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
@@ -18,5 +24,6 @@
android:name="android.appwidget.provider"
android:resource="@xml/clock_widget_info" />
</receiver>
+
</application>
</manifest>
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
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png
Binary files 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
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png
Binary files 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
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png
Binary files 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
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png
Binary files 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
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png
Binary files 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
--- /dev/null
+++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png
Binary files 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 @@
<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="top|end">
+ android:layout_height="match_parent">
<TextClock
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentEnd="true"
android:format12Hour="@string/widget_12_hours_format"
android:format24Hour="@string/widget_24_hours_format"
android:fontFamily="@string/light_font"
android:textColor="@color/clock_text_color"
- android:textSize="@dimen/clock_text_size"
- android:layout_gravity="top|end" />
+ android:textSize="@dimen/clock_text_size" />
-</FrameLayout>
+ <ImageView
+ android:id="@+id/connectivity_indicator"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_toStartOf="@+id/clock"
+ android:layout_alignParentStart="true"
+ android:layout_centerVertical="true"
+ android:src="@null" />
+
+</RelativeLayout>
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 @@
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
- android:updatePeriodMillis="86400000"
- android:initialLayout="@layout/clock_widget" /> \ 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