| |
| package com.google.android.leanbacklauncher.partnerwidget; |
| |
| 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); |
| 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; |
| } |
| |
| return resId; |
| } |
| } |