mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-10 08:08:34 +00:00
Blacklist Pixel4 from CameraX (#319)
* Blacklist Pixel4 from CameraX * Create isSupported method
This commit is contained in:
parent
3c4efdd8f9
commit
70636fb4a7
@ -57,6 +57,8 @@ import org.thoughtcrime.securesms.logging.CustomSignalProtocolLogger;
|
|||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.logging.PersistentLogger;
|
import org.thoughtcrime.securesms.logging.PersistentLogger;
|
||||||
import org.thoughtcrime.securesms.logging.UncaughtExceptionLogger;
|
import org.thoughtcrime.securesms.logging.UncaughtExceptionLogger;
|
||||||
|
import org.thoughtcrime.securesms.mediasend.LegacyCameraModels;
|
||||||
|
import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil;
|
||||||
import org.thoughtcrime.securesms.migrations.ApplicationMigrations;
|
import org.thoughtcrime.securesms.migrations.ApplicationMigrations;
|
||||||
import org.thoughtcrime.securesms.notifications.MessageNotifier;
|
import org.thoughtcrime.securesms.notifications.MessageNotifier;
|
||||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||||
@ -374,7 +376,7 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
|
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
private void initializeCameraX() {
|
private void initializeCameraX() {
|
||||||
if (Build.VERSION.SDK_INT >= 21) {
|
if (CameraXUtil.isSupported()) {
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
CameraX.init(this, Camera2AppConfig.create(this));
|
CameraX.init(this, Camera2AppConfig.create(this));
|
||||||
|
@ -7,13 +7,17 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.camera.core.CameraX;
|
import androidx.camera.core.CameraX;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil;
|
||||||
|
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public interface CameraFragment {
|
public interface CameraFragment {
|
||||||
|
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
static Fragment newInstance() {
|
static Fragment newInstance() {
|
||||||
if (Build.VERSION.SDK_INT >= 21 && CameraX.isInitialized()) {
|
if (CameraXUtil.isSupported() && CameraX.isInitialized()) {
|
||||||
return CameraXFragment.newInstance();
|
return CameraXFragment.newInstance();
|
||||||
} else {
|
} else {
|
||||||
return Camera1Fragment.newInstance();
|
return Camera1Fragment.newInstance();
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
package org.thoughtcrime.securesms.mediasend;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public final class LegacyCameraModels {
|
||||||
|
private static final Set<String> LEGACY_MODELS = new HashSet<String>() {{
|
||||||
|
add("Pixel 4");
|
||||||
|
add("Pixel 4 XL");
|
||||||
|
}};
|
||||||
|
|
||||||
|
private LegacyCameraModels() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isLegacyCameraModel() {
|
||||||
|
return LEGACY_MODELS.contains(Build.MODEL);
|
||||||
|
}
|
||||||
|
}
|
@ -25,6 +25,8 @@ import androidx.camera.core.ImageCapture;
|
|||||||
import androidx.camera.core.ImageProxy;
|
import androidx.camera.core.ImageProxy;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
import org.thoughtcrime.securesms.mediasend.LegacyCameraModels;
|
||||||
|
import org.thoughtcrime.securesms.migrations.LegacyMigrationJob;
|
||||||
import org.thoughtcrime.securesms.util.Stopwatch;
|
import org.thoughtcrime.securesms.util.Stopwatch;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@ -80,6 +82,10 @@ public class CameraXUtil {
|
|||||||
return new ImageResult(data, width, height);
|
return new ImageResult(data, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isSupported() {
|
||||||
|
return Build.VERSION.SDK_INT >= 21 && !LegacyCameraModels.isLegacyCameraModel();
|
||||||
|
}
|
||||||
|
|
||||||
public static int toCameraDirectionInt(@Nullable CameraX.LensFacing facing) {
|
public static int toCameraDirectionInt(@Nullable CameraX.LensFacing facing) {
|
||||||
if (facing == CameraX.LensFacing.FRONT) {
|
if (facing == CameraX.LensFacing.FRONT) {
|
||||||
return Camera.CameraInfo.CAMERA_FACING_FRONT;
|
return Camera.CameraInfo.CAMERA_FACING_FRONT;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user