diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-01-10 00:01:27 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-01-10 00:01:27 +0000 |
commit | f4ec9c157071399e52e4ff33827c622dbb4e5b4a (patch) | |
tree | 883701d81daf79e3ea2eb08bf849c4f9753efa1b | |
parent | 8d408e82c15a567ea9c6776082538a4c01dadbdb (diff) | |
parent | 17dc2742ceeda00f2a79a3b37288791959d47293 (diff) | |
download | development-f4ec9c157071399e52e4ff33827c622dbb4e5b4a.tar.gz |
Snap for 9470583 from 17dc2742ceeda00f2a79a3b37288791959d47293 to tm-qpr3-release
Change-Id: Ibf3b18ad28f2290fe3a44458521724cb65fbaf5c
-rw-r--r-- | build/Android.bp | 5 | ||||
-rw-r--r-- | samples/ApiDemos/res/layout/picture_in_picture.xml | 18 | ||||
-rw-r--r-- | samples/ApiDemos/res/layout/picture_in_picture_content.xml | 1 | ||||
-rw-r--r-- | samples/ApiDemos/res/values/strings.xml | 9 | ||||
-rw-r--r-- | samples/ApiDemos/src/com/example/android/apis/app/PictureInPicture.java | 32 | ||||
-rw-r--r-- | samples/ApiDemos/src/com/example/android/apis/view/FixedAspectRatioImageView.java | 9 | ||||
-rw-r--r-- | sdk/build_tools_source.prop_template | 2 | ||||
-rw-r--r-- | tools/motion/OWNERS | 3 |
8 files changed, 75 insertions, 4 deletions
diff --git a/build/Android.bp b/build/Android.bp index a97bafb5d..535cd5a02 100644 --- a/build/Android.bp +++ b/build/Android.bp @@ -161,7 +161,10 @@ genrule { java_device_for_host { name: "build-tools_core-lambda-stubs-device", visibility: ["//visibility:private"], - libs: ["core-lambda-stubs"], + // Use the prebuilt of the stubs irrespective of whether prebuilts are enabled + // in this build configuration. This ensures that this non-host specific library + // is treated consistently on all hosts. + libs: ["prebuilt_core-lambda-stubs"], target: { windows: { enabled: true, diff --git a/samples/ApiDemos/res/layout/picture_in_picture.xml b/samples/ApiDemos/res/layout/picture_in_picture.xml index e33d373e2..3d44bcfd9 100644 --- a/samples/ApiDemos/res/layout/picture_in_picture.xml +++ b/samples/ApiDemos/res/layout/picture_in_picture.xml @@ -102,6 +102,24 @@ </RadioGroup> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="8dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/label_aspect_ratio" /> + + <Spinner + android:id="@+id/aspect_ratio" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" /> + </LinearLayout> + <Button android:id="@+id/enter_pip_button" android:layout_width="wrap_content" diff --git a/samples/ApiDemos/res/layout/picture_in_picture_content.xml b/samples/ApiDemos/res/layout/picture_in_picture_content.xml index bae18db89..8e948b91b 100644 --- a/samples/ApiDemos/res/layout/picture_in_picture_content.xml +++ b/samples/ApiDemos/res/layout/picture_in_picture_content.xml @@ -14,6 +14,7 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> +<!-- Note that app:aspectRatio can be changed dynamically. --> <com.example.android.apis.view.FixedAspectRatioImageView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml index 3e1478aba..9c981ecc1 100644 --- a/samples/ApiDemos/res/values/strings.xml +++ b/samples/ApiDemos/res/values/strings.xml @@ -74,6 +74,15 @@ <string name="label_exit_position">Exit position</string> <string name="label_position_start">Start</string> <string name="label_position_end">End</string> + <string name="label_aspect_ratio">Aspect Ratio</string> + <!-- List of aspect ratio to demo, we use Rational.parseRational to parse what's inside () --> + <string-array name="aspect_ratio_list"> + <item>Extreme wide (21/9)</item> + <item>Video (16/9)</item> + <item>Square (1/1)</item> + <item>Video call (9/16)</item> + <item>Extreme tall (9/21)</item> + </string-array> <string name="activity_keep_clear">App/Activity/Keep Clear Rects</string> <string name="keep_clear_property_set"> diff --git a/samples/ApiDemos/src/com/example/android/apis/app/PictureInPicture.java b/samples/ApiDemos/src/com/example/android/apis/app/PictureInPicture.java index f2c08c870..da06cf7bb 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/PictureInPicture.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/PictureInPicture.java @@ -39,14 +39,18 @@ import android.util.Rational; import android.view.Gravity; import android.view.View; import android.view.WindowManager; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioGroup; +import android.widget.Spinner; import android.widget.Switch; import android.window.OnBackInvokedDispatcher; import com.example.android.apis.R; +import com.example.android.apis.view.FixedAspectRatioImageView; import java.util.ArrayList; import java.util.List; @@ -57,6 +61,7 @@ public class PictureInPicture extends Activity { private static final String EXTRA_ENABLE_SEAMLESS_RESIZE = "seamless_resize"; private static final String EXTRA_ENTER_PIP_ON_BACK = "enter_pip_on_back"; private static final String EXTRA_CURRENT_POSITION = "current_position"; + private static final String EXTRA_ASPECT_RATIO = "aspect_ratio"; private static final int TABLET_BREAK_POINT_DP = 700; @@ -95,13 +100,14 @@ public class PictureInPicture extends Activity { (v, id) -> updateContentPosition(id); private LinearLayout mContainer; - private ImageView mImageView; + private FixedAspectRatioImageView mImageView; private View mControlGroup; private Switch mAutoPipToggle; private Switch mSourceRectHintToggle; private Switch mSeamlessResizeToggle; private Switch mEnterPipOnBackToggle; private RadioGroup mCurrentPositionGroup; + private Spinner mAspectRatioSpinner; private List<RemoteAction> mPipActions; private RemoteAction mCloseAction; @@ -119,6 +125,13 @@ public class PictureInPicture extends Activity { mSeamlessResizeToggle = findViewById(R.id.seamless_resize_toggle); mEnterPipOnBackToggle = findViewById(R.id.enter_pip_on_back); mCurrentPositionGroup = findViewById(R.id.current_position); + mAspectRatioSpinner = findViewById(R.id.aspect_ratio); + + // Initiate views if applicable + final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, + R.array.aspect_ratio_list, android.R.layout.simple_spinner_item); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mAspectRatioSpinner.setAdapter(adapter); // Attach listeners mImageView.addOnLayoutChangeListener(mOnLayoutChangeListener); @@ -135,6 +148,22 @@ public class PictureInPicture extends Activity { } }); mCurrentPositionGroup.setOnCheckedChangeListener(mOnPositionChangedListener); + mAspectRatioSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { + final String rawText = parent.getItemAtPosition(position).toString(); + final String textToParse = rawText.substring( + rawText.indexOf('(') + 1, + rawText.indexOf(')')); + mImageView.addOnLayoutChangeListener(mOnLayoutChangeListener); + mImageView.setAspectRatio(Rational.parseRational(textToParse)); + } + + @Override + public void onNothingSelected(AdapterView<?> parent) { + // Do nothing. + } + }); findViewById(R.id.enter_pip_button).setOnClickListener(v -> enterPictureInPictureMode()); findViewById(R.id.enter_content_pip_button).setOnClickListener(v -> enterContentPip()); @@ -152,6 +181,7 @@ public class PictureInPicture extends Activity { ? R.id.radio_current_end : R.id.radio_current_start; mCurrentPositionGroup.check(positionId); + mAspectRatioSpinner.setSelection(1); updateLayout(getResources().getConfiguration()); } diff --git a/samples/ApiDemos/src/com/example/android/apis/view/FixedAspectRatioImageView.java b/samples/ApiDemos/src/com/example/android/apis/view/FixedAspectRatioImageView.java index f8344879f..b505bb3ac 100644 --- a/samples/ApiDemos/src/com/example/android/apis/view/FixedAspectRatioImageView.java +++ b/samples/ApiDemos/src/com/example/android/apis/view/FixedAspectRatioImageView.java @@ -29,7 +29,7 @@ import com.example.android.apis.R; * one of the dimension is in exact while the other one in wrap_content size mode. */ public class FixedAspectRatioImageView extends ImageView { - private final Rational mAspectRatio; + private Rational mAspectRatio; public FixedAspectRatioImageView(Context context, AttributeSet attrs) { super(context, attrs); @@ -43,6 +43,13 @@ public class FixedAspectRatioImageView extends ImageView { } } + public void setAspectRatio(Rational aspectRatio) { + if (!mAspectRatio.equals(aspectRatio)) { + mAspectRatio = aspectRatio; + requestLayout(); + } + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); diff --git a/sdk/build_tools_source.prop_template b/sdk/build_tools_source.prop_template index 8490e5927..d2dad004b 100644 --- a/sdk/build_tools_source.prop_template +++ b/sdk/build_tools_source.prop_template @@ -1,3 +1,3 @@ Pkg.UserSrc=false -Pkg.Revision=${PLATFORM_SDK_VERSION}.0.0 +Pkg.Revision=${PLATFORM_SDK_VERSION}.0.2 #Pkg.Revision=33.0.0 rc4 diff --git a/tools/motion/OWNERS b/tools/motion/OWNERS new file mode 100644 index 000000000..545b822d0 --- /dev/null +++ b/tools/motion/OWNERS @@ -0,0 +1,3 @@ +cinek@google.com +gallmann@google.com +michschn@google.com |