Merge pull request #9111 from osmandapp/screen_timeout_fixes
Fix screen timeout
This commit is contained in:
commit
873fb38c0a
4 changed files with 27 additions and 5 deletions
|
@ -58,6 +58,7 @@
|
|||
<net.osmand.plus.settings.preferences.SwitchPreferenceEx
|
||||
android:key="turn_screen_on_power_button"
|
||||
android:layout="@layout/preference_with_descr_dialog_and_switch"
|
||||
android:persistent="false"
|
||||
android:summaryOff="@string/shared_string_disabled"
|
||||
android:summaryOn="@string/shared_string_enabled"
|
||||
android:title="@string/turn_screen_on_power_button" />
|
||||
|
|
|
@ -1977,11 +1977,10 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
if (enable) {
|
||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,
|
||||
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
|
||||
setKeepScreenOn(true);
|
||||
} else {
|
||||
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
|
||||
setKeepScreenOn(forceKeepScreenOn);
|
||||
}
|
||||
setKeepScreenOn(forceKeepScreenOn);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,20 +10,26 @@ import android.hardware.SensorManager;
|
|||
import android.os.Handler;
|
||||
import android.os.PowerManager;
|
||||
import android.os.PowerManager.WakeLock;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.routing.VoiceRouter.VoiceMessageListener;
|
||||
import net.osmand.plus.settings.backend.OsmAndAppCustomization.OsmAndAppCustomizationListener;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class LockHelper implements SensorEventListener {
|
||||
|
||||
private static final Log LOG = PlatformUtil.getLog(LockHelper.class);
|
||||
|
||||
private static final int SENSOR_SENSITIVITY = 4;
|
||||
|
||||
@Nullable
|
||||
|
@ -138,14 +144,29 @@ public class LockHelper implements SensorEventListener {
|
|||
}
|
||||
|
||||
private void unlockEvent() {
|
||||
int unlockTime = turnScreenOnTime.get();
|
||||
if (unlockTime > 0 && !useSystemScreenTimeout.get()) {
|
||||
int unlockTime = getUnlockTime();
|
||||
if (unlockTime > 0) {
|
||||
timedUnlock(unlockTime * 1000L);
|
||||
} else {
|
||||
timedUnlock(0);
|
||||
}
|
||||
}
|
||||
|
||||
private int getUnlockTime() {
|
||||
int unlockTime = turnScreenOnTime.get();
|
||||
if (useSystemScreenTimeout.get()) {
|
||||
try {
|
||||
int screenOffTimeout = Settings.System.getInt(app.getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 0);
|
||||
if (screenOffTimeout > 0) {
|
||||
unlockTime = screenOffTimeout / 1000;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
return unlockTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAccuracyChanged(Sensor sensor, int accuracy) {
|
||||
|
||||
|
|
|
@ -97,11 +97,12 @@ public class TurnScreenOnFragment extends BaseSettingsFragment implements OnPref
|
|||
|
||||
private void setupTurnScreenOnPowerButtonPref() {
|
||||
ApplicationMode appMode = getSelectedAppMode();
|
||||
boolean enabled = settings.TURN_SCREEN_ON_TIME_INT.getModeValue(appMode) == 0 || settings.USE_SYSTEM_SCREEN_TIMEOUT.getModeValue(appMode);
|
||||
boolean enabled = settings.TURN_SCREEN_ON_TIME_INT.get() == 0 || settings.USE_SYSTEM_SCREEN_TIMEOUT.get();
|
||||
SwitchPreferenceEx turnScreenOnPowerButton = (SwitchPreferenceEx) findPreference(settings.TURN_SCREEN_ON_POWER_BUTTON.getId());
|
||||
turnScreenOnPowerButton.setEnabled(enabled);
|
||||
turnScreenOnPowerButton.setDescription(R.string.turn_screen_on_power_button_descr);
|
||||
turnScreenOnPowerButton.setIcon(getPersistentPrefIcon(R.drawable.ic_action_power_button));
|
||||
turnScreenOnPowerButton.setChecked(enabled && settings.TURN_SCREEN_ON_POWER_BUTTON.getModeValue(appMode));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue