Rename shouldUseDefaultUnfoldTransition attribute and update docs

Renames the shouldUseDefaultUnfoldTransition attribute
name to use more generic
shouldUseDefaultDeviceStateChangeTransition name as
the transition could be used on different form factors
depending on the OEMs.

Test: manual
Fixes: 200730817
Fixes: 200698833
Change-Id: I1c5d755f76f455475471fc893d4748c6adf51b8c
This commit is contained in:
Nick Chameyev
2021-09-23 17:13:40 +00:00
parent a7efb5e025
commit 10b13e8505
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
}
}