Merge pull request #942 from jtrax/bugfixes
Added "Turn on the screen" item in the settings. Added additional checks
This commit is contained in:
commit
852a31d073
5 changed files with 24 additions and 12 deletions
|
@ -9,6 +9,8 @@
|
|||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||
-->
|
||||
<string name="wake_on_voice">Turn on the screen</string>
|
||||
<string name="wake_on_voice_descr">Turn on the phone screen when approaching a turn</string>
|
||||
<string name="select_impassable_road">Select on map</string>
|
||||
<string name="impassable_road">Avoid roads…</string>
|
||||
<string name="rendering_attr_tramTrainRoutes_name">Tram and train</string>
|
||||
|
|
|
@ -28,5 +28,6 @@
|
|||
android:title="@string/speed_limit_exceed"
|
||||
android:summary="@string/speed_limit_exceed_message"/>
|
||||
<CheckBoxPreference android:title="@string/show_zoom_buttons_navigation" android:summary="@string/show_zoom_buttons_navigation_descr" android:key="show_zoom_buttons_navigation" />
|
||||
<CheckBoxPreference android:title="@string/wake_on_voice" android:summary="@string/wake_on_voice_descr" android:key="wake_on_voice" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
|
|
@ -114,7 +114,8 @@ public class MapActivity extends AccessibleActivity implements
|
|||
private GpxImportHelper gpxImportHelper;
|
||||
private PowerManager.WakeLock wakeLock = null;
|
||||
private KeyguardManager.KeyguardLock keyguardLock = null;
|
||||
private ReleaseWakeLocksRunnable releaseWakeLocksRunnable = new ReleaseWakeLocksRunnable();
|
||||
private ReleaseWakeLocksRunnable releaseWakeLocksRunnable = new ReleaseWakeLocksRunnable();
|
||||
private boolean active = false;
|
||||
|
||||
private Notification getNotification() {
|
||||
Intent notificationIndent = new Intent(this, getMyApplication().getAppCustomization().getMapActivity());
|
||||
|
@ -539,6 +540,7 @@ public class MapActivity extends AccessibleActivity implements
|
|||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
active = true;
|
||||
if ((wakeLock == null) || (keyguardLock == null)) {
|
||||
VoiceRouter voiceRouter = app.getRoutingHelper().getVoiceRouter();
|
||||
voiceRouter.removeVoiceMessageListener(this);
|
||||
|
@ -565,10 +567,11 @@ public class MapActivity extends AccessibleActivity implements
|
|||
progressDlg.dismiss();
|
||||
progressDlg = null;
|
||||
}
|
||||
if (!isFinishing()) {
|
||||
if (!isFinishing() && settings.WAKE_ON_VOICE.get()) {
|
||||
VoiceRouter voiceRouter = app.getRoutingHelper().getVoiceRouter();
|
||||
voiceRouter.addVoiceMessageListener(this);
|
||||
}
|
||||
active = false;
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
|
@ -788,17 +791,18 @@ public class MapActivity extends AccessibleActivity implements
|
|||
if (settings.WAKE_ON_VOICE.get()) {
|
||||
uiHandler.removeCallbacks(releaseWakeLocksRunnable);
|
||||
|
||||
if (wakeLock == null) {
|
||||
if (!active && (wakeLock == null)) {
|
||||
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
|
||||
wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
|
||||
| PowerManager.ACQUIRE_CAUSES_WAKEUP,
|
||||
"OsmAndOnVoiceWakeupTag");
|
||||
wakeLock.acquire();
|
||||
}
|
||||
if (keyguardLock == null) {
|
||||
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
|
||||
keyguardLock = km.newKeyguardLock("OsmAndKeyguardLock");
|
||||
keyguardLock.disableKeyguard();
|
||||
|
||||
if (keyguardLock == null) {
|
||||
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
|
||||
keyguardLock = km.newKeyguardLock("OsmAndKeyguardLock");
|
||||
keyguardLock.disableKeyguard();
|
||||
}
|
||||
}
|
||||
|
||||
uiHandler.postDelayed(releaseWakeLocksRunnable, WAKE_ON_VOICE_INTERVAL);
|
||||
|
|
|
@ -92,6 +92,7 @@ public class SettingsNavigationActivity extends SettingsBaseActivity {
|
|||
registerListPreference(settings.KEEP_INFORMING, screen, keepInformingNames, keepInformingValues);
|
||||
|
||||
registerBooleanPreference(settings.SHOW_ZOOM_BUTTONS_NAVIGATION, screen);
|
||||
registerBooleanPreference(settings.WAKE_ON_VOICE, screen);
|
||||
|
||||
autoZoomMapPreference = (ListPreference) screen.findPreference(settings.AUTO_ZOOM_MAP.getId());
|
||||
autoZoomMapPreference.setOnPreferenceChangeListener(this);
|
||||
|
|
|
@ -871,10 +871,14 @@ public class VoiceRouter {
|
|||
for (final VoiceMessageListener voiceMessageListener : voiceMessageListeners) {
|
||||
Runnable closure = new Runnable() {
|
||||
public void run() {
|
||||
synchronized (voiceMessageListeners) {
|
||||
if (voiceMessageListeners
|
||||
.contains(voiceMessageListener)) {
|
||||
voiceMessageListener.onVoiceMessage();
|
||||
if (settings.WAKE_ON_VOICE.get()) {
|
||||
synchronized (voiceMessageListeners) {
|
||||
if (voiceMessageListeners
|
||||
.contains(voiceMessageListener)
|
||||
&& settings.WAKE_ON_VOICE.get()) {
|
||||
voiceMessageListener
|
||||
.onVoiceMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue