package com.wesley.camera2.util; import android.annotation.TargetApi; import android.app.Activity; import android.app.Fragment; import android.content.pm.PackageManager; import android.support.v13.app.FragmentCompat; import android.support.v4.app.ActivityCompat; import android.util.Size; import android.view.Surface; /** * Created by wesley on 2016/03/01. */ public class CameraUtil { @TargetApi(21) public static Size chooseVideoSize(Size[] choices) { for (Size size : choices) { if (size.getWidth() == size.getHeight() * 4 / 3 && size.getWidth() <= 720) { return size; } } return choices[choices.length - 1]; } public static boolean shouldShowRequestPermissionRationale(Fragment context, String[] permissions) { for (String permission : permissions) { if (FragmentCompat.shouldShowRequestPermissionRationale(context, permission)) { return true; } } return false; } public static boolean hasPermissionsGranted(Activity context, String[]permissions) { for (String permission : permissions) { if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { return false; } } return true; } public static int getOrientation(int rotation, boolean upsideDown) { if (upsideDown) { switch (rotation) { case Surface.ROTATION_0: return 270; case Surface.ROTATION_90: return 180; case Surface.ROTATION_180: return 90; case Surface.ROTATION_270: return 0; } } else { switch (rotation) { case Surface.ROTATION_0: return 90; case Surface.ROTATION_90: return 0; case Surface.ROTATION_180: return 270; case Surface.ROTATION_270: return 180; } } return 0; } }