That fuck shit the fascists are using
1package org.tm.archive.mediasend;
2
3import android.view.View;
4import android.view.Window;
5import android.view.WindowManager;
6
7import androidx.annotation.NonNull;
8import androidx.camera.core.CameraSelector;
9import androidx.camera.core.ImageCapture;
10
11import org.tm.archive.mediasend.camerax.CameraXController;
12import org.tm.archive.mediasend.camerax.SignalCameraController;
13
14final class CameraXSelfieFlashHelper {
15
16 private static final float MAX_SCREEN_BRIGHTNESS = 1f;
17 private static final float MAX_SELFIE_FLASH_ALPHA = 0.9f;
18
19 private final Window window;
20 private final CameraXController camera;
21 private final View selfieFlash;
22
23 private float brightnessBeforeFlash;
24 private boolean inFlash;
25 private int flashMode = -1;
26
27 CameraXSelfieFlashHelper(@NonNull Window window,
28 @NonNull CameraXController camera,
29 @NonNull View selfieFlash)
30 {
31 this.window = window;
32 this.camera = camera;
33 this.selfieFlash = selfieFlash;
34 }
35
36 void onWillTakePicture() {
37 if (!inFlash && shouldUseViewBasedFlash()) {
38 flashMode = camera.getImageCaptureFlashMode();
39 camera.setImageCaptureFlashMode(ImageCapture.FLASH_MODE_OFF);
40 }
41 }
42
43 void startFlash() {
44 if (inFlash || !shouldUseViewBasedFlash()) return;
45 inFlash = true;
46
47 WindowManager.LayoutParams params = window.getAttributes();
48
49 brightnessBeforeFlash = params.screenBrightness;
50 params.screenBrightness = MAX_SCREEN_BRIGHTNESS;
51 window.setAttributes(params);
52
53 selfieFlash.setAlpha(MAX_SELFIE_FLASH_ALPHA);
54 }
55
56 void endFlash() {
57 if (!inFlash) return;
58
59 WindowManager.LayoutParams params = window.getAttributes();
60
61 params.screenBrightness = brightnessBeforeFlash;
62 window.setAttributes(params);
63
64 camera.setImageCaptureFlashMode(flashMode);
65 flashMode = -1;
66
67 selfieFlash.setAlpha(MAX_SELFIE_FLASH_ALPHA);
68
69 inFlash = false;
70 }
71
72 private boolean shouldUseViewBasedFlash() {
73 CameraSelector cameraSelector = camera.getCameraSelector();
74
75 return (camera.getImageCaptureFlashMode() == ImageCapture.FLASH_MODE_ON || flashMode == ImageCapture.FLASH_MODE_ON) &&
76 cameraSelector == CameraSelector.DEFAULT_FRONT_CAMERA;
77 }
78}