summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-03-20 20:40:36 +0000
committerEric Erfanian <erfanian@google.com>2017-03-20 20:40:36 +0000
commit30ccc4f3aa6da94f0bb8a01a880a6353b883b263 (patch)
tree2f55365aaf87df9ba7c1fe0be56a7d0988eadf30 /java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java
parent06b6b56e9eaa91ebf757ea641e38a9c885fa40bd (diff)
Revert "Update AOSP Dialer source from internal google3 repository at cl/150622237"
This reverts commit 06b6b56e9eaa91ebf757ea641e38a9c885fa40bd. Change-Id: Ida8c5ee67669524dc63b9adc60a6dd392cb9b9a6
Diffstat (limited to 'java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java')
-rw-r--r--java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java86
1 files changed, 0 insertions, 86 deletions
diff --git a/java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java b/java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java
deleted file mode 100644
index ad7d94d95..000000000
--- a/java/com/android/incallui/answer/impl/FixedAspectSurfaceView.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui.answer.impl;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.util.AttributeSet;
-import android.view.SurfaceView;
-import android.view.View;
-import com.android.dialer.common.Assert;
-
-/**
- * A SurfaceView that maintains its aspect ratio to be a desired target value.
- *
- * <p>The FixedAspectSurfaceView will not be able to maintain the requested aspect ratio if both the
- * width and the height are exactly determined by the layout. To avoid this, ensure that either the
- * height or the width is adjustable by the view; for example, by setting the layout parameters to
- * be WRAP_CONTENT for the dimension that is best adjusted to maintain the aspect ratio.
- */
-public class FixedAspectSurfaceView extends SurfaceView {
-
- /** Desired width/height ratio */
- private float mAspectRatio;
-
- private final boolean scaleWidth;
- private final boolean scaleHeight;
-
- public FixedAspectSurfaceView(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- // Get initial aspect ratio from custom attributes
- TypedArray a =
- context.getTheme().obtainStyledAttributes(attrs, R.styleable.FixedAspectSurfaceView, 0, 0);
- scaleHeight = a.getBoolean(R.styleable.FixedAspectSurfaceView_scaleHeight, false);
- scaleWidth = a.getBoolean(R.styleable.FixedAspectSurfaceView_scaleWidth, false);
- Assert.checkArgument(scaleHeight != scaleWidth, "Must either scale width or height");
- setAspectRatio(a.getFloat(R.styleable.FixedAspectSurfaceView_aspectRatio, 1.f));
- a.recycle();
- }
-
- /**
- * Set the desired aspect ratio for this view.
- *
- * @param aspect the desired width/height ratio in the current UI orientation. Must be a positive
- * value.
- */
- public void setAspectRatio(float aspect) {
- Assert.checkArgument(aspect >= 0, "Aspect ratio must be positive");
- mAspectRatio = aspect;
- requestLayout();
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int width = MeasureSpec.getSize(widthMeasureSpec);
- int height = MeasureSpec.getSize(heightMeasureSpec);
-
- // Do the scaling
- if (scaleWidth) {
- width = (int) (height * mAspectRatio);
- } else if (scaleHeight) {
- height = (int) (width / mAspectRatio);
- }
-
- // Override width/height if needed for EXACTLY and AT_MOST specs
- width = View.resolveSizeAndState(width, widthMeasureSpec, 0);
- height = View.resolveSizeAndState(height, heightMeasureSpec, 0);
-
- // Finally set the calculated dimensions
- setMeasuredDimension(width, height);
- }
-}