Merge "Rename shouldUseDefaultUnfoldTransition attribute and update docs" into sc-v2-dev

This commit is contained in:
Nick Chameyev
2021-09-28 10:06:27 +00:00
committed by Android (Google) Code Review
6 changed files with 37 additions and 32 deletions

View File

@@ -1298,7 +1298,7 @@ package android {
field public static final int shortcutLongLabel = 16844074; // 0x101052a
field public static final int shortcutShortLabel = 16844073; // 0x1010529
field public static final int shouldDisableView = 16843246; // 0x10101ee
field public static final int shouldUseDefaultUnfoldTransition;
field public static final int shouldUseDefaultDeviceStateChangeTransition;
field public static final int showAsAction = 16843481; // 0x10102d9
field public static final int showDefault = 16843258; // 0x10101fa
field public static final int showDividers = 16843561; // 0x1010329
@@ -6927,7 +6927,7 @@ package android.app {
method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
method public CharSequence loadLabel(android.content.pm.PackageManager);
method public android.graphics.drawable.Drawable loadThumbnail(android.content.pm.PackageManager);
method public boolean shouldUseDefaultUnfoldTransition();
method public boolean shouldUseDefaultDeviceStateChangeTransition();
method public boolean supportsMultipleDisplays();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.WallpaperInfo> CREATOR;

View File

@@ -81,7 +81,7 @@ public final class WallpaperInfo implements Parcelable {
final int mContextDescriptionResource;
final boolean mShowMetadataInPreview;
final boolean mSupportsAmbientMode;
final boolean mShouldUseDefaultUnfoldTransition;
final boolean mShouldUseDefaultDeviceStateChangeTransition;
final String mSettingsSliceUri;
final boolean mSupportMultipleDisplays;
@@ -146,9 +146,9 @@ public final class WallpaperInfo implements Parcelable {
mSupportsAmbientMode = sa.getBoolean(
com.android.internal.R.styleable.Wallpaper_supportsAmbientMode,
false);
mShouldUseDefaultUnfoldTransition = sa.getBoolean(
com.android.internal.R.styleable.Wallpaper_shouldUseDefaultUnfoldTransition,
true);
mShouldUseDefaultDeviceStateChangeTransition = sa.getBoolean(
com.android.internal.R.styleable
.Wallpaper_shouldUseDefaultDeviceStateChangeTransition, true);
mSettingsSliceUri = sa.getString(
com.android.internal.R.styleable.Wallpaper_settingsSliceUri);
mSupportMultipleDisplays = sa.getBoolean(
@@ -175,7 +175,7 @@ public final class WallpaperInfo implements Parcelable {
mSupportsAmbientMode = source.readInt() != 0;
mSettingsSliceUri = source.readString();
mSupportMultipleDisplays = source.readInt() != 0;
mShouldUseDefaultUnfoldTransition = source.readInt() != 0;
mShouldUseDefaultDeviceStateChangeTransition = source.readInt() != 0;
mService = ResolveInfo.CREATOR.createFromParcel(source);
}
@@ -399,23 +399,25 @@ public final class WallpaperInfo implements Parcelable {
}
/**
* Returns whether this wallpaper should receive default zooming updates when unfolding.
* If set to false the wallpaper will not receive zoom events when folding or unfolding
* a foldable device, so it can implement its own unfold transition.
* Returns whether this wallpaper should receive default zooming updates when the device
* changes its state (e.g. when folding or unfolding a foldable device).
* If set to false the wallpaper will not receive zoom events when changing the device state,
* so it can implement its own transition instead.
* <p>
* This corresponds to the value {@link
* android.R.styleable#Wallpaper_shouldUseDefaultUnfoldTransition} in the XML description
* of the wallpaper.
* android.R.styleable#Wallpaper_shouldUseDefaultDeviceStateChangeTransition} in the
* XML description of the wallpaper.
* <p>
* The default value is {@code true}.
*
* @see android.R.styleable#Wallpaper_shouldUseDefaultUnfoldTransition
* @return {@code true} if wallpaper should receive default fold/unfold transition updates
* @see android.R.styleable#Wallpaper_shouldUseDefaultDeviceStateChangeTransition
* @return {@code true} if wallpaper should receive default device state change
* transition updates
*
* @attr ref android.R.styleable#Wallpaper_shouldUseDefaultUnfoldTransition
* @attr ref android.R.styleable#Wallpaper_shouldUseDefaultDeviceStateChangeTransition
*/
public boolean shouldUseDefaultUnfoldTransition() {
return mShouldUseDefaultUnfoldTransition;
public boolean shouldUseDefaultDeviceStateChangeTransition() {
return mShouldUseDefaultDeviceStateChangeTransition;
}
public void dump(Printer pw, String prefix) {
@@ -448,7 +450,7 @@ public final class WallpaperInfo implements Parcelable {
dest.writeInt(mSupportsAmbientMode ? 1 : 0);
dest.writeString(mSettingsSliceUri);
dest.writeInt(mSupportMultipleDisplays ? 1 : 0);
dest.writeInt(mShouldUseDefaultUnfoldTransition ? 1 : 0);
dest.writeInt(mShouldUseDefaultDeviceStateChangeTransition ? 1 : 0);
mService.writeToParcel(dest, flags);
}

View File

@@ -8371,16 +8371,18 @@
@hide @SystemApi -->
<attr name="supportsAmbientMode" format="boolean" />
<!-- Indicates that this wallpaper service should receive zoom updates when unfolding.
<!-- Indicates that this wallpaper service should receive zoom transition updates when
changing the device state (e.g. when folding or unfolding a foldable device).
When this value is set to true
{@link android.service.wallpaper.WallpaperService.Engine} could receive zoom updates
when folding or unfolding a foldable device. Wallpapers receive zoom updates using
before or after changing the device state. Wallpapers receive zoom updates using
{@link android.service.wallpaper.WallpaperService.Engine#onZoomChanged(float)} and
zoom rendering should be handled manually. Default value is true.
When set to false wallpapers can implement custom folding/unfolding behavior
by listening to {@link android.hardware.Sensor#TYPE_HINGE_ANGLE}.
Corresponds to {@link android.app.WallpaperInfo#shouldUseDefaultUnfoldTransition()} -->
<attr name="shouldUseDefaultUnfoldTransition" format="boolean" />
zoom rendering should be handled manually. Zoom updates are delivered only when
{@link android.service.wallpaper.WallpaperService.Engine} is created and not destroyed.
Default value is true.
Corresponds to
{@link android.app.WallpaperInfo#shouldUseDefaultDeviceStateChangeTransition()} -->
<attr name="shouldUseDefaultDeviceStateChangeTransition" format="boolean" />
<!-- Uri that specifies a settings Slice for this wallpaper. -->
<attr name="settingsSliceUri" format="string"/>

View File

@@ -3221,7 +3221,7 @@
<eat-comment />
<staging-public-group type="attr" first-id="0x01ff0000">
<public name="shouldUseDefaultUnfoldTransition" />
<public name="shouldUseDefaultDeviceStateChangeTransition" />
</staging-public-group>
<staging-public-group type="id" first-id="0x01fe0000">

View File

@@ -40,8 +40,8 @@ class WallpaperController @Inject constructor(private val wallpaperManager: Wall
this.wallpaperInfo = wallpaperInfo
}
private val shouldUseDefaultUnfoldTransition: Boolean
get() = wallpaperInfo?.shouldUseDefaultUnfoldTransition()
private val shouldUseDefaultDeviceStateChangeTransition: Boolean
get() = wallpaperInfo?.shouldUseDefaultDeviceStateChangeTransition()
?: true
fun setNotificationShadeZoom(zoomOut: Float) {
@@ -50,7 +50,7 @@ class WallpaperController @Inject constructor(private val wallpaperManager: Wall
}
fun setUnfoldTransitionZoom(zoomOut: Float) {
if (shouldUseDefaultUnfoldTransition) {
if (shouldUseDefaultDeviceStateChangeTransition) {
unfoldTransitionZoomOut = zoomOut
updateZoom()
}

View File

@@ -91,7 +91,7 @@ class WallpaperControllerTest : SysuiTestCase() {
@Test
fun setUnfoldTransitionZoom_defaultUnfoldTransitionIsDisabled_doesNotUpdateWallpaperZoom() {
wallaperController.onWallpaperInfoUpdated(createWallpaperInfo(
useDefaultUnfoldTransition = false
useDefaultTransition = false
))
wallaperController.setUnfoldTransitionZoom(0.5f)
@@ -136,9 +136,10 @@ class WallpaperControllerTest : SysuiTestCase() {
verify(wallpaperManager).setWallpaperZoomOut(any(), anyFloat())
}
private fun createWallpaperInfo(useDefaultUnfoldTransition: Boolean = true): WallpaperInfo {
private fun createWallpaperInfo(useDefaultTransition: Boolean = true): WallpaperInfo {
val info = mock(WallpaperInfo::class.java)
whenever(info.shouldUseDefaultUnfoldTransition()).thenReturn(useDefaultUnfoldTransition)
whenever(info.shouldUseDefaultDeviceStateChangeTransition())
.thenReturn(useDefaultTransition)
return info
}
}