From 74078842232173691e7e1cef93e977b7ce680ce4 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Fri, 25 Nov 2022 19:33:29 +0000 Subject: [PATCH] android: protect screen (#1425) * android: protect screen * hide screen, translations --- .../app/src/main/java/chat/simplex/app/MainActivity.kt | 8 ++++++++ .../src/main/java/chat/simplex/app/model/SimpleXAPI.kt | 2 ++ .../simplex/app/views/usersettings/PrivacySettings.kt | 2 ++ apps/android/app/src/main/res/values-de/strings.xml | 1 + apps/android/app/src/main/res/values-ru/strings.xml | 1 + apps/android/app/src/main/res/values/strings.xml | 1 + 6 files changed, 15 insertions(+) diff --git a/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt b/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt index 9a2c4139ae..1b834d514d 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.os.Parcelable import android.os.SystemClock.elapsedRealtime import android.util.Log +import android.view.WindowManager import androidx.activity.compose.setContent import androidx.activity.viewModels import androidx.compose.animation.core.* @@ -73,6 +74,13 @@ class MainActivity: FragmentActivity() { processIntent(intent, m) processExternalIntent(intent, m) } + if (m.controller.appPrefs.privacyProtectScreen.get()) { + Log.d(TAG, "onCreate: set FLAG_SECURE") + window.setFlags( + WindowManager.LayoutParams.FLAG_SECURE, + WindowManager.LayoutParams.FLAG_SECURE + ) + } setContent { SimpleXTheme { Surface( diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 5b7bd726b8..4426eb7082 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -101,6 +101,7 @@ class AppPreferences(val context: Context) { val performLA = mkBoolPreference(SHARED_PREFS_PERFORM_LA, false) val laNoticeShown = mkBoolPreference(SHARED_PREFS_LA_NOTICE_SHOWN, false) val webrtcIceServers = mkStrPreference(SHARED_PREFS_WEBRTC_ICE_SERVERS, null) + val privacyProtectScreen = mkBoolPreference(SHARED_PREFS_PRIVACY_PROTECT_SCREEN, true) val privacyAcceptImages = mkBoolPreference(SHARED_PREFS_PRIVACY_ACCEPT_IMAGES, true) val privacyTransferImagesInline = mkBoolPreference(SHARED_PREFS_PRIVACY_TRANSFER_IMAGES_INLINE, false) val privacyLinkPreviews = mkBoolPreference(SHARED_PREFS_PRIVACY_LINK_PREVIEWS, true) @@ -203,6 +204,7 @@ class AppPreferences(val context: Context) { private const val SHARED_PREFS_PERFORM_LA = "PerformLA" private const val SHARED_PREFS_LA_NOTICE_SHOWN = "LANoticeShown" private const val SHARED_PREFS_WEBRTC_ICE_SERVERS = "WebrtcICEServers" + private const val SHARED_PREFS_PRIVACY_PROTECT_SCREEN = "PrivacyProtectScreen" private const val SHARED_PREFS_PRIVACY_ACCEPT_IMAGES = "PrivacyAcceptImages" private const val SHARED_PREFS_PRIVACY_TRANSFER_IMAGES_INLINE = "PrivacyTransferImagesInline" private const val SHARED_PREFS_PRIVACY_LINK_PREVIEWS = "PrivacyLinkPreviews" diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/PrivacySettings.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/PrivacySettings.kt index 1fa77a0db6..6c8defb8a3 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/PrivacySettings.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/PrivacySettings.kt @@ -29,6 +29,8 @@ fun PrivacySettingsView( AppBarTitle(stringResource(R.string.your_privacy)) SectionView(stringResource(R.string.settings_section_title_device)) { ChatLockItem(chatModel.performLA, setPerformLA) + SectionDivider() + SettingsPreferenceItem(Icons.Outlined.VisibilityOff, stringResource(R.string.protect_app_screen), chatModel.controller.appPrefs.privacyProtectScreen) } SectionSpacer() diff --git a/apps/android/app/src/main/res/values-de/strings.xml b/apps/android/app/src/main/res/values-de/strings.xml index add44dab6f..17b5627f44 100644 --- a/apps/android/app/src/main/res/values-de/strings.xml +++ b/apps/android/app/src/main/res/values-de/strings.xml @@ -609,6 +609,7 @@ Datenschutz & Sicherheit Meine Privatsphäre + ***Protect app screen Bilder automatisch akzeptieren Bilder schneller übertragen Link-Vorschau senden diff --git a/apps/android/app/src/main/res/values-ru/strings.xml b/apps/android/app/src/main/res/values-ru/strings.xml index bec5319494..fc92183f67 100644 --- a/apps/android/app/src/main/res/values-ru/strings.xml +++ b/apps/android/app/src/main/res/values-ru/strings.xml @@ -609,6 +609,7 @@ Конфиденциальность Конфиденциальность + Защитить экран приложения Автоприем изображений Передавать изображения быстрее Отправлять картинки ссылок diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index 386f715cb3..d2c912b421 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -609,6 +609,7 @@ Privacy & security Your privacy + Protect app screen Auto-accept images Transfer images faster Send link previews