That fuck shit the fascists are using
at master 78 lines 2.3 kB view raw
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}