Skip to content

Instantly share code, notes, and snippets.

@gekkehenkie11
Created May 3, 2015 19:52
Show Gist options
  • Select an option

  • Save gekkehenkie11/57d4e24c49d3b63c0a09 to your computer and use it in GitHub Desktop.

Select an option

Save gekkehenkie11/57d4e24c49d3b63c0a09 to your computer and use it in GitHub Desktop.
package com.facebook.camera.f;
import android.app.Activity;
import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.RectF;
import android.hardware.Camera.Size;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import com.facebook.camera.views.c;
import com.facebook.debug.a.a;
import com.facebook.i;
import java.util.Iterator;
import java.util.List;
public class s
{
private static final String a = s.class.getSimpleName();
public static float a(float paramFloat1, float paramFloat2)
{
float f;
if (paramFloat2 - paramFloat1 >= 270.0F) {
f = paramFloat2 - 360.0F;
}
do
{
return f;
f = paramFloat2;
} while (paramFloat2 - paramFloat1 > -270.0F);
return paramFloat2 + 360.0F;
}
public static int a(int paramInt1, int paramInt2)
{
if (paramInt1 > paramInt2) {
return paramInt2;
}
if (paramInt1 < 0) {
return 0;
}
return paramInt1;
}
public static Camera.Size a(List<Camera.Size> paramList, int paramInt1, int paramInt2)
{
return a(paramList, paramInt1, paramInt2, v.a);
}
public static Camera.Size a(List<Camera.Size> paramList, int paramInt1, int paramInt2, int paramInt3)
{
int i = 0;
if (paramList == null) {
return null;
}
float f1 = paramInt2 / paramInt1;
Iterator localIterator = paramList.iterator();
paramList = null;
Object localObject2 = null;
int k = 0;
label32:
Object localObject1;
int j;
while (localIterator.hasNext())
{
Camera.Size localSize = (Camera.Size)localIterator.next();
float f2 = localSize.height / localSize.width;
int m = localSize.width * localSize.height;
if ((paramInt3 != v.b) || ((localSize.width <= paramInt1) && (localSize.height <= paramInt2)))
{
localObject1 = localObject2;
j = k;
if (m > k)
{
localObject1 = localObject2;
j = k;
if (Math.abs(f2 - f1) <= 0.01F)
{
localObject1 = localSize;
j = m;
}
}
if (m <= i) {
break label199;
}
i = m;
paramList = localSize;
}
}
label199:
for (;;)
{
localObject2 = localObject1;
k = j;
break label32;
if (localObject2 != null) {
return (Camera.Size)localObject2;
}
if (paramList == null) {
break;
}
a.d(a, "Can not find a size that respects the desired proportions");
return paramList;
}
}
public static Camera.Size a(List<Camera.Size> paramList, Point paramPoint)
{
return a(paramList, paramPoint.x, paramPoint.y);
}
public static void a(Matrix paramMatrix, boolean paramBoolean, int paramInt1, int paramInt2, int paramInt3)
{
if (paramBoolean) {}
for (float f = -1.0F;; f = 1.0F)
{
paramMatrix.setScale(f, 1.0F);
paramMatrix.postRotate(paramInt1);
paramMatrix.postScale(paramInt2 / 2000.0F, paramInt3 / 2000.0F);
paramMatrix.postTranslate(paramInt2 / 2.0F, paramInt3 / 2.0F);
return;
}
}
public static void a(RectF paramRectF, Rect paramRect)
{
paramRect.left = Math.round(paramRectF.left);
paramRect.top = Math.round(paramRectF.top);
paramRect.right = Math.round(paramRectF.right);
paramRect.bottom = Math.round(paramRectF.bottom);
}
public static void a(w paramw1, w paramw2, c paramc1, c paramc2)
{
switch (t.a[paramw1.ordinal()])
{
default:
if (paramw2 == w.LANDSCAPE)
{
paramc2.a(u.b);
paramc1.a(u.d);
return;
}
if (paramw2 != w.PORTRAIT)
{
if (paramw2 == w.REVERSE_LANDSCAPE)
{
paramc2.a(u.c);
paramc1.a(u.a);
return;
}
paramc2.a(u.b);
paramc1.a(u.a);
return;
}
break;
case 2:
if (paramw2 != w.LANDSCAPE)
{
if (paramw2 == w.PORTRAIT)
{
paramc2.a(u.c);
paramc1.a(u.a);
return;
}
if (paramw2 == w.REVERSE_LANDSCAPE)
{
paramc2.a(u.d);
paramc1.a(u.c);
return;
}
paramc2.a(u.a);
paramc1.a(u.c);
return;
}
break;
case 3:
if (paramw2 == w.LANDSCAPE)
{
paramc2.a(u.d);
paramc1.a(u.c);
return;
}
if (paramw2 == w.PORTRAIT)
{
paramc2.a(u.b);
paramc1.a(u.d);
return;
}
if (paramw2 != w.REVERSE_LANDSCAPE)
{
paramc2.a(u.d);
paramc1.a(u.b);
return;
}
break;
case 4:
if (paramw2 == w.LANDSCAPE)
{
paramc2.a(u.c);
paramc1.a(u.a);
return;
}
if (paramw2 == w.PORTRAIT)
{
paramc2.a(u.b);
paramc1.a(u.a);
return;
}
if (paramw2 == w.REVERSE_LANDSCAPE)
{
paramc2.a(u.b);
paramc1.a(u.d);
return;
}
break;
}
paramc2.a(u.a);
paramc1.a(u.b);
}
public static boolean a(Activity paramActivity, View paramView, RelativeLayout paramRelativeLayout1, RelativeLayout paramRelativeLayout2, Point paramPoint, Rect paramRect, int paramInt)
{
paramActivity = paramActivity.getWindowManager().getDefaultDisplay();
int n = paramActivity.getWidth();
int i1 = paramActivity.getHeight();
paramActivity = (RelativeLayout.LayoutParams)paramRelativeLayout2.getLayoutParams();
int j;
int i;
int k;
int m;
if (paramActivity.height > 0)
{
if (i1 < n)
{
a.d("CameraActivity", "resizePreview: vertical layout, wide screen. Aborting resize.");
return false;
}
j = i1 - paramPoint.x * n / paramPoint.y;
i = paramActivity.height;
k = i * 80 / 100;
if (j < k)
{
paramActivity.height = k;
paramInt = (i1 - k) * paramPoint.y / paramPoint.x;
paramActivity = (RelativeLayout.LayoutParams)paramView.findViewById(i.preview_padding_side_1).getLayoutParams();
paramActivity.width = ((n - paramInt) / 2);
((RelativeLayout.LayoutParams)paramView.findViewById(i.preview_padding_side_2).getLayoutParams()).width = (n - paramInt - paramActivity.width);
paramView.requestLayout();
return true;
}
m = Math.max(j, k);
k = i * 120 / 100;
if (m <= k) {
break label832;
}
m = i1 - k;
paramInt = paramPoint.x * n * (paramInt + 100) / (paramPoint.y * 100);
if (paramInt > m)
{
j = m;
i = i1 - m;
paramInt = k;
label257:
k = j * paramPoint.y / paramPoint.x;
paramRelativeLayout1 = (RelativeLayout.LayoutParams)paramRelativeLayout1.getLayoutParams();
j = (k - n) / 2;
k = k - n - j;
paramRelativeLayout1.setMargins(-j, 0, -k, 0);
paramRect.left += j;
paramRect.right += k;
}
}
for (;;)
{
paramActivity.height = paramInt;
if (paramInt >= i) {
break;
}
((RelativeLayout.LayoutParams)paramView.findViewById(i.preview_padding_bar).getLayoutParams()).height = (i - paramInt);
break;
k = i1 - paramInt;
if (k > i * 2)
{
i = k / 2;
j = paramInt;
paramInt = i;
i = k;
break label257;
}
j = paramInt;
paramInt = i;
i = k;
break label257;
if (paramActivity.width <= 0) {
break;
}
if (i1 > n)
{
a.d("CameraActivity", "resizePreview: horizontal layout, tall screen. Aborting resize.");
return false;
}
j = n - paramPoint.x * i1 / paramPoint.y;
i = paramActivity.width;
k = i * 80 / 100;
if (j < k)
{
paramActivity.width = k;
paramInt = (n - k) * paramPoint.y / paramPoint.x;
paramActivity = (RelativeLayout.LayoutParams)paramView.findViewById(i.preview_padding_side_1).getLayoutParams();
paramActivity.height = ((i1 - paramInt) / 2);
((RelativeLayout.LayoutParams)paramView.findViewById(i.preview_padding_side_2).getLayoutParams()).height = (i1 - paramInt - paramActivity.height);
break;
}
m = Math.max(j, k);
k = i * 120 / 100;
if (m > k)
{
m = n - k;
paramInt = paramPoint.x * i1 * (paramInt + 100) / (paramPoint.y * 100);
if (paramInt > m)
{
j = m;
i = n - m;
paramInt = k;
label651:
k = j * paramPoint.y / paramPoint.x;
paramRelativeLayout1 = (RelativeLayout.LayoutParams)paramRelativeLayout1.getLayoutParams();
j = (k - i1) / 2;
k = k - i1 - j;
paramRelativeLayout1.setMargins(0, -j, 0, -k);
paramRect.top += j;
paramRect.bottom += k;
}
}
for (;;)
{
paramActivity.width = paramInt;
if (paramInt >= i) {
break;
}
((RelativeLayout.LayoutParams)paramView.findViewById(i.preview_padding_bar).getLayoutParams()).width = (i - paramInt);
break;
k = n - paramInt;
if (k > i * 2)
{
i = k / 2;
j = paramInt;
paramInt = i;
i = k;
break label651;
}
j = paramInt;
paramInt = i;
i = k;
break label651;
paramInt = m;
i = j;
}
label832:
paramInt = m;
i = j;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment