2019-06-27 00:10:57 +02:00
|
|
|
package org.thoughtcrime.securesms.mediasend;
|
|
|
|
|
2019-06-30 06:45:59 +02:00
|
|
|
import android.annotation.SuppressLint;
|
2019-06-27 00:10:57 +02:00
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
|
2019-10-28 17:07:28 +01:00
|
|
|
import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil;
|
|
|
|
|
2019-10-09 22:16:23 +02:00
|
|
|
import java.io.FileDescriptor;
|
|
|
|
|
2019-06-27 00:10:57 +02:00
|
|
|
public interface CameraFragment {
|
|
|
|
|
2019-06-30 06:45:59 +02:00
|
|
|
@SuppressLint("RestrictedApi")
|
2019-06-27 00:10:57 +02:00
|
|
|
static Fragment newInstance() {
|
2020-03-27 20:36:24 +01:00
|
|
|
if (CameraXUtil.isSupported()) {
|
2019-06-27 00:10:57 +02:00
|
|
|
return CameraXFragment.newInstance();
|
|
|
|
} else {
|
|
|
|
return Camera1Fragment.newInstance();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-03-02 16:21:57 +01:00
|
|
|
@SuppressLint("RestrictedApi")
|
|
|
|
static Fragment newInstanceForAvatarCapture() {
|
2020-03-27 20:36:24 +01:00
|
|
|
if (CameraXUtil.isSupported()) {
|
2020-03-02 16:21:57 +01:00
|
|
|
return CameraXFragment.newInstanceForAvatarCapture();
|
|
|
|
} else {
|
|
|
|
return Camera1Fragment.newInstance();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-06-27 00:10:57 +02:00
|
|
|
interface Controller {
|
|
|
|
void onCameraError();
|
|
|
|
void onImageCaptured(@NonNull byte[] data, int width, int height);
|
2019-10-09 22:16:23 +02:00
|
|
|
void onVideoCaptured(@NonNull FileDescriptor fd);
|
2019-10-18 17:01:01 +02:00
|
|
|
void onVideoCaptureError();
|
2019-07-18 16:57:52 +02:00
|
|
|
void onGalleryClicked();
|
2019-06-27 00:10:57 +02:00
|
|
|
int getDisplayRotation();
|
2019-07-03 21:07:00 +02:00
|
|
|
void onCameraCountButtonClicked();
|
2019-06-27 00:10:57 +02:00
|
|
|
}
|
|
|
|
}
|