diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/LeanbackWidget/AndroidManifest.xml | 11 | ||||
-rw-r--r-- | apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png | bin | 0 -> 2322 bytes | |||
-rw-r--r-- | apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png | bin | 0 -> 3314 bytes | |||
-rw-r--r-- | apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png | bin | 0 -> 1711 bytes | |||
-rw-r--r-- | apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png | bin | 0 -> 2175 bytes | |||
-rw-r--r-- | apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png | bin | 0 -> 3016 bytes | |||
-rw-r--r-- | apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png | bin | 0 -> 4444 bytes | |||
-rw-r--r-- | apps/LeanbackWidget/res/layout/clock_widget.xml | 21 | ||||
-rw-r--r-- | apps/LeanbackWidget/res/xml/clock_widget_info.xml | 6 | ||||
-rw-r--r-- | apps/LeanbackWidget/src/com/google/android/leanbacklauncher/partnerwidget/ClockWidgetProvider.java | 48 |
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 Binary files differnew file mode 100644 index 0000000..d80a984 --- /dev/null +++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_no_internet.png 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 Binary files differnew file mode 100644 index 0000000..50d20bf --- /dev/null +++ b/apps/LeanbackWidget/res/drawable-hdpi/ic_settings_wifi_not_connected.png 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 Binary files differnew file mode 100644 index 0000000..f243675 --- /dev/null +++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_no_internet.png 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 Binary files differnew file mode 100644 index 0000000..1f33e68 --- /dev/null +++ b/apps/LeanbackWidget/res/drawable-mdpi/ic_settings_wifi_not_connected.png 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 Binary files differnew file mode 100644 index 0000000..c2cbbe4 --- /dev/null +++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_no_internet.png 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 Binary files differnew file mode 100644 index 0000000..418e0ab --- /dev/null +++ b/apps/LeanbackWidget/res/drawable-xhdpi/ic_settings_wifi_not_connected.png 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 |