From ee943ea218e059b46eee5a5d5a1e33ec043e2a10 Mon Sep 17 00:00:00 2001 From: Ricky Barrette Date: Thu, 23 Aug 2012 12:25:09 -0400 Subject: [PATCH] Added airplane mode feature closes #147 --- LocationRinger/AndroidManifest.xml | 8 +++++--- LocationRinger/res/values/features.xml | 1 + LocationRinger/res/values/strings.xml | 1 + .../LocationRinger/db/RingerDatabase.java | 2 +- .../services/RingerProcessingService.java | 16 ++++++++++++++++ .../android/LocationRinger/ui/ListActivity.java | 3 ++- .../ui/fragments/FeatureListFragment.java | 14 +++++++++++++- 7 files changed, 39 insertions(+), 6 deletions(-) diff --git a/LocationRinger/AndroidManifest.xml b/LocationRinger/AndroidManifest.xml index da4c18e..32da60e 100644 --- a/LocationRinger/AndroidManifest.xml +++ b/LocationRinger/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="165" + android:versionName="f8513d6" > @@ -21,6 +21,7 @@ + @@ -39,7 +40,8 @@ - + + @string/music_volume @string/bluetooth @string/wifi + @string/airplane_mode \ No newline at end of file diff --git a/LocationRinger/res/values/strings.xml b/LocationRinger/res/values/strings.xml index 10573dc..cd4f427 100644 --- a/LocationRinger/res/values/strings.xml +++ b/LocationRinger/res/values/strings.xml @@ -94,5 +94,6 @@ Map Mode Current Ringer: Prepearing New Ringer + Airplane Mode \ No newline at end of file diff --git a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/db/RingerDatabase.java b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/db/RingerDatabase.java index 8bfe4a8..193f3cc 100644 --- a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/db/RingerDatabase.java +++ b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/db/RingerDatabase.java @@ -280,8 +280,8 @@ public class RingerDatabase { public static final String KEY_DTMF_VOLUME = "dtmf_volume"; public static final String KEY_SYSTEM_VOLUME = "system_volume"; public static final String KEY_CALL_VOLUME = "call_volume"; - public static final String KEY_RINGER_DESCRIPTION = "ringer_description"; + public static final String KEY_AIRPLANE_MODE = "AIRPLANE_MODE"; /** * Parses a string boolean from the database diff --git a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/services/RingerProcessingService.java b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/services/RingerProcessingService.java index a901bd9..6f68379 100644 --- a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/services/RingerProcessingService.java +++ b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/services/RingerProcessingService.java @@ -23,6 +23,7 @@ import android.net.wifi.WifiManager; import android.os.IBinder; import android.os.PowerManager; import android.os.PowerManager.WakeLock; +import android.provider.Settings; import android.util.Log; import com.TwentyCodes.android.LocationRinger.db.RingerDatabase; @@ -118,6 +119,21 @@ public class RingerProcessingService extends Service { mBluetoothAdapter.enable(); else mBluetoothAdapter.disable(); + + /* + * airplane mode + */ + if(values.containsKey(RingerDatabase.KEY_AIRPLANE_MODE)){ + final boolean airplaneModeEnabled = !RingerDatabase.parseBoolean(values.getAsString(RingerDatabase.KEY_AIRPLANE_MODE)); + // toggle airplane mode + Log.d(TAG, "airplane mode has be set "+ Settings.System.putInt( + this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, airplaneModeEnabled ? 0 : 1)); + + // Post an intent to reload + Intent changeMode = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); + changeMode.putExtra("state", !airplaneModeEnabled); + this.sendBroadcast(changeMode); + } } /** diff --git a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/ListActivity.java b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/ListActivity.java index 521cb1d..86b9512 100644 --- a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/ListActivity.java +++ b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/ListActivity.java @@ -24,6 +24,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Parcelable; +import android.provider.Settings; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; @@ -231,7 +232,7 @@ public class ListActivity extends Activity implements OnItemClickListener, OnCli info.put(RingerDatabase.KEY_RINGTONE_VOLUME, am.getStreamVolume(AudioManager.STREAM_RING)); info.put(RingerDatabase.KEY_BT, bt.isEnabled()); info.put(RingerDatabase.KEY_WIFI, wifi.isWifiEnabled()); - + info.put(RingerDatabase.KEY_AIRPLANE_MODE, Settings.System.getInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0); new Handler().post(new Runnable(){ public void run(){ diff --git a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/fragments/FeatureListFragment.java b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/fragments/FeatureListFragment.java index be3f6e5..7ddeaab 100644 --- a/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/fragments/FeatureListFragment.java +++ b/LocationRinger/src/com/TwentyCodes/android/LocationRinger/ui/fragments/FeatureListFragment.java @@ -42,6 +42,7 @@ public class FeatureListFragment extends BaseFragmentListFragment implements OnC private static final int KEY_ADDED_MUSIC_VOLUME = 3; private static final int KEY_ADDED_BT = 4; private static final int KEY_ADDED_WIFI = 5; + private static final int KEY_ADDED_AIRPLANE_MODE = 6; private final ContentValues mInfo; private final OnContentChangedListener mListener; private final ArrayList mAdded; @@ -116,7 +117,11 @@ public class FeatureListFragment extends BaseFragmentListFragment implements OnC f = new ToggleButtonFragment(R.drawable.ic_action_wifi, this.getString(R.string.wifi), RingerDatabase.KEY_WIFI, mInfo, mListener, this, KEY_ADDED_WIFI); mAdded.add(KEY_ADDED_WIFI); break; - + + case KEY_ADDED_AIRPLANE_MODE: + f = new ToggleButtonFragment(R.drawable.ic_action_airplane, this.getString(R.string.airplane_mode), RingerDatabase.KEY_AIRPLANE_MODE, mInfo, mListener, this, KEY_ADDED_AIRPLANE_MODE); + mAdded.add(KEY_ADDED_AIRPLANE_MODE); + break; } return f; } @@ -146,6 +151,10 @@ public class FeatureListFragment extends BaseFragmentListFragment implements OnC if (mInfo.containsKey(RingerDatabase.KEY_WIFI)) what.add(initFeatureFragment(KEY_ADDED_WIFI)); + + if (mInfo.containsKey(RingerDatabase.KEY_AIRPLANE_MODE)) + what.add(initFeatureFragment(KEY_ADDED_AIRPLANE_MODE)); + return what; } @@ -276,6 +285,9 @@ public class FeatureListFragment extends BaseFragmentListFragment implements OnC case KEY_ADDED_WIFI: mListener.onInfoContentRemoved(RingerDatabase.KEY_WIFI); break; + case KEY_ADDED_AIRPLANE_MODE: + mListener.onInfoContentRemoved(RingerDatabase.KEY_AIRPLANE_MODE); + break; } } }