Blacklist Pixel4 from CameraX (#319)
* Blacklist Pixel4 from CameraX * Create isSupported methodmaster
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.PersistentLogger;
|
||||
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.notifications.MessageNotifier;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||
|
@ -374,7 +376,7 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||
|
||||
@SuppressLint("RestrictedApi")
|
||||
private void initializeCameraX() {
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
if (CameraXUtil.isSupported()) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
CameraX.init(this, Camera2AppConfig.create(this));
|
||||
|
|
|
@ -7,13 +7,17 @@ import androidx.annotation.NonNull;
|
|||
import androidx.camera.core.CameraX;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public interface CameraFragment {
|
||||
|
||||
@SuppressLint("RestrictedApi")
|
||||
static Fragment newInstance() {
|
||||
if (Build.VERSION.SDK_INT >= 21 && CameraX.isInitialized()) {
|
||||
if (CameraXUtil.isSupported() && CameraX.isInitialized()) {
|
||||
return CameraXFragment.newInstance();
|
||||
} else {
|
||||
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 org.thoughtcrime.securesms.logging.Log;
|
||||
import org.thoughtcrime.securesms.mediasend.LegacyCameraModels;
|
||||
import org.thoughtcrime.securesms.migrations.LegacyMigrationJob;
|
||||
import org.thoughtcrime.securesms.util.Stopwatch;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
@ -80,6 +82,10 @@ public class CameraXUtil {
|
|||
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) {
|
||||
if (facing == CameraX.LensFacing.FRONT) {
|
||||
return Camera.CameraInfo.CAMERA_FACING_FRONT;
|
||||
|
|
Loading…
Reference in New Issue