diff options
author | Pedlar <pedlar88@gmail.com> | 2010-10-05 00:51:57 -0400 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2010-10-17 01:04:47 -0400 |
commit | eb0e39732842151e947f27cf64a00480d75e5631 (patch) | |
tree | 0dd9204ba0593c58ff964fdb49c5502591b5e42f /services/java/com/android/server/status/widget/MobileDataButton.java | |
parent | c5efffd3ea508745ceba287e1444e69b36b7d6e9 (diff) | |
download | frameworks_base-eb0e39732842151e947f27cf64a00480d75e5631.zip frameworks_base-eb0e39732842151e947f27cf64a00480d75e5631.tar.gz frameworks_base-eb0e39732842151e947f27cf64a00480d75e5631.tar.bz2 |
Galaxy S Style Power Widget
- Finally Ready - Review at will
- This Depends on the following:
CMParts: http://review.cyanogenmod.com/2063
Diffstat (limited to 'services/java/com/android/server/status/widget/MobileDataButton.java')
-rwxr-xr-x | services/java/com/android/server/status/widget/MobileDataButton.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/services/java/com/android/server/status/widget/MobileDataButton.java b/services/java/com/android/server/status/widget/MobileDataButton.java new file mode 100755 index 0000000..69aa304 --- /dev/null +++ b/services/java/com/android/server/status/widget/MobileDataButton.java @@ -0,0 +1,85 @@ +package com.android.server.status.widget; + +import com.android.internal.R; +import com.android.server.status.widget.PowerButton; + +import android.content.Context; +import android.content.SharedPreferences; +import android.net.ConnectivityManager; +import android.provider.Settings; + +public class MobileDataButton extends PowerButton { + + public static final String MOBILE_DATA_CHANGED = "com.android.internal.telephony.MOBILE_DATA_CHANGED"; + + static MobileDataButton ownButton = null; + + static boolean stateChangeRequest = false; + + public static boolean getDataRomingEnabled(Context context) { + return Settings.Secure.getInt(context.getContentResolver(), + Settings.Secure.DATA_ROAMING,0) > 0; + } + + /** + * Gets the state of data + * + * @return true if enabled. + */ + private static boolean getDataState(Context context) { + ConnectivityManager cm = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + return cm.getMobileDataEnabled(); + } + + /** + * Toggles the state of data. + * + */ + @Override + public void toggleState(Context context) { + boolean enabled = getDataState(context); + + ConnectivityManager cm = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + if (enabled) { + cm.setMobileDataEnabled(false); + } else { + cm.setMobileDataEnabled(true); + } + } + + @Override + public void updateState(Context context) { + if (stateChangeRequest) { + currentIcon = R.drawable.stat_data_on; + currentState = PowerButton.STATE_INTERMEDIATE; + } else if (getDataState(context)) { + currentIcon = R.drawable.stat_data_on; + currentState = PowerButton.STATE_ENABLED; + } else { + currentIcon = R.drawable.stat_data_off; + currentState = PowerButton.STATE_DISABLED; + } + } + + public static MobileDataButton getInstance() { + if (ownButton == null) ownButton = new MobileDataButton(); + + return ownButton; + } + + @Override + void initButton(int position) { + } + + public void networkModeChanged(Context context, int networkMode) { + if (stateChangeRequest) { + ConnectivityManager cm = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + cm.setMobileDataEnabled(true); + stateChangeRequest=false; + } + } + +} |