summaryrefslogtreecommitdiff
path: root/android/sdremote/src
diff options
context:
space:
mode:
authorArtur Dryomov <artur.dryomov@gmail.com>2013-10-03 21:35:44 +0300
committerArtur Dryomov <artur.dryomov@gmail.com>2013-10-04 01:26:20 +0300
commit99389390b8c784a3af7f7f0ef1a121b35134bb60 (patch)
treedb8b9c3ee0edfc4dd8363ffbba072e48848a0c2e /android/sdremote/src
parente5961c6a09b0d1747c36088d1258ad192fa944f9 (diff)
Add support for setting vibrate mode while showing a slide show.
Change-Id: I8f407fbce3b90b56a0fb24b1143bcd7f2a243020
Diffstat (limited to 'android/sdremote/src')
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/activity/SlideShowActivity.java47
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/util/Preferences.java3
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java1
3 files changed, 50 insertions, 1 deletions
diff --git a/android/sdremote/src/org/libreoffice/impressremote/activity/SlideShowActivity.java b/android/sdremote/src/org/libreoffice/impressremote/activity/SlideShowActivity.java
index 3c41eccbd20d..1dbc22f4f17a 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/activity/SlideShowActivity.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/activity/SlideShowActivity.java
@@ -14,6 +14,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
+import android.media.AudioManager;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v4.app.DialogFragment;
@@ -46,6 +47,8 @@ public class SlideShowActivity extends SherlockFragmentActivity implements Servi
private Mode mMode;
+ private int mRingerMode;
+
private CommunicationService mCommunicationService;
private IntentsReceiver mIntentsReceiver;
@@ -59,6 +62,9 @@ public class SlideShowActivity extends SherlockFragmentActivity implements Servi
setUpFragment();
setUpKeepingScreenOn();
+ saveRingerMode(aSavedInstanceState);
+ enableQuietMode();
+
bindService();
}
@@ -104,6 +110,32 @@ public class SlideShowActivity extends SherlockFragmentActivity implements Servi
return aPreferences.getBoolean(Preferences.Keys.KEEP_SCREEN_ON);
}
+ private void saveRingerMode(Bundle aSavedInstanceState) {
+ if (aSavedInstanceState == null) {
+ mRingerMode = getAudioManager().getRingerMode();
+ } else {
+ mRingerMode = aSavedInstanceState.getInt(SavedStates.Keys.RINGER_MODE);
+ }
+ }
+
+ private AudioManager getAudioManager() {
+ return (AudioManager) getSystemService(AUDIO_SERVICE);
+ }
+
+ private void enableQuietMode() {
+ if (!isQuietModeRequired()) {
+ return;
+ }
+
+ getAudioManager().setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
+ }
+
+ private boolean isQuietModeRequired() {
+ Preferences aPreferences = Preferences.getSettingsInstance(this);
+
+ return aPreferences.getBoolean(Preferences.Keys.QUIET_MODE);
+ }
+
private void bindService() {
Intent aIntent = Intents.buildCommunicationServiceIntent(this);
bindService(aIntent, this, Context.BIND_AUTO_CREATE);
@@ -509,16 +541,23 @@ public class SlideShowActivity extends SherlockFragmentActivity implements Servi
super.onSaveInstanceState(aOutState);
saveMode(aOutState);
+ rememberRingerMode(aOutState);
}
private void saveMode(Bundle aOutState) {
aOutState.putSerializable(SavedStates.Keys.MODE, mMode);
}
+ private void rememberRingerMode(Bundle aOutState) {
+ aOutState.putInt(SavedStates.Keys.RINGER_MODE, mRingerMode);
+ }
+
@Override
protected void onDestroy() {
super.onDestroy();
+ disableQuietMode();
+
if (!isServiceBound()) {
return;
}
@@ -526,6 +565,14 @@ public class SlideShowActivity extends SherlockFragmentActivity implements Servi
unbindService();
}
+ private void disableQuietMode() {
+ if (!isQuietModeRequired()) {
+ return;
+ }
+
+ getAudioManager().setRingerMode(mRingerMode);
+ }
+
private void unbindService() {
unbindService(this);
}
diff --git a/android/sdremote/src/org/libreoffice/impressremote/util/Preferences.java b/android/sdremote/src/org/libreoffice/impressremote/util/Preferences.java
index 5a9b0c783288..ca5fbaee8a62 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/util/Preferences.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/util/Preferences.java
@@ -30,8 +30,9 @@ public final class Preferences {
public static final String SELECTED_COMPUTERS_TAB_INDEX = "selected_computers_tab_index";
- public static final String VOLUME_KEYS_ACTIONS = "volume_keys_actions";
public static final String KEEP_SCREEN_ON = "keep_screen_on";
+ public static final String VOLUME_KEYS_ACTIONS = "volume_keys_actions";
+ public static final String QUIET_MODE = "quiet_mode";
}
private static final class Defaults {
diff --git a/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java b/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java
index 7bc5dad6a9b0..062462e757af 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java
@@ -22,6 +22,7 @@ public final class SavedStates {
public static final String MODE = "MODE";
public static final String PIN = "PIN";
public static final String PROGRESS_MESSAGE = "PROGRESS_MESSAGE";
+ public static final String RINGER_MODE = "RINGER_MODE";
}
}