Skip to content

Commit ba41fcd

Browse files
authored
Disable screenshot based on flag disableScreenshot (#5768)
1 parent ca20fbd commit ba41fcd

4 files changed

Lines changed: 23 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121

2222
- Sort Overdue list based on return score when feature `sort_overdue_based_on_return_score` is enabled
2323

24+
### Fixes
25+
26+
- Screenshot blocking is now controlled via Gradle property `disableScreenshot`
27+
2428
## 2026.03.02
2529

2630
### Internal

app/src/main/java/org/simple/clinic/main/TheActivity.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.content.Intent
66
import android.content.res.Configuration
77
import android.graphics.Color
88
import android.os.Bundle
9+
import android.view.WindowManager
910
import androidx.activity.SystemBarStyle
1011
import androidx.activity.enableEdgeToEdge
1112
import androidx.appcompat.app.AppCompatActivity
@@ -14,6 +15,7 @@ import androidx.work.WorkManager
1415
import io.github.inflationx.viewpump.ViewPumpContextWrapper
1516
import io.reactivex.Observable
1617
import io.reactivex.disposables.CompositeDisposable
18+
import org.simple.clinic.BuildConfig
1719
import org.simple.clinic.ClinicApp
1820
import org.simple.clinic.activity.permissions.ActivityPermissionResult
1921
import org.simple.clinic.deeplink.DeepLinkResult
@@ -206,6 +208,11 @@ class TheActivity : AppCompatActivity(), TheActivityUi {
206208
@SuppressLint("CheckResult")
207209
override fun onPostCreate(savedInstanceState: Bundle?) {
208210
super.onPostCreate(savedInstanceState)
211+
212+
if (BuildConfig.DISABLE_SCREENSHOT) {
213+
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
214+
}
215+
209216
if (savedInstanceState == null) {
210217
disposables.addAll(
211218
syncSetup.run(),

app/src/main/java/org/simple/clinic/setup/SetupActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import android.content.Intent
55
import android.content.res.Configuration
66
import android.graphics.Color
77
import android.os.Bundle
8+
import android.view.WindowManager
89
import androidx.activity.SystemBarStyle
910
import androidx.activity.enableEdgeToEdge
1011
import androidx.appcompat.app.AppCompatActivity
1112
import com.google.android.material.dialog.MaterialAlertDialogBuilder
1213
import io.github.inflationx.viewpump.ViewPumpContextWrapper
1314
import io.reactivex.Observable
15+
import org.simple.clinic.BuildConfig
1416
import org.simple.clinic.ClinicApp
1517
import org.simple.clinic.R
1618
import org.simple.clinic.activity.permissions.ActivityPermissionResult
@@ -86,6 +88,10 @@ class SetupActivity : AppCompatActivity(), UiActions {
8688
)
8789
super.onCreate(savedInstanceState)
8890

91+
if (BuildConfig.DISABLE_SCREENSHOT) {
92+
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
93+
}
94+
8995
handleBackPress {
9096
if (!router.onBackPressed()) {
9197
isEnabled = false

app/src/main/java/org/simple/clinic/widgets/BottomSheetActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import android.os.Bundle
44
import android.view.LayoutInflater
55
import android.view.View
66
import android.view.ViewGroup
7+
import android.view.WindowManager
78
import androidx.appcompat.app.AppCompatActivity
9+
import org.simple.clinic.BuildConfig
810
import org.simple.clinic.databinding.BottomSheetBinding
911
import org.simple.clinic.util.disablePendingTransitions
1012
import org.simple.clinic.util.handleBackPress
@@ -30,6 +32,10 @@ abstract class BottomSheetActivity : AppCompatActivity() {
3032
override fun onCreate(savedInstanceState: Bundle?) {
3133
disablePendingTransitions()
3234
super.onCreate(savedInstanceState)
35+
if (BuildConfig.DISABLE_SCREENSHOT) {
36+
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
37+
}
38+
3339
bottomSheetBinding = BottomSheetBinding.inflate(layoutInflater)
3440
super.setContentView(bottomSheetBinding.root)
3541

0 commit comments

Comments
 (0)