Skip to content

Commit

Permalink
Blacklist Pixel4 from CameraX (#319)
Browse files Browse the repository at this point in the history
* Blacklist Pixel4 from CameraX

* Create isSupported method
  • Loading branch information
alex-signal committed Oct 28, 2019
1 parent 3c4efdd commit 70636fb
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 2 deletions.
4 changes: 3 additions & 1 deletion src/org/thoughtcrime/securesms/ApplicationContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@
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;
Expand Down Expand Up @@ -374,7 +376,7 @@ private void initializeBlobProvider() {

@SuppressLint("RestrictedApi")
private void initializeCameraX() {
if (Build.VERSION.SDK_INT >= 21) {
if (CameraXUtil.isSupported()) {
new Thread(() -> {
try {
CameraX.init(this, Camera2AppConfig.create(this));
Expand Down
6 changes: 5 additions & 1 deletion src/org/thoughtcrime/securesms/mediasend/CameraFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@
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();
Expand Down
20 changes: 20 additions & 0 deletions src/org/thoughtcrime/securesms/mediasend/LegacyCameraModels.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
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;
Expand Down Expand Up @@ -80,6 +82,10 @@ public static ImageResult toJpeg(@NonNull ImageProxy image, int rotation, boolea
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;
Expand Down

0 comments on commit 70636fb

Please sign in to comment.