Add "Disable proximity events"

This commit is contained in:
Ivan K
2022-03-22 21:55:35 +03:00
parent 7fbddd7e7e
commit 09956357c1
4 changed files with 34 additions and 12 deletions

View File

@@ -38,6 +38,7 @@ public class ExteraConfig {
public static boolean disableCamera;
public static boolean pauseOnMinimize;
public static boolean disablePlayback;
public static boolean disableProximityEvents;
public static boolean newGroup;
public static boolean newSecretChat;
@@ -87,6 +88,7 @@ public class ExteraConfig {
rearVideoMessages = preferences.getBoolean("rearVideoMessages", false);
disableCamera = preferences.getBoolean("disableCamera", false);
disableProximityEvents = preferences.getBoolean("disableProximityEvents", false);
pauseOnMinimize = preferences.getBoolean("pauseOnMinimize", true);
disablePlayback = preferences.getBoolean("disablePlayback", true);
@@ -242,6 +244,14 @@ public class ExteraConfig {
editor.commit();
}
public static void toggleDisableProximityEvents() {
disableProximityEvents = !disableProximityEvents;
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("exteraconfig", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("disableProximityEvents", disableProximityEvents);
editor.commit();
}
public static void togglePauseOnMinimize() {
pauseOnMinimize = !pauseOnMinimize;
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("exteraconfig", Activity.MODE_PRIVATE);

View File

@@ -61,6 +61,7 @@ public class ChatsPreferencesEntry extends BaseFragment {
private int mediaHeaderRow;
private int rearVideoMessagesRow;
private int disableCameraRow;
private int disableProximityEventsRow;
private int pauseOnMinimizeRow;
private int disablePlaybackRow;
private int mediaDividerRow;
@@ -252,6 +253,11 @@ public class ChatsPreferencesEntry extends BaseFragment {
if (view instanceof TextCheckCell) {
((TextCheckCell) view).setChecked(ExteraConfig.disableCamera);
}
} else if (position == disableProximityEventsRow) {
ExteraConfig.toggleDisableProximityEvents();
if (view instanceof TextCheckCell) {
((TextCheckCell) view).setChecked(ExteraConfig.disableProximityEvents);
}
} else if (position == pauseOnMinimizeRow) {
ExteraConfig.togglePauseOnMinimize();
if (view instanceof TextCheckCell) {
@@ -290,6 +296,7 @@ public class ChatsPreferencesEntry extends BaseFragment {
mediaHeaderRow = rowCount++;
rearVideoMessagesRow = rowCount++;
disableCameraRow = rowCount++;
disableProximityEventsRow = rowCount++;
pauseOnMinimizeRow = rowCount++;
disablePlaybackRow = rowCount++;
mediaDividerRow = rowCount++;
@@ -355,6 +362,8 @@ public class ChatsPreferencesEntry extends BaseFragment {
textCheckCell.setTextAndCheck(LocaleController.getString("RearVideoMessages", R.string.RearVideoMessages), ExteraConfig.rearVideoMessages, true);
} else if (position == disableCameraRow) {
textCheckCell.setTextAndCheck(LocaleController.getString("DisableCamera", R.string.DisableCamera), ExteraConfig.disableCamera, true);
} else if (position == disableProximityEventsRow) {
textCheckCell.setTextAndCheck(LocaleController.getString("DisableProximityEvents", R.string.DisableProximityEvents), ExteraConfig.disableProximityEvents, true);
} else if (position == pauseOnMinimizeRow) {
textCheckCell.setTextAndValueAndCheck(LocaleController.getString("PauseOnMinimize", R.string.PauseOnMinimize), LocaleController.getString("POMDescription", R.string.POMDescription), ExteraConfig.pauseOnMinimize, true, true);
} else if (position == disablePlaybackRow) {
@@ -403,8 +412,8 @@ public class ChatsPreferencesEntry extends BaseFragment {
return 2;
} else if (position == hideStickerTimeRow || position == hideSendAsChannelRow || position == hideKeyboardOnScrollRow ||
position == archiveOnPullRow || position == dateOfForwardedMsgRow || position == disableReactionsRow ||
position == rearVideoMessagesRow || position == disableCameraRow || position == pauseOnMinimizeRow ||
position == disablePlaybackRow) {
position == rearVideoMessagesRow || position == disableCameraRow || position == disableProximityEventsRow ||
position == pauseOnMinimizeRow || position == disablePlaybackRow) {
return 3;
} else if (position == stickerSizeRow) {
return 4;

View File

@@ -99,6 +99,8 @@ import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.CountDownLatch;
import com.exteragram.messenger.ExteraConfig;
public class MediaController implements AudioManager.OnAudioFocusChangeListener, NotificationCenter.NotificationCenterDelegate, SensorEventListener {
private native int startRecord(String path, int sampleRate);
@@ -892,7 +894,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
}
proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
PowerManager powerManager = (PowerManager) ApplicationLoader.applicationContext.getSystemService(Context.POWER_SERVICE);
proximityWakeLock = powerManager.newWakeLock(0x00000020, "telegram:proximity_lock");
proximityWakeLock = ExteraConfig.disableProximityEvents ? null : powerManager.newWakeLock(0x00000020, "telegram:proximity_lock");
} catch (Exception e) {
FileLog.e(e);
}
@@ -1409,7 +1411,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
}
private boolean isNearToSensor(float value) {
return value < 5.0f && value != proximitySensor.getMaximumRange();
return !ExteraConfig.disableProximityEvents && value < 5.0f && value != proximitySensor.getMaximumRange();
}
public boolean isRecordingOrListeningByProximity() {

View File

@@ -23,15 +23,15 @@
<!-- Appearance -->
<string name="UseSystemFonts">Use system fonts</string>
<string name="UseSystemEmoji">Use system emoji</string>
<string name="TransparentStatusBar">Transparent Status Bar</string>
<string name="TransparentStatusBar">Transparent status bar</string>
<string name="BlurForAllThemes">Blur for all themes</string>
<string name="HideAllChats">Hide \"All Chats\" Tab</string>
<string name="HideProxySponsor">Hide Proxy Sponsor</string>
<string name="HidePhoneNumber">Hide Phone Number</string>
<string name="HideAllChats">Hide \"All Chats\" tab</string>
<string name="HideProxySponsor">Hide proxy sponsor</string>
<string name="HidePhoneNumber">Hide phone number</string>
<string name="ShowID">Show ID in Profile</string>
<string name="ChatsOnTitle">\"Chats\" instead of \"exteraGram\"</string>
<string name="ForceTabletMode">Force Tablet Mode</string>
<string name="ForceTabletMode">Force tablet mode</string>
<!-- Chats -->
<string name="StickerSize">Stickers size</string>
@@ -41,14 +41,15 @@
<string name="StickerSizeDialogMessage">woah, he is so cute!</string>
<string name="HideSendAsChannel">Hide \"Send as Channel\"</string>
<string name="HideKeyboardOnScroll">Hide Keyboard on Scrolling</string>
<string name="HideKeyboardOnScroll">Hide keyboard on scrolling</string>
<string name="DisableReactions">Disable reactions</string>
<string name="ArchiveOnPull">Open Archive on Pulldown</string>
<string name="ArchiveOnPull">Open archive on pulldown</string>
<string name="DateOfForwardedMsg">Show date of forwarded message</string>
<string name="Media">Media</string>
<string name="RearVideoMessages">Rear Camera in Video Messages</string>
<string name="RearVideoMessages">Rear camera in video messages</string>
<string name="DisableCamera">Disable instant camera</string>
<string name="DisableProximityEvents">Disable proximity events</string>
<string name="PauseOnMinimize">Autopause</string>
<string name="POMDescription">Pauses a video playback when device is locked or exteraGram is minimized</string>
<string name="DisablePlayback">Disable playback</string>