diff --git a/TMessagesProj/src/main/java/com/exteragram/messenger/ExteraConfig.java b/TMessagesProj/src/main/java/com/exteragram/messenger/ExteraConfig.java
index 9d01a5942..5f46beb9f 100644
--- a/TMessagesProj/src/main/java/com/exteragram/messenger/ExteraConfig.java
+++ b/TMessagesProj/src/main/java/com/exteragram/messenger/ExteraConfig.java
@@ -32,6 +32,7 @@ public class ExteraConfig {
public static boolean dateOfForwardedMsg;
public static boolean rearVideoMessages;
+ public static boolean disableCamera;
public static boolean pauseOnMinimize;
public static boolean disablePlayback;
@@ -78,6 +79,7 @@ public class ExteraConfig {
dateOfForwardedMsg = preferences.getBoolean("dateOfForwardedMsg", false);
rearVideoMessages = preferences.getBoolean("rearVideoMessages", false);
+ disableCamera = preferences.getBoolean("disableCamera", false);
pauseOnMinimize = preferences.getBoolean("pauseOnMinimize", true);
disablePlayback = preferences.getBoolean("disablePlayback", true);
@@ -208,6 +210,14 @@ public class ExteraConfig {
editor.commit();
}
+ public static void toggleDisableCamera() {
+ disableCamera = !disableCamera;
+ SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("exteraconfig", Activity.MODE_PRIVATE);
+ SharedPreferences.Editor editor = preferences.edit();
+ editor.putBoolean("disableCamera", disableCamera);
+ editor.commit();
+ }
+
public static void togglePauseOnMinimize() {
pauseOnMinimize = !pauseOnMinimize;
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("exteraconfig", Activity.MODE_PRIVATE);
diff --git a/TMessagesProj/src/main/java/com/exteragram/messenger/preferences/ChatsPreferencesEntry.java b/TMessagesProj/src/main/java/com/exteragram/messenger/preferences/ChatsPreferencesEntry.java
index 198de893a..9f6c89ab8 100644
--- a/TMessagesProj/src/main/java/com/exteragram/messenger/preferences/ChatsPreferencesEntry.java
+++ b/TMessagesProj/src/main/java/com/exteragram/messenger/preferences/ChatsPreferencesEntry.java
@@ -36,6 +36,9 @@ import org.telegram.ui.Components.SeekBarView;
import org.telegram.ui.Components.UndoView;
import com.exteragram.messenger.ExteraConfig;
+import com.google.android.gms.vision.text.Text;
+
+import java.util.Locale;
public class ChatsPreferencesEntry extends BaseFragment {
@@ -59,6 +62,7 @@ public class ChatsPreferencesEntry extends BaseFragment {
private int mediaHeaderRow;
private int rearVideoMessagesRow;
+ private int disableCameraRow;
private int pauseOnMinimizeRow;
private int disablePlaybackRow;
private int mediaDividerRow;
@@ -240,6 +244,11 @@ public class ChatsPreferencesEntry extends BaseFragment {
if (view instanceof TextCheckCell) {
((TextCheckCell) view).setChecked(ExteraConfig.rearVideoMessages);
}
+ } else if (position == disableCameraRow) {
+ ExteraConfig.toggleDisableCamera();
+ if (view instanceof TextCheckCell) {
+ ((TextCheckCell) view).setChecked(ExteraConfig.disableCamera);
+ }
} else if (position == pauseOnMinimizeRow) {
ExteraConfig.togglePauseOnMinimize();
if (view instanceof TextCheckCell) {
@@ -276,6 +285,7 @@ public class ChatsPreferencesEntry extends BaseFragment {
mediaHeaderRow = rowCount++;
rearVideoMessagesRow = rowCount++;
+ disableCameraRow = rowCount++;
pauseOnMinimizeRow = rowCount++;
disablePlaybackRow = rowCount++;
mediaDividerRow = rowCount++;
@@ -337,6 +347,8 @@ public class ChatsPreferencesEntry extends BaseFragment {
textCheckCell.setTextAndCheck(LocaleController.getString("DateOfForwardedMsg", R.string.DateOfForwardedMsg), ExteraConfig.dateOfForwardedMsg, true);
} else if (position == rearVideoMessagesRow) {
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 == pauseOnMinimizeRow) {
textCheckCell.setTextAndValueAndCheck(LocaleController.getString("PauseOnMinimize", R.string.PauseOnMinimize), LocaleController.getString("POMDescription", R.string.POMDescription), ExteraConfig.pauseOnMinimize, true, true);
} else if (position == disablePlaybackRow) {
@@ -385,7 +397,7 @@ public class ChatsPreferencesEntry extends BaseFragment {
return 2;
} else if (position == hideStickerTimeRow || position == hideSendAsChannelRow || position == hideKeyboardOnScrollRow ||
position == archiveOnPullRow || position == dateOfForwardedMsgRow || position == rearVideoMessagesRow ||
- position == pauseOnMinimizeRow || position == disablePlaybackRow) {
+ position == disableCameraRow || position == pauseOnMinimizeRow || position == disablePlaybackRow) {
return 3;
} else if (position == stickerSizeRow) {
return 4;
diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java
index 5363f26d5..d881210f3 100644
--- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java
+++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java
@@ -97,6 +97,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import com.exteragram.messenger.ExteraConfig;
+
public class ChatAttachAlertPhotoLayout extends ChatAttachAlert.AttachAlertLayout implements NotificationCenter.NotificationCenterDelegate {
private RecyclerListView cameraPhotoRecyclerView;
@@ -684,7 +686,7 @@ public class ChatAttachAlertPhotoLayout extends ChatAttachAlert.AttachAlertLayou
PhotoViewer.getInstance().setCaption(parentAlert.getCommentTextView().getText());
}
} else {
- if (SharedConfig.inappCamera) {
+ if (SharedConfig.inappCamera && !ExteraConfig.disableCamera) {
openCamera(true);
} else {
if (parentAlert.delegate != null) {
@@ -1618,7 +1620,7 @@ public class ChatAttachAlertPhotoLayout extends ChatAttachAlert.AttachAlertLayou
}
boolean old = deviceHasGoodCamera;
boolean old2 = noCameraPermissions;
- if (!SharedConfig.inappCamera) {
+ if (!SharedConfig.inappCamera || ExteraConfig.disableCamera) {
deviceHasGoodCamera = false;
} else {
if (Build.VERSION.SDK_INT >= 23) {
@@ -1844,7 +1846,7 @@ public class ChatAttachAlertPhotoLayout extends ChatAttachAlert.AttachAlertLayou
for (int a = 0; a < count; a++) {
View child = gridView.getChildAt(a);
if (child instanceof PhotoAttachCameraCell) {
- child.setVisibility(View.INVISIBLE);
+ if (cameraView != null) child.setVisibility(View.INVISIBLE);
break;
}
}
diff --git a/TMessagesProj/src/main/res/values/extera.xml b/TMessagesProj/src/main/res/values/extera.xml
index 15167584b..e342432c7 100644
--- a/TMessagesProj/src/main/res/values/extera.xml
+++ b/TMessagesProj/src/main/res/values/extera.xml
@@ -44,6 +44,7 @@
Media
Rear Camera in Video Messages
+ Disable instant camera
Autopause
Pauses a video playback when device is locked or exteraGram is minimized
Disable playback