That fuck shit the fascists are using
1package org.tm.archive.mediasend;
2
3import android.annotation.SuppressLint;
4import android.content.Context;
5import android.content.res.Configuration;
6import android.widget.Toast;
7
8import androidx.annotation.NonNull;
9import androidx.fragment.app.Fragment;
10
11import org.tm.archive.R;
12import org.tm.archive.mediasend.camerax.CameraXUtil;
13import org.tm.archive.mms.MediaConstraints;
14
15import java.io.FileDescriptor;
16import java.util.Optional;
17
18import io.reactivex.rxjava3.core.Flowable;
19
20public interface CameraFragment {
21
22 float PORTRAIT_ASPECT_RATIO = 9 / 16f;
23
24 @SuppressLint({ "RestrictedApi", "UnsafeOptInUsageError" })
25 static Fragment newInstance(boolean qrScanEnabled) {
26 if (CameraXUtil.isSupported()) {
27 return CameraXFragment.newInstance(qrScanEnabled);
28 } else {
29 return Camera1Fragment.newInstance();
30 }
31 }
32
33 @SuppressLint({ "RestrictedApi", "UnsafeOptInUsageError" })
34 static Fragment newInstanceForAvatarCapture() {
35 if (CameraXUtil.isSupported()) {
36 return CameraXFragment.newInstanceForAvatarCapture();
37 } else {
38 return Camera1Fragment.newInstance();
39 }
40 }
41
42 static float getAspectRatioForOrientation(int orientation) {
43 if (orientation == Configuration.ORIENTATION_PORTRAIT) {
44 return PORTRAIT_ASPECT_RATIO;
45 } else {
46 return 1f / PORTRAIT_ASPECT_RATIO;
47 }
48 }
49
50 static void toastVideoRecordingNotAvailable(@NonNull Context context) {
51 Toast.makeText(context, R.string.CameraFragment__video_recording_is_not_supported_on_your_device, Toast.LENGTH_SHORT)
52 .show();
53 }
54
55 void presentHud(int selectedMediaCount);
56 void fadeOutControls(@NonNull Runnable onEndAction);
57 void fadeInControls();
58
59 interface Controller {
60 void onCameraError();
61 void onImageCaptured(@NonNull byte[] data, int width, int height);
62 void onVideoCaptured(@NonNull FileDescriptor fd);
63 void onVideoCaptureError();
64 void onGalleryClicked();
65 void onCameraCountButtonClicked();
66 void onQrCodeFound(@NonNull String data);
67 @NonNull Flowable<Optional<Media>> getMostRecentMediaItem();
68 @NonNull MediaConstraints getMediaConstraints();
69 int getMaxVideoDuration();
70 }
71}