summaryrefslogtreecommitdiff
path: root/android
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
parente5961c6a09b0d1747c36088d1258ad192fa944f9 (diff)
Add support for setting vibrate mode while showing a slide show.
Change-Id: I8f407fbce3b90b56a0fb24b1143bcd7f2a243020
Diffstat (limited to 'android')
-rw-r--r--android/sdremote/res/values/strings.xml2
-rw-r--r--android/sdremote/res/xml/preferences.xml6
-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
5 files changed, 58 insertions, 1 deletions
diff --git a/android/sdremote/res/values/strings.xml b/android/sdremote/res/values/strings.xml
index cf84a3a48876..d5658d6b83de 100644
--- a/android/sdremote/res/values/strings.xml
+++ b/android/sdremote/res/values/strings.xml
@@ -64,6 +64,8 @@
<string name="preferences_volume_keys_actions_summary">Switch slides and activate animations using volume keys</string>
<string name="preferences_keep_screen_on_title">Keep screen on</string>
<string name="preferences_keep_screen_on_summary">Prevent phone from sleeping while presenting</string>
+ <string name="preferences_quiet_mode_title">Quiet mode</string>
+ <string name="preferences_quiet_mode_summary">Set up vibrate ringer mode while presenting</string>
<string name="requirements_libreoffice_version">LibreOffice version 4.0.3 or higher running on a computer.</string>
<string name="requirements_libreoffice_general_enabled">Impress Remote enabled at “Tools → Options → LibreOffice Impress → General” in LibreOffice Impress.</string>
diff --git a/android/sdremote/res/xml/preferences.xml b/android/sdremote/res/xml/preferences.xml
index 104c52847a73..1318aafd510b 100644
--- a/android/sdremote/res/xml/preferences.xml
+++ b/android/sdremote/res/xml/preferences.xml
@@ -13,4 +13,10 @@
android:title="@string/preferences_keep_screen_on_title"
android:summary="@string/preferences_keep_screen_on_summary"/>
+ <CheckBoxPreference
+ android:key="quiet_mode"
+ android:defaultValue="false"
+ android:title="@string/preferences_quiet_mode_title"
+ android:summary="@string/preferences_quiet_mode_summary"/>
+
</PreferenceScreen> \ No newline at end of file
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";
}
}