Merge changes Ic5b0df22,Iae979c52 into androidx-master-dev
* changes:
Moved CameraX bind methods to core-lifecycle
Added camera-lifecycle module
diff --git a/activity/activity/src/main/java/androidx/activity/ComponentActivity.java b/activity/activity/src/main/java/androidx/activity/ComponentActivity.java
index cee2d27..56a1cc3 100644
--- a/activity/activity/src/main/java/androidx/activity/ComponentActivity.java
+++ b/activity/activity/src/main/java/androidx/activity/ComponentActivity.java
@@ -177,7 +177,9 @@
*/
@Override
@Nullable
+ @SuppressWarnings("deprecation")
public final Object onRetainNonConfigurationInstance() {
+ // Maintain backward compatibility.
Object custom = onRetainCustomNonConfigurationInstance();
ViewModelStore viewModelStore = mViewModelStore;
diff --git a/appcompat/src/main/java/androidx/appcompat/app/AppCompatActivity.java b/appcompat/src/main/java/androidx/appcompat/app/AppCompatActivity.java
index 8bd4720..2340c83 100644
--- a/appcompat/src/main/java/androidx/appcompat/app/AppCompatActivity.java
+++ b/appcompat/src/main/java/androidx/appcompat/app/AppCompatActivity.java
@@ -258,6 +258,7 @@
return getDelegate().requestWindowFeature(featureId);
}
+ @SuppressWarnings("deprecation")
@Override
public void supportInvalidateOptionsMenu() {
getDelegate().invalidateOptionsMenu();
@@ -487,6 +488,7 @@
NavUtils.navigateUpTo(this, upIntent);
}
+ @SuppressWarnings("deprecation")
@Override
public void onContentChanged() {
// Call onSupportContentChanged() for legacy reasons
diff --git a/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegate.java b/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegate.java
index 1353953..61a1936 100644
--- a/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegate.java
+++ b/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegate.java
@@ -118,6 +118,7 @@
/**
* @deprecated Use {@link AppCompatDelegate#MODE_NIGHT_AUTO_TIME} instead
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static final int MODE_NIGHT_AUTO = MODE_NIGHT_AUTO_TIME;
@@ -167,6 +168,7 @@
private static final Object sActiveDelegatesLock = new Object();
/** @hide */
+ @SuppressWarnings("deprecation")
@RestrictTo(LIBRARY_GROUP_PREFIX)
@IntDef({MODE_NIGHT_NO, MODE_NIGHT_YES, MODE_NIGHT_AUTO_TIME, MODE_NIGHT_FOLLOW_SYSTEM,
MODE_NIGHT_UNSPECIFIED, MODE_NIGHT_AUTO_BATTERY})
@@ -543,6 +545,7 @@
* @see #setLocalNightMode(int)
* @see #getDefaultNightMode()
*/
+ @SuppressWarnings("deprecation")
public static void setDefaultNightMode(@NightMode int mode) {
switch (mode) {
case MODE_NIGHT_NO:
diff --git a/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java b/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
index 95b2cf3..bfa0f2b 100644
--- a/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
+++ b/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
@@ -2182,6 +2182,7 @@
return applyDayNight(true, null);
}
+ @SuppressWarnings("deprecation")
private boolean applyDayNight(final boolean allowRecreation,
@Nullable Configuration configOverlay) {
if (mIsDestroyed) {
@@ -2222,6 +2223,7 @@
return mLocalNightMode;
}
+ @SuppressWarnings("deprecation")
@ApplyableNightMode
int mapNightMode(@NightMode final int mode) {
switch (mode) {
diff --git a/biometric/src/main/AndroidManifest.xml b/biometric/src/main/AndroidManifest.xml
index d61555c..c567445 100644
--- a/biometric/src/main/AndroidManifest.xml
+++ b/biometric/src/main/AndroidManifest.xml
@@ -18,6 +18,7 @@
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
+ <!--suppress DeprecatedClassUsageInspection -->
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<application>
diff --git a/browser/src/main/java/androidx/browser/browseractions/BrowserActionItem.java b/browser/src/main/java/androidx/browser/browseractions/BrowserActionItem.java
index 451aeb8..8b04a7e 100644
--- a/browser/src/main/java/androidx/browser/browseractions/BrowserActionItem.java
+++ b/browser/src/main/java/androidx/browser/browseractions/BrowserActionItem.java
@@ -33,6 +33,7 @@
*
* @deprecated Browser Actions are deprecated as of release 1.2.0.
*/
+@SuppressWarnings("deprecation")
@Deprecated
public class BrowserActionItem {
private final String mTitle;
diff --git a/browser/src/main/java/androidx/browser/browseractions/BrowserActionsIntent.java b/browser/src/main/java/androidx/browser/browseractions/BrowserActionsIntent.java
index 9ddd684..94e55c9 100644
--- a/browser/src/main/java/androidx/browser/browseractions/BrowserActionsIntent.java
+++ b/browser/src/main/java/androidx/browser/browseractions/BrowserActionsIntent.java
@@ -53,6 +53,7 @@
*
* @deprecated Browser Actions are deprecated as of release 1.2.0.
*/
+@SuppressWarnings("deprecation")
@Deprecated
public class BrowserActionsIntent {
private static final String TAG = "BrowserActions";
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
index 8a04e7d..155e76c 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
@@ -116,5 +116,5 @@
val VIEWPAGER2 = Version("1.1.0-alpha01")
val WEAR = Version("1.1.0-alpha01")
val WEBKIT = Version("1.2.0-alpha01")
- val WORK = Version("2.3.0-alpha04")
+ val WORK = Version("2.3.0-beta01")
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt b/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
index 298f17d..3990dda 100644
--- a/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
@@ -76,7 +76,7 @@
ignore(LibraryGroups.FRAGMENT.group, "fragment-lint")
ignore(LibraryGroups.FRAGMENT.group, "fragment-testing-lint")
ignore(LibraryGroups.FRAGMENT.group, "fragment-truth")
- prebuilts(LibraryGroups.FRAGMENT, "1.2.0-rc01")
+ prebuilts(LibraryGroups.FRAGMENT, "1.2.0-rc02")
prebuilts(LibraryGroups.GRIDLAYOUT, "1.0.0")
prebuilts(LibraryGroups.HEIFWRITER, "1.0.0")
prebuilts(LibraryGroups.INTERPOLATOR, "1.0.0")
diff --git a/busytown/androidx_test_dependent_apks.sh b/busytown/androidx_test_dependent_apks.sh
index ba3c49e..c9d2f1f 100755
--- a/busytown/androidx_test_dependent_apks.sh
+++ b/busytown/androidx_test_dependent_apks.sh
@@ -10,4 +10,4 @@
cd "$SCRIPT_DIR/../../.."
OUT_DIR=out DIST_DIR="$DIST_DIR" ANDROID_HOME=`pwd`/prebuilts/fullsdk-linux frameworks/support/gradlew -p frameworks/support --no-daemon buildTestApks -Pandroidx.enableAffectedModuleDetection -Pandroidx.dependentProjects
-OUT_DIR=out/ui DIST_DIR="$DIST_DIR/ui" ANDROID_HOME=`pwd`/prebuilts/fullsdk-linux frameworks/support/ui/gradlew -p frameworks/support/ui --no-daemon buildTestApks -Pandroidx.enableAffectedModuleDetection -Pandroidx.dependentProjects'
+OUT_DIR=out/ui DIST_DIR="$DIST_DIR/ui" ANDROID_HOME=`pwd`/prebuilts/fullsdk-linux frameworks/support/ui/gradlew -p frameworks/support/ui --no-daemon buildTestApks -Pandroidx.enableAffectedModuleDetection -Pandroidx.dependentProjects
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/CameraUtil.java b/camera/camera-testing/src/main/java/androidx/camera/testing/CameraUtil.java
index e9c00f0..f18b2e8 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/CameraUtil.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/CameraUtil.java
@@ -264,6 +264,7 @@
*
* @return false if no camera
*/
+ @SuppressWarnings("deprecation")
public static boolean deviceHasCamera() {
// TODO Think about external camera case,
// especially no built in camera but there might be some external camera
diff --git a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/CaptureViewOnTouchListener.java b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/CaptureViewOnTouchListener.java
index 57223a2..f770e0b 100644
--- a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/CaptureViewOnTouchListener.java
+++ b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/CaptureViewOnTouchListener.java
@@ -222,6 +222,7 @@
private void broadcastPicture(File file) {
if (Build.VERSION.SDK_INT < 24) {
+ @SuppressWarnings("deprecation")
Intent intent = new Intent(Camera.ACTION_NEW_PICTURE);
intent.setData(Uri.fromFile(file));
mCameraView.getContext().sendBroadcast(intent);
@@ -234,6 +235,7 @@
private void broadcastVideo(File file) {
if (Build.VERSION.SDK_INT < 24) {
+ @SuppressWarnings("deprecation")
Intent intent = new Intent(Camera.ACTION_NEW_VIDEO);
intent.setData(Uri.fromFile(file));
mCameraView.getContext().sendBroadcast(intent);
diff --git a/core/core/src/main/java/androidx/core/accessibilityservice/AccessibilityServiceInfoCompat.java b/core/core/src/main/java/androidx/core/accessibilityservice/AccessibilityServiceInfoCompat.java
index a8214fd..31d258c 100644
--- a/core/core/src/main/java/androidx/core/accessibilityservice/AccessibilityServiceInfoCompat.java
+++ b/core/core/src/main/java/androidx/core/accessibilityservice/AccessibilityServiceInfoCompat.java
@@ -191,13 +191,13 @@
* @param packageManager The current package manager
* @return The localized description.
*/
+ @SuppressWarnings("deprecation")
@Nullable
public static String loadDescription(
@NonNull AccessibilityServiceInfo info, @NonNull PackageManager packageManager) {
if (Build.VERSION.SDK_INT >= 16) {
return info.loadDescription(packageManager);
} else {
- //noinspection deprecation
return info.getDescription();
}
}
@@ -282,11 +282,11 @@
* @see #CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY
* @see #CAPABILITY_CAN_FILTER_KEY_EVENTS
*/
+ @SuppressWarnings("deprecation")
public static int getCapabilities(@NonNull AccessibilityServiceInfo info) {
if (Build.VERSION.SDK_INT >= 18) {
return info.getCapabilities();
} else {
- //noinspection deprecation
if (info.getCanRetrieveWindowContent()) {
return CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT;
}
diff --git a/core/core/src/main/java/androidx/core/content/ContextCompat.java b/core/core/src/main/java/androidx/core/content/ContextCompat.java
index 597f879..6b0af66 100644
--- a/core/core/src/main/java/androidx/core/content/ContextCompat.java
+++ b/core/core/src/main/java/androidx/core/content/ContextCompat.java
@@ -448,6 +448,7 @@
* The value 0 is an invalid identifier.
* @return Drawable An object that can be used to draw this resource.
*/
+ @SuppressWarnings("deprecation")
@Nullable
public static Drawable getDrawable(@NonNull Context context, @DrawableRes int id) {
if (Build.VERSION.SDK_INT >= 21) {
@@ -485,6 +486,7 @@
* @throws android.content.res.Resources.NotFoundException if the given ID
* does not exist.
*/
+ @SuppressWarnings("deprecation")
@Nullable
public static ColorStateList getColorStateList(@NonNull Context context,
@ColorRes int id) {
@@ -508,6 +510,7 @@
* @throws android.content.res.Resources.NotFoundException if the given ID
* does not exist.
*/
+ @SuppressWarnings("deprecation")
@ColorInt
public static int getColor(@NonNull Context context, @ColorRes int id) {
if (Build.VERSION.SDK_INT >= 23) {
diff --git a/core/core/src/main/java/androidx/core/content/pm/PackageInfoCompat.java b/core/core/src/main/java/androidx/core/content/pm/PackageInfoCompat.java
index bcd55b3..b7e7452 100644
--- a/core/core/src/main/java/androidx/core/content/pm/PackageInfoCompat.java
+++ b/core/core/src/main/java/androidx/core/content/pm/PackageInfoCompat.java
@@ -30,11 +30,11 @@
*
* @see PackageInfo#getLongVersionCode()
*/
+ @SuppressWarnings("deprecation")
public static long getLongVersionCode(@NonNull PackageInfo info) {
if (Build.VERSION.SDK_INT >= 28) {
return info.getLongVersionCode();
}
- //noinspection deprecation
return info.versionCode;
}
diff --git a/core/core/src/main/java/androidx/core/content/pm/PermissionInfoCompat.java b/core/core/src/main/java/androidx/core/content/pm/PermissionInfoCompat.java
index 5c3401f..642d767 100644
--- a/core/core/src/main/java/androidx/core/content/pm/PermissionInfoCompat.java
+++ b/core/core/src/main/java/androidx/core/content/pm/PermissionInfoCompat.java
@@ -67,13 +67,13 @@
/**
* Return the base permission type of a {@link PermissionInfo}.
*/
+ @SuppressWarnings("deprecation")
@SuppressLint("WrongConstant") // for "PermissionInfo.PROTECTION_MASK_BASE"
@Protection
public static int getProtection(@NonNull PermissionInfo permissionInfo) {
if (Build.VERSION.SDK_INT >= 28) {
return permissionInfo.getProtection();
} else {
- //noinspection deprecation
return permissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE;
}
}
@@ -81,13 +81,13 @@
/**
* Return the additional protection flags of a {@link PermissionInfo}.
*/
+ @SuppressWarnings("deprecation")
@SuppressLint("WrongConstant") // for "~PermissionInfo.PROTECTION_MASK_BASE"
@ProtectionFlags
public static int getProtectionFlags(@NonNull PermissionInfo permissionInfo) {
if (Build.VERSION.SDK_INT >= 28) {
return permissionInfo.getProtectionFlags();
} else {
- //noinspection deprecation
return permissionInfo.protectionLevel & ~PermissionInfo.PROTECTION_MASK_BASE;
}
}
diff --git a/core/core/src/main/java/androidx/core/database/CursorWindowCompat.java b/core/core/src/main/java/androidx/core/database/CursorWindowCompat.java
index 855c25c..01a48df 100644
--- a/core/core/src/main/java/androidx/core/database/CursorWindowCompat.java
+++ b/core/core/src/main/java/androidx/core/database/CursorWindowCompat.java
@@ -36,6 +36,7 @@
* <p>
* Prior to Android P, this method will return a CursorWindow of size defined by the platform.
*/
+ @SuppressWarnings("deprecation")
@NonNull
public static CursorWindow create(@Nullable String name, long windowSizeBytes) {
if (Build.VERSION.SDK_INT >= 28) {
@@ -43,7 +44,6 @@
} else if (Build.VERSION.SDK_INT >= 15) {
return new CursorWindow(name);
} else {
- //noinspection deprecation
return new CursorWindow(false);
}
}
diff --git a/core/core/src/main/java/androidx/core/os/ConfigurationCompat.java b/core/core/src/main/java/androidx/core/os/ConfigurationCompat.java
index 423c1fd..e6b4617 100644
--- a/core/core/src/main/java/androidx/core/os/ConfigurationCompat.java
+++ b/core/core/src/main/java/androidx/core/os/ConfigurationCompat.java
@@ -35,6 +35,7 @@
*
* @return The locale list.
*/
+ @SuppressWarnings("deprecation")
@NonNull
public static LocaleListCompat getLocales(@NonNull Configuration configuration) {
if (SDK_INT >= 24) {
diff --git a/core/core/src/main/java/androidx/core/text/HtmlCompat.java b/core/core/src/main/java/androidx/core/text/HtmlCompat.java
index 8d9b932..b132c00 100644
--- a/core/core/src/main/java/androidx/core/text/HtmlCompat.java
+++ b/core/core/src/main/java/androidx/core/text/HtmlCompat.java
@@ -141,12 +141,12 @@
* Invokes {@link Html#fromHtml(String, int)} on API 24 and newer, otherwise {@code flags} are
* ignored and {@link Html#fromHtml(String)} is used.
*/
+ @SuppressWarnings("deprecation")
@NonNull
public static Spanned fromHtml(@NonNull String source, @FromHtmlFlags int flags) {
if (Build.VERSION.SDK_INT >= 24) {
return Html.fromHtml(source, flags);
}
- //noinspection deprecation
return Html.fromHtml(source);
}
@@ -155,13 +155,13 @@
* otherwise {@code flags} are ignored and
* {@link Html#fromHtml(String, ImageGetter, TagHandler)} is used.
*/
+ @SuppressWarnings("deprecation")
@NonNull
public static Spanned fromHtml(@NonNull String source, @FromHtmlFlags int flags,
@Nullable ImageGetter imageGetter, @Nullable TagHandler tagHandler) {
if (Build.VERSION.SDK_INT >= 24) {
return Html.fromHtml(source, flags, imageGetter, tagHandler);
}
- //noinspection deprecation
return Html.fromHtml(source, imageGetter, tagHandler);
}
@@ -169,12 +169,12 @@
* Invokes {@link Html#toHtml(Spanned, int)} on API 24 or newer, otherwise {@code options} are
* ignored and {@link Html#toHtml(Spanned)} is used.
*/
+ @SuppressWarnings("deprecation")
@NonNull
public static String toHtml(@NonNull Spanned text, @ToHtmlOptions int options) {
if (Build.VERSION.SDK_INT >= 24) {
return Html.toHtml(text, options);
}
- //noinspection deprecation
return Html.toHtml(text);
}
diff --git a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
index 9e7c758..93e5a90 100644
--- a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
+++ b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
@@ -238,6 +238,7 @@
*
* @deprecated Use {@link AccessibilityEvent#appendRecord(AccessibilityRecord)} directly.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static void appendRecord(AccessibilityEvent event, AccessibilityRecordCompat record) {
event.appendRecord((AccessibilityRecord) record.getImpl());
@@ -251,6 +252,7 @@
*
* @deprecated Use {@link AccessibilityEvent#getRecord(int)} directly.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static AccessibilityRecordCompat getRecord(AccessibilityEvent event, int index) {
return new AccessibilityRecordCompat(event.getRecord(index));
@@ -271,6 +273,7 @@
*
* @deprecated Use the {@link AccessibilityEvent} directly as {@link AccessibilityRecord}.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static AccessibilityRecordCompat asRecord(AccessibilityEvent event) {
return new AccessibilityRecordCompat(event);
diff --git a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityManagerCompat.java b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityManagerCompat.java
index 432e67c..acdf35e 100644
--- a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityManagerCompat.java
+++ b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityManagerCompat.java
@@ -40,6 +40,7 @@
* @deprecated Use {@link AccessibilityManager#addAccessibilityStateChangeListener(
* AccessibilityManager.AccessibilityStateChangeListener)} directly.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
AccessibilityStateChangeListener listener) {
@@ -60,6 +61,7 @@
* @deprecated Use {@link AccessibilityManager#removeAccessibilityStateChangeListener(
* AccessibilityManager.AccessibilityStateChangeListener)} directly.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
AccessibilityStateChangeListener listener) {
@@ -70,6 +72,7 @@
new AccessibilityStateChangeListenerWrapper(listener));
}
+ @SuppressWarnings("deprecation")
private static class AccessibilityStateChangeListenerWrapper
implements AccessibilityManager.AccessibilityStateChangeListener {
AccessibilityStateChangeListener mListener;
@@ -232,6 +235,7 @@
* @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly
* instead of this listener.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static abstract class AccessibilityStateChangeListenerCompat
implements AccessibilityStateChangeListener {
diff --git a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
index 1d3090f..48a81ec 100644
--- a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
+++ b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
@@ -948,6 +948,7 @@
* @return If the item is a heading.
* @deprecated Use {@link AccessibilityNodeInfoCompat#isHeading()}
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public boolean isHeading() {
if (Build.VERSION.SDK_INT >= 19) {
@@ -1612,6 +1613,7 @@
* @param object The info to wrap.
* @return A wrapper for if the object is not null, null otherwise.
*/
+ @SuppressWarnings("deprecation")
static AccessibilityNodeInfoCompat wrapNonNullInstance(Object object) {
if (object != null) {
return new AccessibilityNodeInfoCompat(object);
@@ -3817,6 +3819,7 @@
*
* @return {@code true} if the node is a heading, {@code false} otherwise.
*/
+ @SuppressWarnings("deprecation")
public boolean isHeading() {
if (Build.VERSION.SDK_INT >= 28) {
return mInfo.isHeading();
@@ -4017,6 +4020,7 @@
return true;
}
+ @SuppressWarnings("deprecation")
@NonNull
@Override
public String toString() {
diff --git a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityRecordCompat.java b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityRecordCompat.java
index 2e8ced2..e3fe75c 100644
--- a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityRecordCompat.java
+++ b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityRecordCompat.java
@@ -64,6 +64,7 @@
*
* @deprecated Use {@link AccessibilityRecord#obtain(AccessibilityRecord)} directly.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static AccessibilityRecordCompat obtain(AccessibilityRecordCompat record) {
return new AccessibilityRecordCompat(AccessibilityRecord.obtain(record.mRecord));
@@ -77,6 +78,7 @@
*
* @deprecated Use {@link AccessibilityRecord#obtain()} directly.
*/
+ @SuppressWarnings("deprecation")
@Deprecated
public static AccessibilityRecordCompat obtain() {
return new AccessibilityRecordCompat(AccessibilityRecord.obtain());
diff --git a/cursoradapter/src/main/java/androidx/cursoradapter/widget/CursorAdapter.java b/cursoradapter/src/main/java/androidx/cursoradapter/widget/CursorAdapter.java
index 5984051..f0fc461 100644
--- a/cursoradapter/src/main/java/androidx/cursoradapter/widget/CursorAdapter.java
+++ b/cursoradapter/src/main/java/androidx/cursoradapter/widget/CursorAdapter.java
@@ -179,6 +179,7 @@
@SuppressWarnings("deprecation")
void init(Context context, Cursor c, int flags) {
+ // Maintained for compatibility.
if ((flags & FLAG_AUTO_REQUERY) == FLAG_AUTO_REQUERY) {
flags |= FLAG_REGISTER_CONTENT_OBSERVER;
mAutoRequery = true;
diff --git a/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java b/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java
index 4b67eba..19e58ae 100644
--- a/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java
+++ b/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java
@@ -4018,11 +4018,13 @@
*
* @param tag the name of the tag.
*/
+ @SuppressWarnings("deprecation")
@Nullable
private ExifAttribute getExifAttribute(@NonNull String tag) {
if (tag == null) {
throw new NullPointerException("tag shouldn't be null");
}
+ // Maintain compatibility.
if (TAG_ISO_SPEED_RATINGS.equals(tag)) {
if (DEBUG) {
Log.d(TAG, "getExifAttribute: Replacing TAG_ISO_SPEED_RATINGS with "
@@ -4137,10 +4139,12 @@
* @param tag the name of the tag.
* @param value the value of the tag.
*/
+ @SuppressWarnings("deprecation")
public void setAttribute(@NonNull String tag, @Nullable String value) {
if (tag == null) {
throw new NullPointerException("tag shouldn't be null");
}
+ // Maintain compatibility.
if (TAG_ISO_SPEED_RATINGS.equals(tag)) {
if (DEBUG) {
Log.d(TAG, "setAttribute: Replacing TAG_ISO_SPEED_RATINGS with "
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
index b7dfc34..2d8f4df 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
@@ -47,6 +47,7 @@
import androidx.leanback.widget.ParallaxTarget;
import androidx.leanback.widget.RecyclerViewParallax;
import androidx.leanback.widget.VerticalGridView;
+import androidx.test.filters.FlakyTest;
import androidx.test.filters.LargeTest;
import androidx.test.filters.SdkSuppress;
import androidx.test.platform.app.InstrumentationRegistry;
@@ -472,6 +473,7 @@
fragmentOnStartWithVideoInternal(DetailsSupportFragmentWithVideo2.class);
}
+ @FlakyTest
@Test
public void navigateBetweenRowsAndTitle() throws Throwable {
SingleSupportFragmentTestActivity activity =
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
index 23b0ef3..574cd15 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
@@ -54,6 +54,7 @@
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.FlakyTest;
import androidx.test.filters.LargeTest;
import androidx.test.filters.SdkSuppress;
import androidx.test.platform.app.InstrumentationRegistry;
@@ -4342,6 +4343,7 @@
assertEquals(0, mGridView.getSelectedPosition());
}
+ @FlakyTest
@Test
public void testExtraLayoutSpace() throws Throwable {
Intent intent = new Intent();
@@ -5389,6 +5391,7 @@
mGridView.findViewHolderForAdapterPosition(29).itemView, lastChild);
}
+ @FlakyTest
@Test
public void testAnimateOutBlockLayout() throws Throwable {
Intent intent = new Intent();
diff --git a/leanback/src/main/java/androidx/leanback/app/BackgroundFragment.java b/leanback/src/main/java/androidx/leanback/app/BackgroundFragment.java
index d02edee..e9e4615 100644
--- a/leanback/src/main/java/androidx/leanback/app/BackgroundFragment.java
+++ b/leanback/src/main/java/androidx/leanback/app/BackgroundFragment.java
@@ -21,6 +21,7 @@
/**
* Fragment used by the background manager.
+ *
* @hide
*/
@RestrictTo(LIBRARY_GROUP_PREFIX)
diff --git a/leanback/src/main/java/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.java b/leanback/src/main/java/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.java
index 74105c5..ce3ef92 100644
--- a/leanback/src/main/java/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.java
+++ b/leanback/src/main/java/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.java
@@ -26,7 +26,7 @@
/**
* An abstract {@link Presenter} for rendering a detailed description of an
- * item. Typically this Presenter will be used in a {@link DetailsOverviewRowPresenter}
+ * item. Typically this Presenter will be used in a {@link FullWidthDetailsOverviewRowPresenter}
* or {@link PlaybackControlsRowPresenter}.
*
* <p>Subclasses must override {@link #onBindDescription} to implement the data
diff --git a/leanback/src/main/java/androidx/leanback/widget/picker/Picker.java b/leanback/src/main/java/androidx/leanback/widget/picker/Picker.java
index c367f35..cd2a421 100644
--- a/leanback/src/main/java/androidx/leanback/widget/picker/Picker.java
+++ b/leanback/src/main/java/androidx/leanback/widget/picker/Picker.java
@@ -99,6 +99,7 @@
* @return The separator that will be populated between all the Picker columns.
* @deprecated Use {@link #getSeparators()}
*/
+ @Deprecated
public final CharSequence getSeparator() {
return mSeparators.get(0);
}
diff --git a/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java b/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java
index c0fa895..40d565a 100644
--- a/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java
+++ b/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java
@@ -1327,6 +1327,7 @@
* @return this
* @deprecated Use {@link #setErrorMessage(int, CharSequence)} instead.
*/
+ @Deprecated
public Builder setErrorMessage(CharSequence errorMessage) {
mErrorMessage = errorMessage;
return this;
diff --git a/media/src/main/java/androidx/media/AudioManagerCompat.java b/media/src/main/java/androidx/media/AudioManagerCompat.java
index 4186245..948aa82 100644
--- a/media/src/main/java/androidx/media/AudioManagerCompat.java
+++ b/media/src/main/java/androidx/media/AudioManagerCompat.java
@@ -75,6 +75,7 @@
* AudioManager#AUDIOFOCUS_REQUEST_GRANTED}.
* @throws NullPointerException if passed a null argument
*/
+ @SuppressWarnings("deprecation")
public static int requestAudioFocus(
@NonNull AudioManager audioManager, @NonNull AudioFocusRequestCompat focusRequest) {
if (audioManager == null) {
@@ -103,6 +104,7 @@
* AudioManager#AUDIOFOCUS_REQUEST_GRANTED}
* @throws IllegalArgumentException if passed a null argument
*/
+ @SuppressWarnings("deprecation")
public static int abandonAudioFocusRequest(
@NonNull AudioManager audioManager, @NonNull AudioFocusRequestCompat focusRequest) {
if (audioManager == null) {
diff --git a/paging/integration-tests/testapp/src/main/java/androidx/paging/integration/testapp/room/CustomerViewModel.java b/paging/integration-tests/testapp/src/main/java/androidx/paging/integration/testapp/room/CustomerViewModel.java
index a4d9778..535d317 100644
--- a/paging/integration-tests/testapp/src/main/java/androidx/paging/integration/testapp/room/CustomerViewModel.java
+++ b/paging/integration-tests/testapp/src/main/java/androidx/paging/integration/testapp/room/CustomerViewModel.java
@@ -85,12 +85,14 @@
() -> mDatabase.getCustomerDao().removeAll());
}
+ @SuppressWarnings("deprecation")
private static <K> LiveData<PagedList<Customer>> getLivePagedList(
K initialLoadKey, DataSource.Factory<K, Customer> dataSourceFactory) {
PagedList.Config config = new PagedList.Config.Builder()
.setPageSize(10)
.setEnablePlaceholders(false)
.build();
+ // Maintained for compatibility.
return new LivePagedListBuilder<>(dataSourceFactory, config)
.setInitialLoadKey(initialLoadKey)
.build();
diff --git a/preference/preference/src/main/java/androidx/preference/EditTextPreferenceDialogFragment.java b/preference/preference/src/main/java/androidx/preference/EditTextPreferenceDialogFragment.java
index 016e361..82dfd99 100644
--- a/preference/preference/src/main/java/androidx/preference/EditTextPreferenceDialogFragment.java
+++ b/preference/preference/src/main/java/androidx/preference/EditTextPreferenceDialogFragment.java
@@ -28,6 +28,7 @@
/**
* @deprecated Use {@link EditTextPreferenceDialogFragmentCompat} instead
*/
+@SuppressWarnings("deprecation")
@Deprecated
public class EditTextPreferenceDialogFragment extends PreferenceDialogFragment {
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java
index 0566df9..5dc4e53 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java
@@ -143,12 +143,12 @@
*/
private class FirstLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener {
@Override
+ @SuppressWarnings("deprecation")
public void onGlobalLayout() {
mActionBar.onFirstLayout();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
mSlidingLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
- //noinspection deprecation
mSlidingLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
diff --git a/tv-provider/src/main/java/androidx/tvprovider/media/tv/BaseProgram.java b/tv-provider/src/main/java/androidx/tvprovider/media/tv/BaseProgram.java
index ff1a99c..fc74e69 100644
--- a/tv-provider/src/main/java/androidx/tvprovider/media/tv/BaseProgram.java
+++ b/tv-provider/src/main/java/androidx/tvprovider/media/tv/BaseProgram.java
@@ -116,6 +116,7 @@
* @return The season display number for the program.
* @see androidx.tvprovider.media.tv.TvContractCompat.Programs#COLUMN_SEASON_DISPLAY_NUMBER
*/
+ @SuppressWarnings("deprecation")
public String getSeasonNumber() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return mValues.getAsString(Programs.COLUMN_SEASON_DISPLAY_NUMBER);
@@ -128,6 +129,7 @@
* @return The episode display number for the program.
* @see androidx.tvprovider.media.tv.TvContractCompat.Programs#COLUMN_EPISODE_DISPLAY_NUMBER
*/
+ @SuppressWarnings("deprecation")
public String getEpisodeNumber() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return mValues.getAsString(Programs.COLUMN_EPISODE_DISPLAY_NUMBER);
@@ -335,6 +337,7 @@
* @param cursor A row from the TV Input Framework database.
* @param builder A Builder to set the fields.
*/
+ @SuppressWarnings("deprecation")
static void setFieldsFromCursor(Cursor cursor, Builder builder) {
// TODO: Add additional API which does not use costly getColumnIndex().
int index;
@@ -465,6 +468,7 @@
}
}
+ @SuppressWarnings("deprecation")
private static String[] getProjection() {
String[] baseColumns = new String[] {
BaseTvColumns._ID,
@@ -612,6 +616,7 @@
* @see androidx.tvprovider.media.tv.TvContractCompat.Programs#COLUMN_SEASON_DISPLAY_NUMBER
* @see androidx.tvprovider.media.tv.TvContractCompat.Programs#COLUMN_SEASON_NUMBER
*/
+ @SuppressWarnings("deprecation")
public T setSeasonNumber(String seasonNumber, int numericalSeasonNumber) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mValues.put(Programs.COLUMN_SEASON_DISPLAY_NUMBER, seasonNumber);
@@ -644,6 +649,7 @@
* @see androidx.tvprovider.media.tv.TvContractCompat.Programs#COLUMN_EPISODE_DISPLAY_NUMBER
* @see androidx.tvprovider.media.tv.TvContractCompat.Programs#COLUMN_EPISODE_NUMBER
*/
+ @SuppressWarnings("deprecation")
public T setEpisodeNumber(String episodeNumber, int numericalEpisodeNumber) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mValues.put(Programs.COLUMN_EPISODE_DISPLAY_NUMBER, episodeNumber);
diff --git a/ui/ui-android-text/src/main/java/androidx/text/StaticLayoutCompat.java b/ui/ui-android-text/src/main/java/androidx/text/StaticLayoutCompat.java
index 0059db8..b1cbae1 100644
--- a/ui/ui-android-text/src/main/java/androidx/text/StaticLayoutCompat.java
+++ b/ui/ui-android-text/src/main/java/androidx/text/StaticLayoutCompat.java
@@ -530,12 +530,6 @@
if (Build.VERSION.SDK_INT >= 26) {
builder.setJustificationMode(mJustificationMode);
}
-// if (Build.VERSION.SDK_INT >= 28) {
-// TODO(siyamed): last line spacing is required for editable text,
-// otherwise we will need tricks
-// builder.setAddLastLineLineSpacing(builder.mAddLastLineLineSpacing);
-// builder.setUseLineSpacingFromFallbacks(mFallbackLineSpacing);
-// }
return builder.build();
}
diff --git a/ui/ui-core/api/0.1.0-dev03.txt b/ui/ui-core/api/0.1.0-dev03.txt
index 4843d75..46d1e29 100644
--- a/ui/ui-core/api/0.1.0-dev03.txt
+++ b/ui/ui-core/api/0.1.0-dev03.txt
@@ -1894,7 +1894,7 @@
method public androidx.ui.graphics.vector.PathBuilder close();
method public androidx.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
method public androidx.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
- method public androidx.ui.graphics.vector.PathNode![] getNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getNodes();
method public androidx.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
method public androidx.ui.graphics.vector.PathBuilder horizontalLineToRelative(float x);
method public androidx.ui.graphics.vector.PathBuilder lineTo(float x, float y);
@@ -1956,10 +1956,10 @@
public final class PathParser {
ctor public PathParser();
- method public androidx.ui.graphics.vector.PathParser addPathNodes(androidx.ui.graphics.vector.PathNode![] nodes);
+ method public androidx.ui.graphics.vector.PathParser addPathNodes(java.util.List<androidx.ui.graphics.vector.PathNode> nodes);
method public void clear();
method public androidx.ui.graphics.vector.PathParser parsePathString(String pathData);
- method public androidx.ui.graphics.vector.PathNode![] toNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> toNodes();
method public androidx.ui.graphics.Path toPath(androidx.ui.graphics.Path target = androidx.ui.graphics.Path());
}
diff --git a/ui/ui-core/api/api_lint.ignore b/ui/ui-core/api/api_lint.ignore
index 12a0bbe..6185d0e 100644
--- a/ui/ui-core/api/api_lint.ignore
+++ b/ui/ui-core/api/api_lint.ignore
@@ -57,12 +57,6 @@
Method parameter should be Collection<Pair> (or subclass) instead of raw array; was `kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[]`
ArrayReturn: androidx.ui.graphics.BrushKt#VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.core.Px, androidx.ui.core.Px, androidx.ui.graphics.TileMode) parameter #0:
Method parameter should be Collection<Pair> (or subclass) instead of raw array; was `kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[]`
-ArrayReturn: androidx.ui.graphics.vector.PathBuilder#getNodes():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.PathParser#addPathNodes(androidx.ui.graphics.vector.PathNode[]) parameter #0:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.PathParser#toNodes():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange[], androidx.ui.core.IntPxSize) parameter #1:
Method parameter should be Collection<PointerInputChange> (or subclass) instead of raw array; was `androidx.ui.core.PointerInputChange[]`
ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.PointerEventPass[], androidx.ui.core.IntPxSize) parameter #2:
diff --git a/ui/ui-core/api/current.txt b/ui/ui-core/api/current.txt
index 4843d75..46d1e29 100644
--- a/ui/ui-core/api/current.txt
+++ b/ui/ui-core/api/current.txt
@@ -1894,7 +1894,7 @@
method public androidx.ui.graphics.vector.PathBuilder close();
method public androidx.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
method public androidx.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
- method public androidx.ui.graphics.vector.PathNode![] getNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getNodes();
method public androidx.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
method public androidx.ui.graphics.vector.PathBuilder horizontalLineToRelative(float x);
method public androidx.ui.graphics.vector.PathBuilder lineTo(float x, float y);
@@ -1956,10 +1956,10 @@
public final class PathParser {
ctor public PathParser();
- method public androidx.ui.graphics.vector.PathParser addPathNodes(androidx.ui.graphics.vector.PathNode![] nodes);
+ method public androidx.ui.graphics.vector.PathParser addPathNodes(java.util.List<androidx.ui.graphics.vector.PathNode> nodes);
method public void clear();
method public androidx.ui.graphics.vector.PathParser parsePathString(String pathData);
- method public androidx.ui.graphics.vector.PathNode![] toNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> toNodes();
method public androidx.ui.graphics.Path toPath(androidx.ui.graphics.Path target = androidx.ui.graphics.Path());
}
diff --git a/ui/ui-core/api/public_plus_experimental_0.1.0-dev03.txt b/ui/ui-core/api/public_plus_experimental_0.1.0-dev03.txt
index 4843d75..46d1e29 100644
--- a/ui/ui-core/api/public_plus_experimental_0.1.0-dev03.txt
+++ b/ui/ui-core/api/public_plus_experimental_0.1.0-dev03.txt
@@ -1894,7 +1894,7 @@
method public androidx.ui.graphics.vector.PathBuilder close();
method public androidx.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
method public androidx.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
- method public androidx.ui.graphics.vector.PathNode![] getNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getNodes();
method public androidx.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
method public androidx.ui.graphics.vector.PathBuilder horizontalLineToRelative(float x);
method public androidx.ui.graphics.vector.PathBuilder lineTo(float x, float y);
@@ -1956,10 +1956,10 @@
public final class PathParser {
ctor public PathParser();
- method public androidx.ui.graphics.vector.PathParser addPathNodes(androidx.ui.graphics.vector.PathNode![] nodes);
+ method public androidx.ui.graphics.vector.PathParser addPathNodes(java.util.List<androidx.ui.graphics.vector.PathNode> nodes);
method public void clear();
method public androidx.ui.graphics.vector.PathParser parsePathString(String pathData);
- method public androidx.ui.graphics.vector.PathNode![] toNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> toNodes();
method public androidx.ui.graphics.Path toPath(androidx.ui.graphics.Path target = androidx.ui.graphics.Path());
}
diff --git a/ui/ui-core/api/public_plus_experimental_current.txt b/ui/ui-core/api/public_plus_experimental_current.txt
index 4843d75..46d1e29 100644
--- a/ui/ui-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-core/api/public_plus_experimental_current.txt
@@ -1894,7 +1894,7 @@
method public androidx.ui.graphics.vector.PathBuilder close();
method public androidx.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
method public androidx.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
- method public androidx.ui.graphics.vector.PathNode![] getNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getNodes();
method public androidx.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
method public androidx.ui.graphics.vector.PathBuilder horizontalLineToRelative(float x);
method public androidx.ui.graphics.vector.PathBuilder lineTo(float x, float y);
@@ -1956,10 +1956,10 @@
public final class PathParser {
ctor public PathParser();
- method public androidx.ui.graphics.vector.PathParser addPathNodes(androidx.ui.graphics.vector.PathNode![] nodes);
+ method public androidx.ui.graphics.vector.PathParser addPathNodes(java.util.List<androidx.ui.graphics.vector.PathNode> nodes);
method public void clear();
method public androidx.ui.graphics.vector.PathParser parsePathString(String pathData);
- method public androidx.ui.graphics.vector.PathNode![] toNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> toNodes();
method public androidx.ui.graphics.Path toPath(androidx.ui.graphics.Path target = androidx.ui.graphics.Path());
}
diff --git a/ui/ui-core/api/restricted_0.1.0-dev03.txt b/ui/ui-core/api/restricted_0.1.0-dev03.txt
index 4843d75..46d1e29 100644
--- a/ui/ui-core/api/restricted_0.1.0-dev03.txt
+++ b/ui/ui-core/api/restricted_0.1.0-dev03.txt
@@ -1894,7 +1894,7 @@
method public androidx.ui.graphics.vector.PathBuilder close();
method public androidx.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
method public androidx.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
- method public androidx.ui.graphics.vector.PathNode![] getNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getNodes();
method public androidx.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
method public androidx.ui.graphics.vector.PathBuilder horizontalLineToRelative(float x);
method public androidx.ui.graphics.vector.PathBuilder lineTo(float x, float y);
@@ -1956,10 +1956,10 @@
public final class PathParser {
ctor public PathParser();
- method public androidx.ui.graphics.vector.PathParser addPathNodes(androidx.ui.graphics.vector.PathNode![] nodes);
+ method public androidx.ui.graphics.vector.PathParser addPathNodes(java.util.List<androidx.ui.graphics.vector.PathNode> nodes);
method public void clear();
method public androidx.ui.graphics.vector.PathParser parsePathString(String pathData);
- method public androidx.ui.graphics.vector.PathNode![] toNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> toNodes();
method public androidx.ui.graphics.Path toPath(androidx.ui.graphics.Path target = androidx.ui.graphics.Path());
}
diff --git a/ui/ui-core/api/restricted_current.txt b/ui/ui-core/api/restricted_current.txt
index 4843d75..46d1e29 100644
--- a/ui/ui-core/api/restricted_current.txt
+++ b/ui/ui-core/api/restricted_current.txt
@@ -1894,7 +1894,7 @@
method public androidx.ui.graphics.vector.PathBuilder close();
method public androidx.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3);
method public androidx.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3);
- method public androidx.ui.graphics.vector.PathNode![] getNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getNodes();
method public androidx.ui.graphics.vector.PathBuilder horizontalLineTo(float x);
method public androidx.ui.graphics.vector.PathBuilder horizontalLineToRelative(float x);
method public androidx.ui.graphics.vector.PathBuilder lineTo(float x, float y);
@@ -1956,10 +1956,10 @@
public final class PathParser {
ctor public PathParser();
- method public androidx.ui.graphics.vector.PathParser addPathNodes(androidx.ui.graphics.vector.PathNode![] nodes);
+ method public androidx.ui.graphics.vector.PathParser addPathNodes(java.util.List<androidx.ui.graphics.vector.PathNode> nodes);
method public void clear();
method public androidx.ui.graphics.vector.PathParser parsePathString(String pathData);
- method public androidx.ui.graphics.vector.PathNode![] toNodes();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> toNodes();
method public androidx.ui.graphics.Path toPath(androidx.ui.graphics.Path target = androidx.ui.graphics.Path());
}
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathBuilder.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathBuilder.kt
index b1cabb1..81d2ee9 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathBuilder.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathBuilder.kt
@@ -20,7 +20,7 @@
private val nodes = mutableListOf<PathNode>()
- fun getNodes(): Array<PathNode> = nodes.toTypedArray()
+ fun getNodes(): List<PathNode> = nodes
fun close(): PathBuilder =
addNode(PathCommand.Close)
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathParser.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathParser.kt
index 5ab3e99..50d0b8f 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathParser.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/PathParser.kt
@@ -79,12 +79,12 @@
return this
}
- fun addPathNodes(nodes: Array<PathNode>): PathParser {
+ fun addPathNodes(nodes: List<PathNode>): PathParser {
this.nodes.addAll(nodes)
return this
}
- fun toNodes(): Array<PathNode> = nodes.toTypedArray()
+ fun toNodes(): List<PathNode> = nodes
fun toPath(target: Path = Path()): Path {
target.reset()
diff --git a/ui/ui-framework/api/0.1.0-dev03.txt b/ui/ui-framework/api/0.1.0-dev03.txt
index 7b4517b..deb9978 100644
--- a/ui/ui-framework/api/0.1.0-dev03.txt
+++ b/ui/ui-framework/api/0.1.0-dev03.txt
@@ -331,7 +331,7 @@
public final class VectorAssetBuilder {
ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
- method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
method public androidx.ui.graphics.vector.VectorAsset build();
method public void ensureNotConsumed();
method public androidx.ui.core.Px getDefaultHeight();
@@ -340,7 +340,7 @@
method public float getViewportHeight();
method public float getViewportWidth();
method public androidx.ui.graphics.vector.VectorAssetBuilder popGroup();
- method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath);
}
public final class VectorAssetKt {
@@ -350,17 +350,17 @@
public final class VectorComposeKt {
ctor public VectorComposeKt();
- method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
- method public static void Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+ method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
}
public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
- ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, androidx.ui.graphics.vector.PathNode![] clipPathData);
+ ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
ctor public VectorGroup();
method public operator androidx.ui.graphics.vector.VectorNode get(int index);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -378,11 +378,11 @@
}
public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
- ctor public VectorPath(String name, androidx.ui.graphics.vector.PathNode![] pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+ ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
diff --git a/ui/ui-framework/api/api_lint.ignore b/ui/ui-framework/api/api_lint.ignore
index 802d86c..c782b81 100644
--- a/ui/ui-framework/api/api_lint.ignore
+++ b/ui/ui-framework/api/api_lint.ignore
@@ -1,22 +1,6 @@
// Baseline format: 1.0
ArrayReturn: androidx.ui.core.LayoutKt#Layout(kotlin.jvm.functions.Function0<kotlin.Unit>[], androidx.ui.core.Modifier, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult>) parameter #0:
Method parameter should be Collection<Function0> (or subclass) instead of raw array; was `kotlin.jvm.functions.Function0<kotlin.Unit>[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorAssetBuilder#addPath(androidx.ui.graphics.vector.PathNode[], String, androidx.ui.graphics.Brush, float, androidx.ui.graphics.Brush, float, float, androidx.ui.graphics.StrokeCap, androidx.ui.graphics.StrokeJoin, float) parameter #0:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorAssetBuilder#pushGroup(String, float, float, float, float, float, float, float, androidx.ui.graphics.vector.PathNode[]) parameter #8:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorComposeKt#Group(androidx.ui.graphics.vector.VectorScope, String, float, float, float, float, float, float, float, androidx.ui.graphics.vector.PathNode[], kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit>) parameter #9:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorComposeKt#Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode[], String, androidx.ui.graphics.Brush, float, androidx.ui.graphics.Brush, float, float, androidx.ui.graphics.StrokeCap, androidx.ui.graphics.StrokeJoin, float) parameter #1:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorGroup#VectorGroup(String, float, float, float, float, float, float, float, androidx.ui.graphics.vector.PathNode[]) parameter #8:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorGroup#getClipPathData():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorPath#VectorPath(String, androidx.ui.graphics.vector.PathNode[], androidx.ui.graphics.Brush, float, androidx.ui.graphics.Brush, float, float, androidx.ui.graphics.StrokeCap, androidx.ui.graphics.StrokeJoin, float) parameter #1:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorPath#getPathData():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
AutoBoxing: androidx.ui.core.TextKt#Text(String, androidx.ui.core.Modifier, androidx.ui.text.TextStyle, androidx.ui.text.ParagraphStyle, boolean, androidx.ui.text.style.TextOverflow, Integer) parameter #6:
diff --git a/ui/ui-framework/api/current.txt b/ui/ui-framework/api/current.txt
index 7b4517b..deb9978 100644
--- a/ui/ui-framework/api/current.txt
+++ b/ui/ui-framework/api/current.txt
@@ -331,7 +331,7 @@
public final class VectorAssetBuilder {
ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
- method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
method public androidx.ui.graphics.vector.VectorAsset build();
method public void ensureNotConsumed();
method public androidx.ui.core.Px getDefaultHeight();
@@ -340,7 +340,7 @@
method public float getViewportHeight();
method public float getViewportWidth();
method public androidx.ui.graphics.vector.VectorAssetBuilder popGroup();
- method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath);
}
public final class VectorAssetKt {
@@ -350,17 +350,17 @@
public final class VectorComposeKt {
ctor public VectorComposeKt();
- method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
- method public static void Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+ method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
}
public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
- ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, androidx.ui.graphics.vector.PathNode![] clipPathData);
+ ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
ctor public VectorGroup();
method public operator androidx.ui.graphics.vector.VectorNode get(int index);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -378,11 +378,11 @@
}
public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
- ctor public VectorPath(String name, androidx.ui.graphics.vector.PathNode![] pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+ ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
diff --git a/ui/ui-framework/api/public_plus_experimental_0.1.0-dev03.txt b/ui/ui-framework/api/public_plus_experimental_0.1.0-dev03.txt
index 7b4517b..deb9978 100644
--- a/ui/ui-framework/api/public_plus_experimental_0.1.0-dev03.txt
+++ b/ui/ui-framework/api/public_plus_experimental_0.1.0-dev03.txt
@@ -331,7 +331,7 @@
public final class VectorAssetBuilder {
ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
- method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
method public androidx.ui.graphics.vector.VectorAsset build();
method public void ensureNotConsumed();
method public androidx.ui.core.Px getDefaultHeight();
@@ -340,7 +340,7 @@
method public float getViewportHeight();
method public float getViewportWidth();
method public androidx.ui.graphics.vector.VectorAssetBuilder popGroup();
- method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath);
}
public final class VectorAssetKt {
@@ -350,17 +350,17 @@
public final class VectorComposeKt {
ctor public VectorComposeKt();
- method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
- method public static void Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+ method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
}
public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
- ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, androidx.ui.graphics.vector.PathNode![] clipPathData);
+ ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
ctor public VectorGroup();
method public operator androidx.ui.graphics.vector.VectorNode get(int index);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -378,11 +378,11 @@
}
public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
- ctor public VectorPath(String name, androidx.ui.graphics.vector.PathNode![] pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+ ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
diff --git a/ui/ui-framework/api/public_plus_experimental_current.txt b/ui/ui-framework/api/public_plus_experimental_current.txt
index 7b4517b..deb9978 100644
--- a/ui/ui-framework/api/public_plus_experimental_current.txt
+++ b/ui/ui-framework/api/public_plus_experimental_current.txt
@@ -331,7 +331,7 @@
public final class VectorAssetBuilder {
ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
- method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
method public androidx.ui.graphics.vector.VectorAsset build();
method public void ensureNotConsumed();
method public androidx.ui.core.Px getDefaultHeight();
@@ -340,7 +340,7 @@
method public float getViewportHeight();
method public float getViewportWidth();
method public androidx.ui.graphics.vector.VectorAssetBuilder popGroup();
- method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath);
}
public final class VectorAssetKt {
@@ -350,17 +350,17 @@
public final class VectorComposeKt {
ctor public VectorComposeKt();
- method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
- method public static void Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+ method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
}
public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
- ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, androidx.ui.graphics.vector.PathNode![] clipPathData);
+ ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
ctor public VectorGroup();
method public operator androidx.ui.graphics.vector.VectorNode get(int index);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -378,11 +378,11 @@
}
public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
- ctor public VectorPath(String name, androidx.ui.graphics.vector.PathNode![] pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+ ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
diff --git a/ui/ui-framework/api/restricted_0.1.0-dev03.txt b/ui/ui-framework/api/restricted_0.1.0-dev03.txt
index 7b4517b..deb9978 100644
--- a/ui/ui-framework/api/restricted_0.1.0-dev03.txt
+++ b/ui/ui-framework/api/restricted_0.1.0-dev03.txt
@@ -331,7 +331,7 @@
public final class VectorAssetBuilder {
ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
- method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
method public androidx.ui.graphics.vector.VectorAsset build();
method public void ensureNotConsumed();
method public androidx.ui.core.Px getDefaultHeight();
@@ -340,7 +340,7 @@
method public float getViewportHeight();
method public float getViewportWidth();
method public androidx.ui.graphics.vector.VectorAssetBuilder popGroup();
- method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath);
}
public final class VectorAssetKt {
@@ -350,17 +350,17 @@
public final class VectorComposeKt {
ctor public VectorComposeKt();
- method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
- method public static void Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+ method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
}
public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
- ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, androidx.ui.graphics.vector.PathNode![] clipPathData);
+ ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
ctor public VectorGroup();
method public operator androidx.ui.graphics.vector.VectorNode get(int index);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -378,11 +378,11 @@
}
public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
- ctor public VectorPath(String name, androidx.ui.graphics.vector.PathNode![] pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+ ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
diff --git a/ui/ui-framework/api/restricted_current.txt b/ui/ui-framework/api/restricted_current.txt
index 7b4517b..deb9978 100644
--- a/ui/ui-framework/api/restricted_current.txt
+++ b/ui/ui-framework/api/restricted_current.txt
@@ -331,7 +331,7 @@
public final class VectorAssetBuilder {
ctor public VectorAssetBuilder(String name, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth, float viewportHeight);
- method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
method public androidx.ui.graphics.vector.VectorAsset build();
method public void ensureNotConsumed();
method public androidx.ui.core.Px getDefaultHeight();
@@ -340,7 +340,7 @@
method public float getViewportHeight();
method public float getViewportWidth();
method public androidx.ui.graphics.vector.VectorAssetBuilder popGroup();
- method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath);
+ method public androidx.ui.graphics.vector.VectorAssetBuilder pushGroup(String name = "", float rotate = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath);
}
public final class VectorAssetKt {
@@ -350,17 +350,17 @@
public final class VectorComposeKt {
ctor public VectorComposeKt();
- method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
- method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, androidx.ui.graphics.vector.PathNode![] clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
- method public static void Path(androidx.ui.graphics.vector.VectorScope, androidx.ui.graphics.vector.PathNode![] pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+ method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+ method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+ method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
}
public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
- ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, androidx.ui.graphics.vector.PathNode![] clipPathData);
+ ctor public VectorGroup(String name, float rotation, float pivotX, float pivotY, float scaleX, float scaleY, float translationX, float translationY, java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData);
ctor public VectorGroup();
method public operator androidx.ui.graphics.vector.VectorNode get(int index);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -378,11 +378,11 @@
}
public final class VectorPath extends androidx.ui.graphics.vector.VectorNode {
- ctor public VectorPath(String name, androidx.ui.graphics.vector.PathNode![] pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
+ ctor public VectorPath(String name, java.util.List<androidx.ui.graphics.vector.PathNode> pathData, androidx.ui.graphics.Brush? fill, float fillAlpha, androidx.ui.graphics.Brush? stroke, float strokeAlpha, float strokeLineWidth, androidx.ui.graphics.StrokeCap strokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin, float strokeLineMiter);
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
diff --git a/ui/ui-framework/integration-tests/framework-demos/build.gradle b/ui/ui-framework/integration-tests/framework-demos/build.gradle
index 4e0efbd9..6e950b9 100644
--- a/ui/ui-framework/integration-tests/framework-demos/build.gradle
+++ b/ui/ui-framework/integration-tests/framework-demos/build.gradle
@@ -24,6 +24,7 @@
implementation project(":ui:ui-layout")
implementation project(":ui:ui-text")
implementation project(':ui:ui-animation')
+ implementation project(":ui:ui-foundation")
implementation project(':ui:ui-framework')
implementation project(':ui:ui-material')
implementation project(path: ':ui:ui-vector')
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/AndroidManifest.xml b/ui/ui-framework/integration-tests/framework-demos/src/main/AndroidManifest.xml
index 5e9ffa8..58d00cb 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/AndroidManifest.xml
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/AndroidManifest.xml
@@ -127,6 +127,14 @@
<category android:name="androidx.ui.demos.SAMPLE_CODE" />
</intent-filter>
</activity>
+ <activity android:name="androidx.ui.framework.demos.gestures.PopupDragActivity"
+ android:configChanges="orientation|screenSize"
+ android:label="Gestures/Complex/Popup Drag">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="androidx.ui.demos.SAMPLE_CODE" />
+ </intent-filter>
+ </activity>
<activity android:name=".MultipleCollectActivity"
android:configChanges="orientation|screenSize"
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt
new file mode 100644
index 0000000..af1685c
--- /dev/null
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2019 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 androidx.ui.framework.demos.gestures
+
+import android.app.Activity
+import android.os.Bundle
+import androidx.compose.memo
+import androidx.compose.state
+import androidx.compose.unaryPlus
+import androidx.ui.core.Alignment
+import androidx.ui.core.PxPosition
+import androidx.ui.core.Text
+import androidx.ui.core.dp
+import androidx.ui.core.gesture.DragObserver
+import androidx.ui.core.gesture.RawDragGestureDetector
+import androidx.ui.core.round
+import androidx.ui.core.setContent
+import androidx.ui.foundation.Popup
+import androidx.ui.foundation.disposeActivityComposition
+import androidx.ui.foundation.shape.DrawShape
+import androidx.ui.foundation.shape.corner.CircleShape
+import androidx.ui.graphics.Color
+import androidx.ui.layout.Container
+import androidx.ui.layout.Wrap
+import androidx.ui.text.ParagraphStyle
+import androidx.ui.text.style.TextAlign
+
+class PopupDragActivity : Activity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ setContent {
+
+ val offset = +state {
+ PxPosition.Origin
+ }
+
+ val observer = +memo {
+ object : DragObserver {
+ override fun onDrag(dragDistance: PxPosition): PxPosition {
+ offset.value += dragDistance
+ return dragDistance
+ }
+ }
+ }
+
+ Popup(alignment = Alignment.TopLeft, offset = offset.value.round()) {
+ Wrap {
+ DrawShape(CircleShape, Color.Green)
+ RawDragGestureDetector(observer) {
+ Container(width = 70.dp, height = 70.dp) {
+ Text(
+ text = "This is a popup!",
+ paragraphStyle = ParagraphStyle(textAlign = TextAlign.Center)
+ )
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // TODO(b/140396932): Replace with Activity.disposeComposition() when it will be working
+ // properly
+ override fun onDestroy() {
+ disposeActivityComposition(this)
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt
index adc5fd1..3a64021 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt
@@ -23,6 +23,8 @@
import androidx.test.filters.SdkSuppress
import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule
+import androidx.ui.core.Alignment
+import androidx.ui.core.IntPx
import androidx.ui.core.Px
import androidx.ui.core.dp
import androidx.ui.core.ipx
@@ -77,15 +79,34 @@
}
}
+ @SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
+ @Test
+ fun testVectorAlignment() {
+ rule.runOnUiThreadIR {
+ activity.setContent {
+ VectorTint(minimumSize = 500.ipx, alignment = Alignment.BottomRight)
+ }
+ }
+
+ assertTrue(drawLatch.await(1, TimeUnit.SECONDS))
+ takeScreenShot(500).apply {
+ assertEquals(getPixel(480, 480), Color.Cyan.toArgb())
+ }
+ }
+
@Composable
- private fun VectorTint() {
- val size = 200.ipx
+ private fun VectorTint(
+ size: IntPx = 200.ipx,
+ minimumSize: IntPx = size,
+ alignment: Alignment = Alignment.Center
+ ) {
val sizePx = size.toPx()
- AtLeastSize(size = size) {
+ AtLeastSize(size = minimumSize) {
DrawVector(
defaultWidth = sizePx,
defaultHeight = sizePx,
- tintColor = Color.Cyan) { _, _ ->
+ tintColor = Color.Cyan,
+ alignment = alignment) { _, _ ->
Path(
pathData = PathData {
lineTo(sizePx.value, 0.0f)
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
index 768224d..9fad49a 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
@@ -90,7 +90,7 @@
scaleY: Float = DefaultScaleY,
translationX: Float = DefaultTranslationX,
translationY: Float = DefaultTranslationY,
- clipPathData: Array<PathNode> = EmptyPath
+ clipPathData: List<PathNode> = EmptyPath
): VectorAssetBuilder {
ensureNotConsumed()
val group = VectorGroup(
@@ -126,7 +126,7 @@
* @return This VectorAssetBuilder instance as a convenience for chaining calls
*/
fun addPath(
- pathData: Array<PathNode>,
+ pathData: List<PathNode>,
name: String = DefaultPathName,
fill: Brush? = null,
fillAlpha: Float = DefaultAlpha,
@@ -282,7 +282,7 @@
/**
* Path information used to clip the content within the group
*/
- val clipPathData: Array<PathNode> = EmptyPath
+ val clipPathData: List<PathNode> = EmptyPath
) : VectorNode(), Iterable<VectorNode> {
@@ -324,7 +324,7 @@
/**
* Path information to render the shape of the path
*/
- val pathData: Array<PathNode>,
+ val pathData: List<PathNode>,
/**
* Specifies the color or gradient used to fill the path
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
index 2e5a111..088fdc5 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
@@ -21,8 +21,11 @@
import androidx.compose.memo
import androidx.compose.onPreCommit
import androidx.compose.unaryPlus
+import androidx.ui.core.Alignment
import androidx.ui.core.Dp
import androidx.ui.core.Draw
+import androidx.ui.core.IntPx
+import androidx.ui.core.IntPxSize
import androidx.ui.core.Px
import androidx.ui.core.ambientDensity
import androidx.ui.core.withDensity
@@ -31,12 +34,15 @@
import androidx.ui.graphics.Color
import androidx.ui.graphics.StrokeCap
import androidx.ui.graphics.StrokeJoin
+import kotlin.math.ceil
/**
* Sentinel value used to indicate that a dimension is not provided
*/
private const val unset: Float = -1.0f
+private val DefaultAlignment = Alignment.Center
+
/**
* Draw a vector graphic with the provided width, height and viewport dimensions
* @param[defaultWidth] Intrinsic width of the Vector in [Dp]
@@ -49,6 +55,7 @@
* This parameter is optional. Not providing it will use the [defaultHeight] converted to [Px]
* @param[tintColor] Optional color used to tint this vector graphic
* @param[tintBlendMode] Optional blend mode used with [tintColor], default is [BlendMode.srcIn]
+ * @param[alignment] Specifies the placement of the vector within the drawing bounds
*/
@Composable
fun DrawVector(
@@ -58,6 +65,7 @@
viewportHeight: Float = unset,
tintColor: Color = DefaultTintColor,
tintBlendMode: BlendMode = DefaultTintBlendMode,
+ alignment: Alignment = DefaultAlignment,
name: String = "",
children: @Composable() VectorScope.(viewportWidth: Float, viewportHeight: Float) -> Unit
) {
@@ -66,7 +74,17 @@
val vpWidth = if (viewportWidth == unset) widthPx.value else viewportWidth
val vpHeight = if (viewportHeight == unset) heightPx.value else viewportHeight
- DrawVector(widthPx, heightPx, vpWidth, vpHeight, tintColor, tintBlendMode, name, children)
+ DrawVector(
+ widthPx,
+ heightPx,
+ vpWidth,
+ vpHeight,
+ tintColor,
+ tintBlendMode,
+ alignment,
+ name,
+ children
+ )
}
/**
@@ -81,6 +99,7 @@
* [defaultHeight]
* @param[tintColor] Optional color used to tint this vector graphic
* @param[tintBlendMode] Optional blend mode used with [tintColor], default is [BlendMode.srcIn]
+ * @param[alignment] Specifies the placement of the vector within the drawing bounds
*/
@Composable
fun DrawVector(
@@ -90,6 +109,7 @@
viewportHeight: Float = defaultHeight.value,
tintColor: Color = DefaultTintColor,
tintBlendMode: BlendMode = DefaultTintBlendMode,
+ alignment: Alignment = DefaultAlignment,
name: String = "",
children: @Composable() VectorScope.(viewportWidth: Float, viewportHeight: Float) -> Unit
) {
@@ -112,8 +132,19 @@
}
}
- Draw { canvas, _ ->
+ Draw { canvas, parentSize ->
+ val alignedPosition = alignment.align(
+ IntPxSize(
+ IntPx(ceil(parentSize.width.value - defaultWidth.value).toInt()),
+ IntPx(ceil(parentSize.height.value - defaultHeight.value).toInt())
+ )
+ )
+
+ val dx = alignedPosition.x.value.toFloat()
+ val dy = alignedPosition.y.value.toFloat()
+ canvas.translate(dx, dy)
vector.draw(canvas, tintColor, tintBlendMode)
+ canvas.translate(-dx, -dy)
}
}
@@ -127,7 +158,7 @@
scaleY: Float = DefaultScaleY,
translationX: Float = DefaultTranslationX,
translationY: Float = DefaultTranslationY,
- clipPathData: Array<PathNode> = EmptyPath,
+ clipPathData: List<PathNode> = EmptyPath,
children: @Composable() VectorScope.() -> Unit
) {
GroupComponent(
@@ -147,7 +178,7 @@
@Composable
fun VectorScope.Path(
- pathData: Array<PathNode>,
+ pathData: List<PathNode>,
name: String = DefaultPathName,
fill: Brush? = null,
fillAlpha: Float = DefaultAlpha,
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
index 101ea40..c7b248e 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
@@ -209,7 +209,7 @@
val pathStr = a.getString(AndroidVectorResources.STYLEABLE_VECTOR_DRAWABLE_PATH_PATH_DATA)
- val pathData: Array<PathNode> = addPathNodes(pathStr)
+ val pathData: List<PathNode> = addPathNodes(pathStr)
val fillColor = TypedArrayUtils.getNamedComplexColor(
a,
diff --git a/ui/ui-layout/api/api_lint.ignore b/ui/ui-layout/api/api_lint.ignore
index 01bab4c..4d1f8a8 100644
--- a/ui/ui-layout/api/api_lint.ignore
+++ b/ui/ui-layout/api/api_lint.ignore
@@ -9,11 +9,11 @@
Missing nullability on field `Companion` in class `class androidx.ui.layout.CrossAxisAlignment`
MissingNullability: androidx.ui.layout.DpConstraints#Companion:
Missing nullability on field `Companion` in class `class androidx.ui.layout.DpConstraints`
+MissingNullability: androidx.ui.layout.Gravity#INSTANCE:
+ Missing nullability on field `INSTANCE` in class `class androidx.ui.layout.Gravity`
MissingNullability: androidx.ui.layout.TableColumnWidth.MaxIntrinsic#INSTANCE:
Missing nullability on field `INSTANCE` in class `class androidx.ui.layout.TableColumnWidth.MaxIntrinsic`
MissingNullability: androidx.ui.layout.TableColumnWidth.MinIntrinsic#INSTANCE:
Missing nullability on field `INSTANCE` in class `class androidx.ui.layout.TableColumnWidth.MinIntrinsic`
MissingNullability: androidx.ui.layout.TableColumnWidth.Wrap#INSTANCE:
Missing nullability on field `INSTANCE` in class `class androidx.ui.layout.TableColumnWidth.Wrap`
-MissingNullability: androidx.ui.layout.Gravity#INSTANCE:
- Missing nullability on field `INSTANCE` in class `class androidx.ui.layout.Gravity`
\ No newline at end of file
diff --git a/ui/ui-platform/src/androidTest/java/androidx/ui/core/pointerinput/MotionEventAdapterTest.kt b/ui/ui-platform/src/androidTest/java/androidx/ui/core/pointerinput/MotionEventAdapterTest.kt
index c8be37f..d9ea7d6 100644
--- a/ui/ui-platform/src/androidTest/java/androidx/ui/core/pointerinput/MotionEventAdapterTest.kt
+++ b/ui/ui-platform/src/androidTest/java/androidx/ui/core/pointerinput/MotionEventAdapterTest.kt
@@ -396,6 +396,26 @@
assertPointerInputEventData(pointers[2], 9285, false, 6206f, 1098f)
}
+ @Test
+ fun toPointerInputEvent_motionEventOffset_usesRawCoordinatesInsteadOfOffset() {
+ val motionEvent = MotionEvent(
+ 0,
+ MotionEvent.ACTION_DOWN,
+ 1,
+ 0,
+ arrayOf(PointerProperties(0)),
+ arrayOf(PointerCoords(1f, 2f))
+ )
+
+ motionEvent.offsetLocation(10f, 20f)
+
+ val (timestamp, pointers) = motionEvent.toPointerInputEvent()
+
+ assertThat(timestamp.nanoseconds, `is`(0L))
+ assertThat(pointers.size, `is`(1))
+ assertPointerInputEventData(pointers[0], 0, true, 1f, 2f)
+ }
+
// Private help functions.
private fun PointerProperties(id: Int) =
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt b/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
index 45e6c53..e6690db 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
@@ -138,6 +138,7 @@
Stage.Layout -> requestRelayout(affectedNode as LayoutNode)
}
}
+
internal fun isObservingModels() = modelObserver.isObserving
init {
@@ -449,8 +450,10 @@
val doTranslate = contentPos.x != 0.ipx || contentPos.y != 0.ipx
if (doTranslate) {
canvas.save()
- canvas.translate(contentPos.x.value.toFloat(),
- contentPos.y.value.toFloat())
+ canvas.translate(
+ contentPos.x.value.toFloat(),
+ contentPos.y.value.toFloat()
+ )
}
val contentSize = node.contentSize.toPxSize()
node.visitChildren { child ->
@@ -548,10 +551,10 @@
if (event.actionMasked == MotionEvent.ACTION_CANCEL) {
pointerInputEventProcessor.processCancel()
} else {
- pointerInputEventProcessor.process(event.toPointerInputEvent())
+ pointerInputEventProcessor.process(event.toPointerInputEvent(), calculatePosition())
}
- // TODO(shepshapard): Only return if some aspect of the change was consumed.
}
+ // TODO(shepshapard): Only return if some aspect of the change was consumed.
return true
}
@@ -587,7 +590,7 @@
override fun calculatePosition(): IntPxPosition {
val positionArray = intArrayOf(0, 0)
- getLocationInWindow(positionArray)
+ getLocationOnScreen(positionArray)
return IntPxPosition(positionArray[0].ipx, positionArray[1].ipx)
}
@@ -746,6 +749,7 @@
setWillNotDraw(false) // we WILL draw
id = View.generateViewId()
}
+
private val density = Density(context)
private val outlineResolver = OutlineResolver(density)
private val outlineProviderImpl = object : ViewOutlineProvider() {
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt b/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt
index f4f309b..61470f2 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt
@@ -90,7 +90,8 @@
fun onEndLayout(layoutNode: LayoutNode)
/**
- * Returns a position of the owner in its window.
+ * Returns the most global position of the owner that Compose can access (such as the device
+ * screen).
*/
fun calculatePosition(): IntPxPosition
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt
index 5809a34..945fb38 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt
@@ -130,8 +130,8 @@
}
// TODO(shepshapard): Bind removeDetachedPointerInputNodes,
- // removePointerInputNodesWithNoLayoutNodeDescendants, and refreshOffsets together given the
- // constraint that right now, one must be called before the other.
+ // removePointerInputNodesWithNoLayoutNodeDescendants, and refreshOffsets together given the
+ // constraint that right now, one must be called before the other.
/**
* Updates this [HitPathTracker]'s cached knowledge of the bounds of the [PointerInputNode]s
* it is tracking. This is is necessary to call before calls to [dispatchChanges] so that
@@ -140,19 +140,25 @@
*
* Must only be called after guaranteeing that each Node has a PointerInputNode that has at
* least one descendant LayoutNode.
+ *
+ * @param additionalPointerOffset The additional offset that will be added to all
+ * [PointerInputChange]s when [dispatchChanges] is called.
*/
- fun refreshOffsets() {
- root.refreshPositionInformation()
+ fun refreshOffsets(additionalPointerOffset: IntPxPosition) {
+ root.refreshPositionInformation(additionalPointerOffset)
}
/**
* Convenience method that removes PointerInputNodes that are no longer valid and refreshes the
* offset information for those that are.
+ *
+ * @param additionalPointerOffset The additional offset that will be added to all
+ * [PointerInputChange]s when [dispatchChanges] is called.
*/
- fun refreshPathInformation() {
+ fun refreshPathInformation(additionalPointerOffset: IntPxPosition) {
removeDetachedPointerInputNodes()
removePointerInputNodesWithNoLayoutNodeDescendants()
- refreshOffsets()
+ refreshOffsets(additionalPointerOffset)
}
}
@@ -281,8 +287,16 @@
}
}
- // TODO(b/124960509): Make this much more efficient.
- fun refreshPositionInformation() {
+ // TODO(b/124960509): Make this much more efficient. Right now, even though the data structure
+ // is a tree, each LayoutNode requests it's position relative to the root, even though it's
+ // parent would already have it's position relative to root.
+ /**
+ * Updates all position and size information for all nodes.
+ *
+ * @param additionalPointerOffset The additional offset that will be added to all
+ * [PointerInputChange]s when [dispatchChanges] is called.
+ */
+ fun refreshPositionInformation(additionalPointerOffset: IntPxPosition) {
children.forEach { child ->
var minX = Int.MAX_VALUE
var minY = Int.MAX_VALUE
@@ -290,14 +304,16 @@
var maxY = Int.MIN_VALUE
child.pointerInputNode?.visitLayoutChildren { layoutChild ->
val globalPosition = layoutChild.positionRelativeToRoot()
- minX = min(minX, globalPosition.x.value)
- minY = min(minY, globalPosition.y.value)
- maxX = max(maxX, globalPosition.x.value + layoutChild.width.value)
- maxY = max(maxY, globalPosition.y.value + layoutChild.height.value)
+ val x = globalPosition.x.value + additionalPointerOffset.x.value
+ val y = globalPosition.y.value + additionalPointerOffset.y.value
+ minX = min(minX, x)
+ minY = min(minY, y)
+ maxX = max(maxX, x + layoutChild.width.value)
+ maxY = max(maxY, y + layoutChild.height.value)
}
child.offset = IntPxPosition(minX.ipx, minY.ipx)
child.size = IntPxSize((maxX - minX).ipx, (maxY - minY).ipx)
- child.refreshPositionInformation()
+ child.refreshPositionInformation(additionalPointerOffset)
}
}
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt
index 35867b2..565dc99 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt
@@ -26,10 +26,13 @@
import androidx.ui.core.px
/**
- * Converts Android framework [MotionEvent]s into [PointerInputEvent]s.
+ * Converts an Android framework [MotionEvent] into a [PointerInputEvent].
+ *
+ * The resulting [PointerInputEvent] has coordinates that are relative to the screen (the
+ * [MotionEvent]s raw coordinates are used as provided by [MotionEvent.getRawX] and
+ * [MotionEvent.getRawY].
*/
internal fun MotionEvent.toPointerInputEvent(): PointerInputEvent {
-
val upIndex = when (this.actionMasked) {
ACTION_POINTER_UP -> this.actionIndex
ACTION_UP -> 0
@@ -37,6 +40,7 @@
}
val pointers: MutableList<PointerInputEventData> = mutableListOf()
+ offsetLocation(getRawX() - getX(), getRawY() - getY())
for (i in 0 until this.pointerCount) {
pointers.add(
PointerInputEventData(this, i, upIndex)
@@ -47,7 +51,7 @@
}
/**
- * Creates a new Pointer.
+ * Creates a new [PointerInputEventData] with coordinates relative to the screen.
*/
private fun PointerInputEventData(
motionEvent: MotionEvent,
@@ -66,7 +70,7 @@
}
/**
- * Creates a new PointerData.
+ * Creates a new [PointerInputData] with coordinates that are relative to the screen.
*/
private fun PointerInputData(
timestamp: Timestamp,
@@ -74,9 +78,7 @@
index: Int,
upIndex: Int?
): PointerInputData {
- val pointerCoords = MotionEvent.PointerCoords()
- motionEvent.getPointerCoords(index, pointerCoords)
- val offset = PxPosition(pointerCoords.x.px, pointerCoords.y.px)
+ val offset = PxPosition(motionEvent.getX(index).px, motionEvent.getY(index).px)
return PointerInputData(
timestamp,
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt
index a00e700..1e261d1 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt
@@ -42,8 +42,12 @@
/**
* Receives [PointerInputEvent]s and process them through the tree rooted on [root].
+ *
+ * @param pointerEvent The [PointerInputEvent] to process.
+ * @param additionalPointerOffset The additional offset that has been added to all coordinate
+ * data in [PointerInputEvent].
*/
- fun process(pointerEvent: PointerInputEvent) {
+ fun process(pointerEvent: PointerInputEvent, additionalPointerOffset: IntPxPosition) {
// Gets a new PointerInputChangeEvent with the PointerInputEvent.
val pointerInputChangeEvent = pointerInputChangeEventProducer.produce(pointerEvent)
@@ -52,7 +56,7 @@
pointerInputChangeEvent.changes.filter { it.changedToDownIgnoreConsumed() }.forEach {
val hitResult: MutableList<PointerInputNode> = mutableListOf()
root.hitTest(
- it.current.position!!,
+ it.current.position!! - additionalPointerOffset,
Rect.largest,
hitResult
)
@@ -61,7 +65,7 @@
// Remove PointerInputNodes that are no longer valid and refresh the offset information for
// those that are.
- hitPathTracker.refreshPathInformation()
+ hitPathTracker.refreshPathInformation(additionalPointerOffset)
// Dispatch the PointerInputChanges to the hit PointerInputNodes.
var changes = pointerInputChangeEvent.changes
@@ -167,9 +171,9 @@
// If we have hit a leaf PointerInputNode, we will quickly back track and also hit
// all ancestor PointerInputNodes.
if (this !is LayoutNode && !hitDescendantPointerInputNode) {
+ // The resulting boundingBox is in the child's coordinate system.
+ // Translate back to our coordinate system.
overarchingBoundingBox =
- // The resulting boundingBox is in the child's coordinate system.
- // Translate back to our coordinate system.
overarchingBoundingBox.expandToInclude(
result.boundingBox?.translate(contentOffset)
)
diff --git a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt
index 4fb9d34..6735c0a 100644
--- a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt
+++ b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt
@@ -2351,11 +2351,12 @@
}
@Test
- fun refreshOffsets_layoutNodesNotOffset_changeTranslatedAndSizesReportedCorrectly() {
+ fun refreshOffsets_nothingOffset_changeTranslatedAndSizesReportedCorrectly() {
refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
0, 0, 100, 100,
0, 0, 100, 100,
0, 0, 100, 100,
+ 0, 0,
50, 50
)
}
@@ -2366,6 +2367,7 @@
0, 0, 100, 100,
2, 11, 100, 100,
23, 31, 100, 100,
+ 0, 0,
99, 99
)
}
@@ -2376,6 +2378,40 @@
0, 0, 100, 100,
-2, -11, 100, 100,
-23, -31, 100, 100,
+ 0, 0,
+ 1, 1
+ )
+ }
+
+ @Test
+ fun refreshOffsets_additionalOffset_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ 0, 0, 100, 100,
+ 0, 0, 100, 100,
+ 0, 0, 100, 100,
+ 41, 51,
+ 50, 50
+ )
+ }
+
+ @Test
+ fun refreshOffsets_allIncreasinglyInset_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ 0, 0, 100, 100,
+ 2, 11, 100, 100,
+ 23, 31, 100, 100,
+ 41, 51,
+ 99, 99
+ )
+ }
+
+ @Test
+ fun refreshOffsets_allIncreasinglyOutset_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ 0, 0, 100, 100,
+ -2, -11, 100, 100,
+ -23, -31, 100, 100,
+ -41, -51,
1, 1
)
}
@@ -2395,6 +2431,8 @@
cY1: Int,
cX2: Int,
cY2: Int,
+ additionalOffsetX: Int,
+ additionalOffsetY: Int,
pointerX: Int,
pointerY: Int
) {
@@ -2429,10 +2467,11 @@
)
val offset = PxPosition(pointerX.px, pointerY.px)
+ val additionalOffset = IntPxPosition(additionalOffsetX.ipx, additionalOffsetY.ipx)
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(additionalOffset)
// Assert
@@ -2450,15 +2489,9 @@
val expectedPointerInputChanges = arrayOf(
PointerInputChange(
id = 3,
- current = PointerInputData(7L.millisecondsToTimestamp(), offset, true),
- previous = PointerInputData(null, null, false),
- consumed = ConsumedData()
- ),
- PointerInputChange(
- id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- offset - middleOffset,
+ offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2468,7 +2501,17 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- offset - middleOffset - childOffset,
+ offset - middleOffset - additionalOffset,
+ true
+ ),
+ previous = PointerInputData(null, null, false),
+ consumed = ConsumedData()
+ ),
+ PointerInputChange(
+ id = 3,
+ current = PointerInputData(
+ 7L.millisecondsToTimestamp(),
+ offset - middleOffset - childOffset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2497,34 +2540,92 @@
}
@Test
- fun refreshOffsets_justTranslate_changeTranslatedAndSizesReportedCorrectly() {
+ fun refreshOffsets_translateLayoutNodes_changeTranslatedAndSizesReportedCorrectly() {
refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
Box(0, 0, 500, 500),
Box(100, 100, 400, 400),
+ Point(0, 0),
Box(50, -50, 550, 450), // Translate by 50, -50
Box(105, 95, 405, 395), // Translate by 5, -5
+ Point(0, 0),
250, 250
)
}
@Test
- fun refreshOffsets_justResize_changeTranslatedAndSizesReportedCorrectly() {
+ fun refreshOffsets_resizeLayoutNodes_changeTranslatedAndSizesReportedCorrectly() {
refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
Box(0, 0, 500, 500),
Box(100, 100, 400, 400),
+ Point(0, 0),
Box(0, 0, 450, 550), // Add to size by -50, 50
Box(100, 100, 395, 405), // Add to size by -5, 5
+ Point(0, 0),
250, 250
)
}
@Test
- fun refreshOffsets_translateAndResize_changeTranslatedAndSizesReportedCorrectly() {
+ fun refreshOffsets_translateAndResizeLayoutNodes_changeTranslatedAndSizesReportedCorrectly() {
refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
Box(0, 0, 500, 500),
Box(100, 100, 400, 400),
+ Point(0, 0),
Box(-50, 50, 550, 450), // Centered, scale by 100, -100
Box(105, 95, 395, 405), // Centered, scale by -10, 10
+ Point(0, 0),
+ 250, 250
+ )
+ }
+
+ @Test
+ fun refreshOffsets_updateOffsets_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ Box(0, 0, 500, 500),
+ Box(100, 100, 400, 400),
+ Point(0, 0),
+ Box(0, 0, 500, 500),
+ Box(100, 100, 400, 400),
+ Point(5, 15),
+ 250, 250
+ )
+ }
+
+ @Test
+ fun refreshOffsets_translateAll_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ Box(0, 0, 500, 500),
+ Box(100, 100, 400, 400),
+ Point(0, 0),
+ Box(50, -50, 550, 450), // Translate by 50, -50
+ Box(105, 95, 405, 395), // Translate by 5, -5
+ Point(100, -100), // updated by 100, -100
+ 250, 250
+ )
+ }
+
+ @Test
+ fun refreshOffsets_resizeLayoutNodesUpdateOffsets_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ Box(0, 0, 500, 500),
+ Box(100, 100, 400, 400),
+ Point(0, 0),
+ Box(0, 0, 450, 550), // Add to size by -50, 50
+ Box(100, 100, 395, 405), // Add to size by -5, 5
+ Point(100, -100),
+ 250, 250
+ )
+ }
+
+ @Test
+ fun refreshOffsets_translateAllResizeLayoutNodes_changeTranslatedAndSizesReportedCorrectly() {
+ refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
+ Box(0, 0, 500, 500),
+ Box(100, 100, 400, 400),
+ Point(0, 0),
+ Box(-50, 50, 550, 450), // Centered, scale by 100, -100
+ Box(105, 95, 395, 405), // Centered, scale by -10, 10
+ Point(100, -100),
250, 250
)
}
@@ -2534,8 +2635,10 @@
private fun refreshOffsets_changeTranslatedAndSizesReportedCorrectly(
p1: Box,
c1: Box,
+ aO1: Point,
p2: Box,
c2: Box,
+ aO2: Point,
pointerX: Int,
pointerY: Int
) {
@@ -2545,6 +2648,7 @@
val pointerPosition = PxPosition(pointerX.px, pointerY.px)
val parentOffset2 = PxPosition(p2.left.px, p2.top.px)
val childOffset2 = PxPosition(c2.left.px, c2.top.px)
+ val additionalOffset2 = IntPxPosition(aO2.x.ipx, aO2.y.ipx)
val parentSize2 = IntPxSize(p2.right.ipx - p2.left.ipx, p2.bottom.ipx - p2.top.ipx)
val childSize2 = IntPxSize(c2.right.ipx - c2.left.ipx, c2.bottom.ipx - c2.top.ipx)
@@ -2563,7 +2667,7 @@
hitResult.addHitPath(3, listOf(parentPointerInputNode, childPointerInputNode))
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(IntPxPosition(aO1.x.ipx, aO1.y.ipx))
childLayoutNode.place(c2.left.ipx, c2.top.ipx)
childLayoutNode
@@ -2574,7 +2678,7 @@
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(additionalOffset2)
// Assert
@@ -2585,7 +2689,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointerPosition - parentOffset2,
+ pointerPosition - parentOffset2 - additionalOffset2,
true
),
previous = PointerInputData(null, null, false),
@@ -2595,7 +2699,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointerPosition - parentOffset2 - childOffset2,
+ pointerPosition - parentOffset2 - childOffset2 - additionalOffset2,
true
),
previous = PointerInputData(null, null, false),
@@ -2681,9 +2785,11 @@
hitResult.addHitPath(3, listOf(parentPointerInputNode1, childPointerInputNode1))
hitResult.addHitPath(5, listOf(parentPointerInputNode2, childPointerInputNode2))
+ val additionalOffset = IntPxPosition(29.ipx, 31.ipx)
+
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(additionalOffset)
// Assert
@@ -2694,7 +2800,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer1Offset - parent1Offset,
+ pointer1Offset - parent1Offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2704,7 +2810,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer1Offset - parent1Offset - child1Offset,
+ pointer1Offset - parent1Offset - child1Offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2724,7 +2830,7 @@
id = 5,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer2Offset - parent2Offset,
+ pointer2Offset - parent2Offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2734,7 +2840,7 @@
id = 5,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer2Offset - parent2Offset - child2Offset,
+ pointer2Offset - parent2Offset - child2Offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2830,9 +2936,11 @@
hitResult.addHitPath(3, listOf(parentPointerInputNode, childPointerInputNode1))
hitResult.addHitPath(5, listOf(parentPointerInputNode, childPointerInputNode2))
+ val additionalOffset = IntPxPosition(29.ipx, 31.ipx)
+
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(additionalOffset)
// Assert
@@ -2841,7 +2949,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer1Offset - parentOffset,
+ pointer1Offset - parentOffset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2851,7 +2959,7 @@
id = 5,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer2Offset - parentOffset,
+ pointer2Offset - parentOffset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2864,7 +2972,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer1Offset - parentOffset - child1Offset,
+ pointer1Offset - parentOffset - child1Offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2877,7 +2985,7 @@
id = 5,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointer2Offset - parentOffset - child2Offset,
+ pointer2Offset - parentOffset - child2Offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -2957,9 +3065,11 @@
hitResult.addHitPath(3, listOf(pointerInputNode))
+ val additionalOffset = IntPxPosition(29.ipx, 31.ipx)
+
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(additionalOffset)
// Assert
@@ -2968,7 +3078,7 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointerOffset - parentOffset1 - parentOffset2 - childOffset,
+ pointerOffset - parentOffset1 - parentOffset2 - childOffset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -3040,9 +3150,11 @@
hitResult.addHitPath(3, listOf(parentPointerInputNode, childPointerInputNode))
+ val additionalOffset = IntPxPosition(29.ipx, 31.ipx)
+
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(additionalOffset)
// Assert
@@ -3053,7 +3165,8 @@
id = 3,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- pointerOffset - parentOffset1 - parentOffset2 - parentOffset3,
+ pointerOffset - parentOffset1 - parentOffset2 - parentOffset3 -
+ additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -3064,7 +3177,7 @@
current = PointerInputData(
7L.millisecondsToTimestamp(),
pointerOffset - parentOffset1 - parentOffset2 - parentOffset3 -
- childOffset1 - childOffset2,
+ childOffset1 - childOffset2 - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -3160,7 +3273,7 @@
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(IntPxPosition.Origin)
// Assert
@@ -3213,7 +3326,7 @@
// Act
- hitResult.refreshOffsets()
+ hitResult.refreshOffsets(IntPxPosition.Origin)
// Assert
@@ -3449,4 +3562,6 @@
}
}
-private data class Box(val left: Int, val top: Int, val right: Int, val bottom: Int)
\ No newline at end of file
+private data class Box(val left: Int, val top: Int, val right: Int, val bottom: Int)
+
+private data class Point(val x: Int, val y: Int)
\ No newline at end of file
diff --git a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt
index 5facb61..fb9da34 100644
--- a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt
+++ b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt
@@ -19,6 +19,7 @@
import androidx.test.filters.SmallTest
import androidx.ui.core.ConsumedData
import androidx.ui.core.DrawNode
+import androidx.ui.core.IntPxPosition
import androidx.ui.core.IntPxSize
import androidx.ui.core.LayoutNode
import androidx.ui.core.Owner
@@ -132,7 +133,7 @@
// Act
- events.forEach { pointerInputEventProcessor.process(it) }
+ events.forEach { pointerInputEventProcessor.process(it, IntPxPosition.Origin) }
// Assert
@@ -188,7 +189,7 @@
// Act
events.forEach {
- pointerInputEventProcessor.process(it)
+ pointerInputEventProcessor.process(it, IntPxPosition.Origin)
}
// Assert
@@ -236,7 +237,7 @@
// Act
events.forEach {
- pointerInputEventProcessor.process(it)
+ pointerInputEventProcessor.process(it, IntPxPosition.Origin)
}
// Assert
@@ -294,7 +295,7 @@
// Act
- pointerInputEventProcessor.process(event)
+ pointerInputEventProcessor.process(event, IntPxPosition.Origin)
// Assert
@@ -413,8 +414,8 @@
// Act
- pointerInputEventProcessor.process(down)
- pointerInputEventProcessor.process(move)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
+ pointerInputEventProcessor.process(move, IntPxPosition.Origin)
// Assert
@@ -425,31 +426,34 @@
}
@Test
- fun process_layoutNodesIncreasinglyInset_dispatchInfoIsCorrect() {
+ fun process_nodesAndAdditionalOffsetIncreasinglyInset_dispatchInfoIsCorrect() {
process_dispatchInfoIsCorrect(
0, 0, 100, 100,
2, 11, 100, 100,
23, 31, 100, 100,
+ 43, 51,
99, 99
)
}
@Test
- fun process_layoutNodesIncreasinglyOutset_dispatchInfoIsCorrect() {
+ fun process_nodesAndAdditionalOffsetIncreasinglyOutset_dispatchInfoIsCorrect() {
process_dispatchInfoIsCorrect(
0, 0, 100, 100,
-2, -11, 100, 100,
-23, -31, 100, 100,
+ -43, -51,
1, 1
)
}
@Test
- fun process_layoutNodesNotOffset_dispatchInfoIsCorrect() {
+ fun process_nodesAndAdditionalOffsetNotOffset_dispatchInfoIsCorrect() {
process_dispatchInfoIsCorrect(
0, 0, 100, 100,
0, 0, 100, 100,
0, 0, 100, 100,
+ 0, 0,
50, 50
)
}
@@ -468,6 +472,8 @@
cY1: Int,
cX2: Int,
cY2: Int,
+ aOX: Int,
+ aOY: Int,
pointerX: Int,
pointerY: Int
) {
@@ -497,6 +503,8 @@
}
root.emitInsertAt(0, parentPointerInputNode)
+ val additionalOffset = IntPxPosition(aOX.ipx, aOY.ipx)
+
val offset = PxPosition(pointerX.px, pointerY.px)
val down = PointerInputEvent(0, 7L.millisecondsToTimestamp(), offset, true)
@@ -510,15 +518,9 @@
val expectedPointerInputChanges = arrayOf(
PointerInputChange(
id = 0,
- current = PointerInputData(7L.millisecondsToTimestamp(), offset, true),
- previous = PointerInputData(null, null, false),
- consumed = ConsumedData()
- ),
- PointerInputChange(
- id = 0,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- offset - middleOffset,
+ offset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -528,7 +530,17 @@
id = 0,
current = PointerInputData(
7L.millisecondsToTimestamp(),
- offset - middleOffset - childOffset,
+ offset - middleOffset - additionalOffset,
+ true
+ ),
+ previous = PointerInputData(null, null, false),
+ consumed = ConsumedData()
+ ),
+ PointerInputChange(
+ id = 0,
+ current = PointerInputData(
+ 7L.millisecondsToTimestamp(),
+ offset - middleOffset - childOffset - additionalOffset,
true
),
previous = PointerInputData(null, null, false),
@@ -544,7 +556,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, additionalOffset)
// Assert
@@ -625,7 +637,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
@@ -733,7 +745,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
@@ -826,7 +838,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
@@ -920,7 +932,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
@@ -1012,7 +1024,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
// Assert
@@ -1109,7 +1121,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
// Assert
@@ -1220,7 +1232,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
// Assert
@@ -1323,7 +1335,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
// Assert
@@ -1420,7 +1432,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
// Assert
@@ -1449,6 +1461,90 @@
)
}
+ /**
+ * This test creates a layout of this shape:
+ *
+ * |---|
+ * |tt |
+ * |t |
+ * |---|t
+ * tt
+ *
+ * But where the additional offset suggest something more like this shape.
+ *
+ * tt
+ * t|---|
+ * | t|
+ * | tt|
+ * |---|
+ *
+ * Without the additional offset, it would be expected that only the top left 3 pointers would
+ * hit, but with the additional offset, only the bottom right 3 hit.
+ */
+ @Test
+ fun process_additionalOffsetExists_onlyCorrectPointersHit() {
+
+ // Arrange
+
+ val pointerInputNode: PointerInputNode = PointerInputNode().apply {
+ emitInsertAt(0, LayoutNode(0, 0, 2, 2))
+ pointerInputHandler = spy(MyPointerInputHandler())
+ }
+ root.apply {
+ emitInsertAt(0, pointerInputNode)
+ }
+ val offsetsThatHit =
+ listOf(
+ PxPosition(2.px, 2.px),
+ PxPosition(2.px, 1.px),
+ PxPosition(1.px, 2.px)
+ )
+ val offsetsThatMiss =
+ listOf(
+ PxPosition(0.px, 0.px),
+ PxPosition(0.px, 1.px),
+ PxPosition(1.px, 0.px)
+ )
+ val allOffsets = offsetsThatHit + offsetsThatMiss
+ val pointerInputEvent =
+ PointerInputEvent(
+ 11L.millisecondsToTimestamp(),
+ (allOffsets.indices).map {
+ PointerInputEventData(it, 11L.millisecondsToTimestamp(), allOffsets[it], true)
+ }
+ )
+
+ // Act
+
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition(1.ipx, 1.ipx))
+
+ // Assert
+
+ val expectedChanges =
+ (offsetsThatHit.indices).map {
+ PointerInputChange(
+ id = it,
+ current = PointerInputData(
+ 11L.millisecondsToTimestamp(),
+ offsetsThatHit[it] - PxPosition(1.px, 1.px),
+ true
+ ),
+ previous = PointerInputData(null, null, false),
+ consumed = ConsumedData()
+ )
+ }
+ PointerEventPass.values().forEach { pointerEventPass ->
+ verify(pointerInputNode.pointerInputHandler).invoke(
+ eq(expectedChanges),
+ eq(pointerEventPass),
+ any()
+ )
+ }
+ verifyNoMoreInteractions(
+ pointerInputNode.pointerInputHandler
+ )
+ }
+
@Test
fun process_downOn3NestedPointerInputNodes_hitAndDispatchInfoAreCorrect() {
val childPointerInputNode1: PointerInputNode = PointerInputNode().apply {
@@ -1489,7 +1585,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
@@ -1560,7 +1656,7 @@
// Act
- pointerInputEventProcessor.process(downEvent)
+ pointerInputEventProcessor.process(downEvent, IntPxPosition.Origin)
// Assert
@@ -1646,7 +1742,7 @@
// Act
- pointerInputEventProcessor.process(downEvent)
+ pointerInputEventProcessor.process(downEvent, IntPxPosition.Origin)
// Assert
@@ -1703,7 +1799,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
verify(childPointerInputNode2.pointerInputHandler, times(5)).invoke(any(), any(), any())
@@ -1733,7 +1829,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
verify(pointerInputNode.pointerInputHandler, times(5)).invoke(any(), any(), any())
@@ -1755,7 +1851,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
verify(pointerInputNode.pointerInputHandler, never()).invoke(any(), any(), any())
@@ -1782,7 +1878,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
verify(pointerInputNode.pointerInputHandler, never()).invoke(any(), any(), any())
@@ -1804,7 +1900,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
// Assert
verify(pointerInputNode.pointerInputHandler, never()).invoke(any(), any(), any())
@@ -1850,9 +1946,9 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
parentLayoutNode.emitRemoveAt(0, 1)
- pointerInputEventProcessor.process(up)
+ pointerInputEventProcessor.process(up, IntPxPosition.Origin)
// Assert
@@ -1907,7 +2003,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
pointerInputEventProcessor.processCancel()
// Assert
@@ -2011,8 +2107,8 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent1)
- pointerInputEventProcessor.process(pointerInputEvent2)
+ pointerInputEventProcessor.process(pointerInputEvent1, IntPxPosition.Origin)
+ pointerInputEventProcessor.process(pointerInputEvent2, IntPxPosition.Origin)
pointerInputEventProcessor.processCancel()
// Assert
@@ -2105,7 +2201,7 @@
// Act
- pointerInputEventProcessor.process(pointerInputEvent)
+ pointerInputEventProcessor.process(pointerInputEvent, IntPxPosition.Origin)
pointerInputEventProcessor.processCancel()
// Assert
@@ -2196,8 +2292,8 @@
// Act
- pointerInputEventProcessor.process(down)
- pointerInputEventProcessor.process(move)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
+ pointerInputEventProcessor.process(move, IntPxPosition.Origin)
pointerInputEventProcessor.processCancel()
// Assert
@@ -2259,7 +2355,7 @@
// Act
- pointerInputEventProcessor.process(down)
+ pointerInputEventProcessor.process(down, IntPxPosition.Origin)
pointerInputEventProcessor.processCancel()
// Assert
@@ -2334,9 +2430,9 @@
// Act
- pointerInputEventProcessor.process(down1)
+ pointerInputEventProcessor.process(down1, IntPxPosition.Origin)
pointerInputEventProcessor.processCancel()
- pointerInputEventProcessor.process(down2)
+ pointerInputEventProcessor.process(down2, IntPxPosition.Origin)
// Assert
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/TypefaceAdapterTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/TypefaceAdapterTest.kt
index 1dff233..0923444 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/TypefaceAdapterTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/TypefaceAdapterTest.kt
@@ -480,7 +480,6 @@
)
assertThat(typeface.isItalic).isFalse()
- // TODO(siyamed) ask this to Nona.
if (Build.VERSION.SDK_INT < 23) {
assertThat(typeface.isBold).isFalse()
} else if (Build.VERSION.SDK_INT < 28) {
diff --git a/ui/ui-vector/api/0.1.0-dev03.txt b/ui/ui-vector/api/0.1.0-dev03.txt
index 0f7c4dc..3a900627 100644
--- a/ui/ui-vector/api/0.1.0-dev03.txt
+++ b/ui/ui-vector/api/0.1.0-dev03.txt
@@ -5,7 +5,7 @@
ctor public GroupComponent(String name);
ctor public GroupComponent();
method public void draw(androidx.ui.graphics.Canvas canvas);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -18,7 +18,7 @@
method public void insertAt(int index, androidx.ui.graphics.vector.VNode instance);
method public void move(int from, int to, int count);
method public void remove(int index, int count);
- method public void setClipPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setClipPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setPivotX(float value);
method public void setPivotY(float value);
method public void setRotation(float value);
@@ -26,7 +26,7 @@
method public void setScaleY(float value);
method public void setTranslationX(float value);
method public void setTranslationY(float value);
- property public final androidx.ui.graphics.vector.PathNode![] clipPathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData;
property public final float pivotX;
property public final float pivotY;
property public final float rotation;
@@ -43,7 +43,7 @@
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
@@ -52,7 +52,7 @@
method public float getStrokeLineWidth();
method public void setFill(androidx.ui.graphics.Brush? value);
method public void setFillAlpha(float value);
- method public void setPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setStroke(androidx.ui.graphics.Brush? value);
method public void setStrokeAlpha(float value);
method public void setStrokeLineCap(androidx.ui.graphics.StrokeCap value);
@@ -61,7 +61,7 @@
method public void setStrokeLineWidth(float value);
property public final androidx.ui.graphics.Brush? fill;
property public final float fillAlpha;
- property public final androidx.ui.graphics.vector.PathNode![] pathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> pathData;
property public final androidx.ui.graphics.Brush? stroke;
property public final float strokeAlpha;
property public final androidx.ui.graphics.StrokeCap strokeLineCap;
@@ -117,13 +117,13 @@
public final class VectorKt {
ctor public VectorKt();
- method public static inline androidx.ui.graphics.vector.PathNode![] PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
- method public static androidx.ui.graphics.vector.PathNode![] addPathNodes(String? pathStr);
+ method public static inline java.util.List<androidx.ui.graphics.vector.PathNode> PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> addPathNodes(String? pathStr);
method public static androidx.ui.graphics.StrokeCap getDefaultStrokeLineCap();
method public static androidx.ui.graphics.StrokeJoin getDefaultStrokeLineJoin();
method public static androidx.ui.graphics.BlendMode getDefaultTintBlendMode();
method public static androidx.ui.graphics.Color getDefaultTintColor();
- method public static androidx.ui.graphics.vector.PathNode![] getEmptyPath();
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> getEmptyPath();
field public static final float DefaultAlpha = 1.0f;
field public static final String DefaultGroupName = "";
field public static final String DefaultPathName = "";
diff --git a/ui/ui-vector/api/api_lint.ignore b/ui/ui-vector/api/api_lint.ignore
index 9f3bd8f..d206a00 100644
--- a/ui/ui-vector/api/api_lint.ignore
+++ b/ui/ui-vector/api/api_lint.ignore
@@ -1,19 +1,3 @@
// Baseline format: 1.0
AcronymName: androidx.ui.graphics.vector.VectorComposeNonIRKt:
Acronyms should not be capitalized in class names: was `VectorComposeNonIRKt`, should this be `VectorComposeNonIrKt`?
-
-
-ArrayReturn: androidx.ui.graphics.vector.GroupComponent#getClipPathData():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.GroupComponent#setClipPathData(androidx.ui.graphics.vector.PathNode[]) parameter #0:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.PathComponent#getPathData():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.PathComponent#setPathData(androidx.ui.graphics.vector.PathNode[]) parameter #0:
- Method parameter should be Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorKt#PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit>):
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorKt#addPathNodes(String):
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
-ArrayReturn: androidx.ui.graphics.vector.VectorKt#getEmptyPath():
- Method should return Collection<PathNode> (or subclass) instead of raw array; was `androidx.ui.graphics.vector.PathNode[]`
diff --git a/ui/ui-vector/api/current.txt b/ui/ui-vector/api/current.txt
index 0f7c4dc..3a900627 100644
--- a/ui/ui-vector/api/current.txt
+++ b/ui/ui-vector/api/current.txt
@@ -5,7 +5,7 @@
ctor public GroupComponent(String name);
ctor public GroupComponent();
method public void draw(androidx.ui.graphics.Canvas canvas);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -18,7 +18,7 @@
method public void insertAt(int index, androidx.ui.graphics.vector.VNode instance);
method public void move(int from, int to, int count);
method public void remove(int index, int count);
- method public void setClipPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setClipPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setPivotX(float value);
method public void setPivotY(float value);
method public void setRotation(float value);
@@ -26,7 +26,7 @@
method public void setScaleY(float value);
method public void setTranslationX(float value);
method public void setTranslationY(float value);
- property public final androidx.ui.graphics.vector.PathNode![] clipPathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData;
property public final float pivotX;
property public final float pivotY;
property public final float rotation;
@@ -43,7 +43,7 @@
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
@@ -52,7 +52,7 @@
method public float getStrokeLineWidth();
method public void setFill(androidx.ui.graphics.Brush? value);
method public void setFillAlpha(float value);
- method public void setPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setStroke(androidx.ui.graphics.Brush? value);
method public void setStrokeAlpha(float value);
method public void setStrokeLineCap(androidx.ui.graphics.StrokeCap value);
@@ -61,7 +61,7 @@
method public void setStrokeLineWidth(float value);
property public final androidx.ui.graphics.Brush? fill;
property public final float fillAlpha;
- property public final androidx.ui.graphics.vector.PathNode![] pathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> pathData;
property public final androidx.ui.graphics.Brush? stroke;
property public final float strokeAlpha;
property public final androidx.ui.graphics.StrokeCap strokeLineCap;
@@ -117,13 +117,13 @@
public final class VectorKt {
ctor public VectorKt();
- method public static inline androidx.ui.graphics.vector.PathNode![] PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
- method public static androidx.ui.graphics.vector.PathNode![] addPathNodes(String? pathStr);
+ method public static inline java.util.List<androidx.ui.graphics.vector.PathNode> PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> addPathNodes(String? pathStr);
method public static androidx.ui.graphics.StrokeCap getDefaultStrokeLineCap();
method public static androidx.ui.graphics.StrokeJoin getDefaultStrokeLineJoin();
method public static androidx.ui.graphics.BlendMode getDefaultTintBlendMode();
method public static androidx.ui.graphics.Color getDefaultTintColor();
- method public static androidx.ui.graphics.vector.PathNode![] getEmptyPath();
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> getEmptyPath();
field public static final float DefaultAlpha = 1.0f;
field public static final String DefaultGroupName = "";
field public static final String DefaultPathName = "";
diff --git a/ui/ui-vector/api/public_plus_experimental_0.1.0-dev03.txt b/ui/ui-vector/api/public_plus_experimental_0.1.0-dev03.txt
index 0f7c4dc..3a900627 100644
--- a/ui/ui-vector/api/public_plus_experimental_0.1.0-dev03.txt
+++ b/ui/ui-vector/api/public_plus_experimental_0.1.0-dev03.txt
@@ -5,7 +5,7 @@
ctor public GroupComponent(String name);
ctor public GroupComponent();
method public void draw(androidx.ui.graphics.Canvas canvas);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -18,7 +18,7 @@
method public void insertAt(int index, androidx.ui.graphics.vector.VNode instance);
method public void move(int from, int to, int count);
method public void remove(int index, int count);
- method public void setClipPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setClipPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setPivotX(float value);
method public void setPivotY(float value);
method public void setRotation(float value);
@@ -26,7 +26,7 @@
method public void setScaleY(float value);
method public void setTranslationX(float value);
method public void setTranslationY(float value);
- property public final androidx.ui.graphics.vector.PathNode![] clipPathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData;
property public final float pivotX;
property public final float pivotY;
property public final float rotation;
@@ -43,7 +43,7 @@
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
@@ -52,7 +52,7 @@
method public float getStrokeLineWidth();
method public void setFill(androidx.ui.graphics.Brush? value);
method public void setFillAlpha(float value);
- method public void setPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setStroke(androidx.ui.graphics.Brush? value);
method public void setStrokeAlpha(float value);
method public void setStrokeLineCap(androidx.ui.graphics.StrokeCap value);
@@ -61,7 +61,7 @@
method public void setStrokeLineWidth(float value);
property public final androidx.ui.graphics.Brush? fill;
property public final float fillAlpha;
- property public final androidx.ui.graphics.vector.PathNode![] pathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> pathData;
property public final androidx.ui.graphics.Brush? stroke;
property public final float strokeAlpha;
property public final androidx.ui.graphics.StrokeCap strokeLineCap;
@@ -117,13 +117,13 @@
public final class VectorKt {
ctor public VectorKt();
- method public static inline androidx.ui.graphics.vector.PathNode![] PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
- method public static androidx.ui.graphics.vector.PathNode![] addPathNodes(String? pathStr);
+ method public static inline java.util.List<androidx.ui.graphics.vector.PathNode> PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> addPathNodes(String? pathStr);
method public static androidx.ui.graphics.StrokeCap getDefaultStrokeLineCap();
method public static androidx.ui.graphics.StrokeJoin getDefaultStrokeLineJoin();
method public static androidx.ui.graphics.BlendMode getDefaultTintBlendMode();
method public static androidx.ui.graphics.Color getDefaultTintColor();
- method public static androidx.ui.graphics.vector.PathNode![] getEmptyPath();
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> getEmptyPath();
field public static final float DefaultAlpha = 1.0f;
field public static final String DefaultGroupName = "";
field public static final String DefaultPathName = "";
diff --git a/ui/ui-vector/api/public_plus_experimental_current.txt b/ui/ui-vector/api/public_plus_experimental_current.txt
index 0f7c4dc..3a900627 100644
--- a/ui/ui-vector/api/public_plus_experimental_current.txt
+++ b/ui/ui-vector/api/public_plus_experimental_current.txt
@@ -5,7 +5,7 @@
ctor public GroupComponent(String name);
ctor public GroupComponent();
method public void draw(androidx.ui.graphics.Canvas canvas);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -18,7 +18,7 @@
method public void insertAt(int index, androidx.ui.graphics.vector.VNode instance);
method public void move(int from, int to, int count);
method public void remove(int index, int count);
- method public void setClipPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setClipPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setPivotX(float value);
method public void setPivotY(float value);
method public void setRotation(float value);
@@ -26,7 +26,7 @@
method public void setScaleY(float value);
method public void setTranslationX(float value);
method public void setTranslationY(float value);
- property public final androidx.ui.graphics.vector.PathNode![] clipPathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData;
property public final float pivotX;
property public final float pivotY;
property public final float rotation;
@@ -43,7 +43,7 @@
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
@@ -52,7 +52,7 @@
method public float getStrokeLineWidth();
method public void setFill(androidx.ui.graphics.Brush? value);
method public void setFillAlpha(float value);
- method public void setPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setStroke(androidx.ui.graphics.Brush? value);
method public void setStrokeAlpha(float value);
method public void setStrokeLineCap(androidx.ui.graphics.StrokeCap value);
@@ -61,7 +61,7 @@
method public void setStrokeLineWidth(float value);
property public final androidx.ui.graphics.Brush? fill;
property public final float fillAlpha;
- property public final androidx.ui.graphics.vector.PathNode![] pathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> pathData;
property public final androidx.ui.graphics.Brush? stroke;
property public final float strokeAlpha;
property public final androidx.ui.graphics.StrokeCap strokeLineCap;
@@ -117,13 +117,13 @@
public final class VectorKt {
ctor public VectorKt();
- method public static inline androidx.ui.graphics.vector.PathNode![] PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
- method public static androidx.ui.graphics.vector.PathNode![] addPathNodes(String? pathStr);
+ method public static inline java.util.List<androidx.ui.graphics.vector.PathNode> PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> addPathNodes(String? pathStr);
method public static androidx.ui.graphics.StrokeCap getDefaultStrokeLineCap();
method public static androidx.ui.graphics.StrokeJoin getDefaultStrokeLineJoin();
method public static androidx.ui.graphics.BlendMode getDefaultTintBlendMode();
method public static androidx.ui.graphics.Color getDefaultTintColor();
- method public static androidx.ui.graphics.vector.PathNode![] getEmptyPath();
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> getEmptyPath();
field public static final float DefaultAlpha = 1.0f;
field public static final String DefaultGroupName = "";
field public static final String DefaultPathName = "";
diff --git a/ui/ui-vector/api/restricted_0.1.0-dev03.txt b/ui/ui-vector/api/restricted_0.1.0-dev03.txt
index 0f7c4dc..3a900627 100644
--- a/ui/ui-vector/api/restricted_0.1.0-dev03.txt
+++ b/ui/ui-vector/api/restricted_0.1.0-dev03.txt
@@ -5,7 +5,7 @@
ctor public GroupComponent(String name);
ctor public GroupComponent();
method public void draw(androidx.ui.graphics.Canvas canvas);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -18,7 +18,7 @@
method public void insertAt(int index, androidx.ui.graphics.vector.VNode instance);
method public void move(int from, int to, int count);
method public void remove(int index, int count);
- method public void setClipPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setClipPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setPivotX(float value);
method public void setPivotY(float value);
method public void setRotation(float value);
@@ -26,7 +26,7 @@
method public void setScaleY(float value);
method public void setTranslationX(float value);
method public void setTranslationY(float value);
- property public final androidx.ui.graphics.vector.PathNode![] clipPathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData;
property public final float pivotX;
property public final float pivotY;
property public final float rotation;
@@ -43,7 +43,7 @@
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
@@ -52,7 +52,7 @@
method public float getStrokeLineWidth();
method public void setFill(androidx.ui.graphics.Brush? value);
method public void setFillAlpha(float value);
- method public void setPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setStroke(androidx.ui.graphics.Brush? value);
method public void setStrokeAlpha(float value);
method public void setStrokeLineCap(androidx.ui.graphics.StrokeCap value);
@@ -61,7 +61,7 @@
method public void setStrokeLineWidth(float value);
property public final androidx.ui.graphics.Brush? fill;
property public final float fillAlpha;
- property public final androidx.ui.graphics.vector.PathNode![] pathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> pathData;
property public final androidx.ui.graphics.Brush? stroke;
property public final float strokeAlpha;
property public final androidx.ui.graphics.StrokeCap strokeLineCap;
@@ -117,13 +117,13 @@
public final class VectorKt {
ctor public VectorKt();
- method public static inline androidx.ui.graphics.vector.PathNode![] PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
- method public static androidx.ui.graphics.vector.PathNode![] addPathNodes(String? pathStr);
+ method public static inline java.util.List<androidx.ui.graphics.vector.PathNode> PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> addPathNodes(String? pathStr);
method public static androidx.ui.graphics.StrokeCap getDefaultStrokeLineCap();
method public static androidx.ui.graphics.StrokeJoin getDefaultStrokeLineJoin();
method public static androidx.ui.graphics.BlendMode getDefaultTintBlendMode();
method public static androidx.ui.graphics.Color getDefaultTintColor();
- method public static androidx.ui.graphics.vector.PathNode![] getEmptyPath();
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> getEmptyPath();
field public static final float DefaultAlpha = 1.0f;
field public static final String DefaultGroupName = "";
field public static final String DefaultPathName = "";
diff --git a/ui/ui-vector/api/restricted_current.txt b/ui/ui-vector/api/restricted_current.txt
index 0f7c4dc..3a900627 100644
--- a/ui/ui-vector/api/restricted_current.txt
+++ b/ui/ui-vector/api/restricted_current.txt
@@ -5,7 +5,7 @@
ctor public GroupComponent(String name);
ctor public GroupComponent();
method public void draw(androidx.ui.graphics.Canvas canvas);
- method public androidx.ui.graphics.vector.PathNode![] getClipPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getClipPathData();
method public String getName();
method public float getPivotX();
method public float getPivotY();
@@ -18,7 +18,7 @@
method public void insertAt(int index, androidx.ui.graphics.vector.VNode instance);
method public void move(int from, int to, int count);
method public void remove(int index, int count);
- method public void setClipPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setClipPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setPivotX(float value);
method public void setPivotY(float value);
method public void setRotation(float value);
@@ -26,7 +26,7 @@
method public void setScaleY(float value);
method public void setTranslationX(float value);
method public void setTranslationY(float value);
- property public final androidx.ui.graphics.vector.PathNode![] clipPathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> clipPathData;
property public final float pivotX;
property public final float pivotY;
property public final float rotation;
@@ -43,7 +43,7 @@
method public androidx.ui.graphics.Brush? getFill();
method public float getFillAlpha();
method public String getName();
- method public androidx.ui.graphics.vector.PathNode![] getPathData();
+ method public java.util.List<androidx.ui.graphics.vector.PathNode> getPathData();
method public androidx.ui.graphics.Brush? getStroke();
method public float getStrokeAlpha();
method public androidx.ui.graphics.StrokeCap getStrokeLineCap();
@@ -52,7 +52,7 @@
method public float getStrokeLineWidth();
method public void setFill(androidx.ui.graphics.Brush? value);
method public void setFillAlpha(float value);
- method public void setPathData(androidx.ui.graphics.vector.PathNode![] value);
+ method public void setPathData(java.util.List<androidx.ui.graphics.vector.PathNode> value);
method public void setStroke(androidx.ui.graphics.Brush? value);
method public void setStrokeAlpha(float value);
method public void setStrokeLineCap(androidx.ui.graphics.StrokeCap value);
@@ -61,7 +61,7 @@
method public void setStrokeLineWidth(float value);
property public final androidx.ui.graphics.Brush? fill;
property public final float fillAlpha;
- property public final androidx.ui.graphics.vector.PathNode![] pathData;
+ property public final java.util.List<androidx.ui.graphics.vector.PathNode> pathData;
property public final androidx.ui.graphics.Brush? stroke;
property public final float strokeAlpha;
property public final androidx.ui.graphics.StrokeCap strokeLineCap;
@@ -117,13 +117,13 @@
public final class VectorKt {
ctor public VectorKt();
- method public static inline androidx.ui.graphics.vector.PathNode![] PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
- method public static androidx.ui.graphics.vector.PathNode![] addPathNodes(String? pathStr);
+ method public static inline java.util.List<androidx.ui.graphics.vector.PathNode> PathData(kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.PathBuilder,kotlin.Unit> block);
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> addPathNodes(String? pathStr);
method public static androidx.ui.graphics.StrokeCap getDefaultStrokeLineCap();
method public static androidx.ui.graphics.StrokeJoin getDefaultStrokeLineJoin();
method public static androidx.ui.graphics.BlendMode getDefaultTintBlendMode();
method public static androidx.ui.graphics.Color getDefaultTintColor();
- method public static androidx.ui.graphics.vector.PathNode![] getEmptyPath();
+ method public static java.util.List<androidx.ui.graphics.vector.PathNode> getEmptyPath();
field public static final float DefaultAlpha = 1.0f;
field public static final String DefaultGroupName = "";
field public static final String DefaultPathName = "";
diff --git a/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt b/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt
index dad7d2a..a75bd8e 100644
--- a/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt
+++ b/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt
@@ -42,7 +42,7 @@
const val DefaultTranslationX = 0.0f
const val DefaultTranslationY = 0.0f
-val EmptyPath = emptyArray<PathNode>()
+val EmptyPath = emptyList<PathNode>()
/**
* paint used to draw the cached vector graphic to the provided canvas
@@ -50,7 +50,7 @@
// TODO (njawad) Can we update the Compose Canvas API to make this paint optional?
internal val EmptyPaint = Paint()
-inline fun PathData(block: PathBuilder.() -> Unit): Array<PathNode> =
+inline fun PathData(block: PathBuilder.() -> Unit): List<PathNode> =
with(PathBuilder()) {
block()
getNodes()
@@ -66,7 +66,7 @@
val DefaultTintBlendMode = BlendMode.srcIn
val DefaultTintColor = Color.Transparent
-fun addPathNodes(pathStr: String?): Array<PathNode> =
+fun addPathNodes(pathStr: String?): List<PathNode> =
if (pathStr == null) {
EmptyPath
} else {
@@ -171,7 +171,7 @@
}
}
- var pathData: Array<PathNode> = emptyArray()
+ var pathData: List<PathNode> = EmptyPath
set(value) {
field = value
isPathDirty = true
@@ -312,7 +312,7 @@
private val children = mutableListOf<VNode>()
- var clipPathData: Array<PathNode> = EmptyPath
+ var clipPathData: List<PathNode> = EmptyPath
set(value) {
field = value
isClipPathDirty = true
diff --git a/work/workmanager-gcm/api/2.3.0-beta01.txt b/work/workmanager-gcm/api/2.3.0-beta01.txt
new file mode 100644
index 0000000..da4f6cc
--- /dev/null
+++ b/work/workmanager-gcm/api/2.3.0-beta01.txt
@@ -0,0 +1 @@
+// Signature format: 3.0
diff --git a/work/workmanager-gcm/api/public_plus_experimental_2.3.0-beta01.txt b/work/workmanager-gcm/api/public_plus_experimental_2.3.0-beta01.txt
new file mode 100644
index 0000000..da4f6cc
--- /dev/null
+++ b/work/workmanager-gcm/api/public_plus_experimental_2.3.0-beta01.txt
@@ -0,0 +1 @@
+// Signature format: 3.0
diff --git a/work/workmanager-gcm/api/res-2.3.0-beta01.txt b/work/workmanager-gcm/api/res-2.3.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/work/workmanager-gcm/api/res-2.3.0-beta01.txt
diff --git a/work/workmanager-gcm/api/restricted_2.3.0-beta01.txt b/work/workmanager-gcm/api/restricted_2.3.0-beta01.txt
new file mode 100644
index 0000000..da4f6cc
--- /dev/null
+++ b/work/workmanager-gcm/api/restricted_2.3.0-beta01.txt
@@ -0,0 +1 @@
+// Signature format: 3.0
diff --git a/work/workmanager-ktx/api/2.3.0-beta01.txt b/work/workmanager-ktx/api/2.3.0-beta01.txt
new file mode 100644
index 0000000..5873b39
--- /dev/null
+++ b/work/workmanager-ktx/api/2.3.0-beta01.txt
@@ -0,0 +1,45 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public abstract class CoroutineWorker extends androidx.work.ListenableWorker {
+ ctor public CoroutineWorker(android.content.Context appContext, androidx.work.WorkerParameters params);
+ method public abstract suspend Object doWork(kotlin.coroutines.Continuation<? super androidx.work.ListenableWorker.Result> p);
+ method @Deprecated public kotlinx.coroutines.CoroutineDispatcher getCoroutineContext();
+ method public final void onStopped();
+ method public final suspend Object! setForeground(androidx.work.ForegroundInfo foregroundInfo, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
+ method public final suspend Object! setProgress(androidx.work.Data data, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
+ method public final com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result> startWork();
+ property @Deprecated public kotlinx.coroutines.CoroutineDispatcher coroutineContext;
+ }
+
+ public final class DataKt {
+ ctor public DataKt();
+ method public static inline <reified T> boolean hasKeyWithValueOfType(androidx.work.Data, String key);
+ method public static inline androidx.work.Data workDataOf(kotlin.Pair<java.lang.String,?>... pairs);
+ }
+
+ public final class ListenableFutureKt {
+ ctor public ListenableFutureKt();
+ }
+
+ public final class OneTimeWorkRequestKt {
+ ctor public OneTimeWorkRequestKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.OneTimeWorkRequest.Builder OneTimeWorkRequestBuilder();
+ method public static inline androidx.work.OneTimeWorkRequest.Builder setInputMerger(androidx.work.OneTimeWorkRequest.Builder, kotlin.reflect.KClass<? extends androidx.work.InputMerger> inputMerger);
+ }
+
+ public final class OperationKt {
+ ctor public OperationKt();
+ method public static suspend inline Object! await(androidx.work.Operation, kotlin.coroutines.Continuation<? super androidx.work.Operation.State.SUCCESS> p);
+ }
+
+ public final class PeriodicWorkRequestKt {
+ ctor public PeriodicWorkRequestKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit);
+ method @RequiresApi(26) public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(java.time.Duration repeatInterval);
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit, long flexTimeInterval, java.util.concurrent.TimeUnit flexTimeIntervalUnit);
+ method @RequiresApi(26) public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(java.time.Duration repeatInterval, java.time.Duration flexTimeInterval);
+ }
+
+}
+
diff --git a/work/workmanager-ktx/api/public_plus_experimental_2.3.0-beta01.txt b/work/workmanager-ktx/api/public_plus_experimental_2.3.0-beta01.txt
new file mode 100644
index 0000000..5873b39
--- /dev/null
+++ b/work/workmanager-ktx/api/public_plus_experimental_2.3.0-beta01.txt
@@ -0,0 +1,45 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public abstract class CoroutineWorker extends androidx.work.ListenableWorker {
+ ctor public CoroutineWorker(android.content.Context appContext, androidx.work.WorkerParameters params);
+ method public abstract suspend Object doWork(kotlin.coroutines.Continuation<? super androidx.work.ListenableWorker.Result> p);
+ method @Deprecated public kotlinx.coroutines.CoroutineDispatcher getCoroutineContext();
+ method public final void onStopped();
+ method public final suspend Object! setForeground(androidx.work.ForegroundInfo foregroundInfo, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
+ method public final suspend Object! setProgress(androidx.work.Data data, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
+ method public final com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result> startWork();
+ property @Deprecated public kotlinx.coroutines.CoroutineDispatcher coroutineContext;
+ }
+
+ public final class DataKt {
+ ctor public DataKt();
+ method public static inline <reified T> boolean hasKeyWithValueOfType(androidx.work.Data, String key);
+ method public static inline androidx.work.Data workDataOf(kotlin.Pair<java.lang.String,?>... pairs);
+ }
+
+ public final class ListenableFutureKt {
+ ctor public ListenableFutureKt();
+ }
+
+ public final class OneTimeWorkRequestKt {
+ ctor public OneTimeWorkRequestKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.OneTimeWorkRequest.Builder OneTimeWorkRequestBuilder();
+ method public static inline androidx.work.OneTimeWorkRequest.Builder setInputMerger(androidx.work.OneTimeWorkRequest.Builder, kotlin.reflect.KClass<? extends androidx.work.InputMerger> inputMerger);
+ }
+
+ public final class OperationKt {
+ ctor public OperationKt();
+ method public static suspend inline Object! await(androidx.work.Operation, kotlin.coroutines.Continuation<? super androidx.work.Operation.State.SUCCESS> p);
+ }
+
+ public final class PeriodicWorkRequestKt {
+ ctor public PeriodicWorkRequestKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit);
+ method @RequiresApi(26) public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(java.time.Duration repeatInterval);
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit, long flexTimeInterval, java.util.concurrent.TimeUnit flexTimeIntervalUnit);
+ method @RequiresApi(26) public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(java.time.Duration repeatInterval, java.time.Duration flexTimeInterval);
+ }
+
+}
+
diff --git a/work/workmanager-ktx/api/res-2.3.0-beta01.txt b/work/workmanager-ktx/api/res-2.3.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/work/workmanager-ktx/api/res-2.3.0-beta01.txt
diff --git a/work/workmanager-ktx/api/restricted_2.3.0-beta01.txt b/work/workmanager-ktx/api/restricted_2.3.0-beta01.txt
new file mode 100644
index 0000000..075851a
--- /dev/null
+++ b/work/workmanager-ktx/api/restricted_2.3.0-beta01.txt
@@ -0,0 +1,51 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public abstract class CoroutineWorker extends androidx.work.ListenableWorker {
+ ctor public CoroutineWorker(android.content.Context appContext, androidx.work.WorkerParameters params);
+ method public abstract suspend Object doWork(kotlin.coroutines.Continuation<? super androidx.work.ListenableWorker.Result> p);
+ method @Deprecated public kotlinx.coroutines.CoroutineDispatcher getCoroutineContext();
+ method public final void onStopped();
+ method public final suspend Object! setForeground(androidx.work.ForegroundInfo foregroundInfo, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
+ method public final suspend Object! setProgress(androidx.work.Data data, kotlin.coroutines.Continuation<? super kotlin.Unit> p);
+ method public final com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result> startWork();
+ property @Deprecated public kotlinx.coroutines.CoroutineDispatcher coroutineContext;
+ }
+
+ public final class DataKt {
+ ctor public DataKt();
+ method public static inline <reified T> boolean hasKeyWithValueOfType(androidx.work.Data, String key);
+ method public static inline androidx.work.Data workDataOf(kotlin.Pair<java.lang.String,?>... pairs);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public enum DirectExecutor implements java.util.concurrent.Executor {
+ method public void execute(Runnable command);
+ enum_constant public static final androidx.work.DirectExecutor INSTANCE;
+ }
+
+ public final class ListenableFutureKt {
+ ctor public ListenableFutureKt();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static suspend inline <R> Object! await(com.google.common.util.concurrent.ListenableFuture<R>, kotlin.coroutines.Continuation<? super R> p);
+ }
+
+ public final class OneTimeWorkRequestKt {
+ ctor public OneTimeWorkRequestKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.OneTimeWorkRequest.Builder OneTimeWorkRequestBuilder();
+ method public static inline androidx.work.OneTimeWorkRequest.Builder setInputMerger(androidx.work.OneTimeWorkRequest.Builder, kotlin.reflect.KClass<? extends androidx.work.InputMerger> inputMerger);
+ }
+
+ public final class OperationKt {
+ ctor public OperationKt();
+ method public static suspend inline Object! await(androidx.work.Operation, kotlin.coroutines.Continuation<? super androidx.work.Operation.State.SUCCESS> p);
+ }
+
+ public final class PeriodicWorkRequestKt {
+ ctor public PeriodicWorkRequestKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit);
+ method @RequiresApi(26) public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(java.time.Duration repeatInterval);
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(long repeatInterval, java.util.concurrent.TimeUnit repeatIntervalTimeUnit, long flexTimeInterval, java.util.concurrent.TimeUnit flexTimeIntervalUnit);
+ method @RequiresApi(26) public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(java.time.Duration repeatInterval, java.time.Duration flexTimeInterval);
+ }
+
+}
+
diff --git a/work/workmanager-rxjava2/api/2.3.0-beta01.txt b/work/workmanager-rxjava2/api/2.3.0-beta01.txt
new file mode 100644
index 0000000..757ca4c
--- /dev/null
+++ b/work/workmanager-rxjava2/api/2.3.0-beta01.txt
@@ -0,0 +1,13 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public abstract class RxWorker extends androidx.work.ListenableWorker {
+ ctor public RxWorker(android.content.Context, androidx.work.WorkerParameters);
+ method @MainThread public abstract io.reactivex.Single<androidx.work.ListenableWorker.Result!> createWork();
+ method protected io.reactivex.Scheduler getBackgroundScheduler();
+ method public final io.reactivex.Single<java.lang.Void!> setProgress(androidx.work.Data);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+}
+
diff --git a/work/workmanager-rxjava2/api/public_plus_experimental_2.3.0-beta01.txt b/work/workmanager-rxjava2/api/public_plus_experimental_2.3.0-beta01.txt
new file mode 100644
index 0000000..757ca4c
--- /dev/null
+++ b/work/workmanager-rxjava2/api/public_plus_experimental_2.3.0-beta01.txt
@@ -0,0 +1,13 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public abstract class RxWorker extends androidx.work.ListenableWorker {
+ ctor public RxWorker(android.content.Context, androidx.work.WorkerParameters);
+ method @MainThread public abstract io.reactivex.Single<androidx.work.ListenableWorker.Result!> createWork();
+ method protected io.reactivex.Scheduler getBackgroundScheduler();
+ method public final io.reactivex.Single<java.lang.Void!> setProgress(androidx.work.Data);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+}
+
diff --git a/work/workmanager-rxjava2/api/res-2.3.0-beta01.txt b/work/workmanager-rxjava2/api/res-2.3.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/work/workmanager-rxjava2/api/res-2.3.0-beta01.txt
diff --git a/work/workmanager-rxjava2/api/restricted_2.3.0-beta01.txt b/work/workmanager-rxjava2/api/restricted_2.3.0-beta01.txt
new file mode 100644
index 0000000..757ca4c
--- /dev/null
+++ b/work/workmanager-rxjava2/api/restricted_2.3.0-beta01.txt
@@ -0,0 +1,13 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public abstract class RxWorker extends androidx.work.ListenableWorker {
+ ctor public RxWorker(android.content.Context, androidx.work.WorkerParameters);
+ method @MainThread public abstract io.reactivex.Single<androidx.work.ListenableWorker.Result!> createWork();
+ method protected io.reactivex.Scheduler getBackgroundScheduler();
+ method public final io.reactivex.Single<java.lang.Void!> setProgress(androidx.work.Data);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+}
+
diff --git a/work/workmanager-testing/api/2.3.0-beta01.txt b/work/workmanager-testing/api/2.3.0-beta01.txt
new file mode 100644
index 0000000..2f8dc82
--- /dev/null
+++ b/work/workmanager-testing/api/2.3.0-beta01.txt
@@ -0,0 +1,54 @@
+// Signature format: 3.0
+package androidx.work.testing {
+
+ public class SynchronousExecutor implements java.util.concurrent.Executor {
+ ctor public SynchronousExecutor();
+ method public void execute(Runnable);
+ }
+
+ public interface TestDriver {
+ method public void setAllConstraintsMet(java.util.UUID);
+ method public void setInitialDelayMet(java.util.UUID);
+ method public void setPeriodDelayMet(java.util.UUID);
+ }
+
+ public class TestListenableWorkerBuilder<W extends androidx.work.ListenableWorker> {
+ method public W build();
+ method public static androidx.work.testing.TestListenableWorkerBuilder from(android.content.Context, androidx.work.WorkRequest);
+ method public static <W extends androidx.work.ListenableWorker> androidx.work.testing.TestListenableWorkerBuilder<W!> from(android.content.Context, Class<W!>);
+ method public androidx.work.testing.TestListenableWorkerBuilder setForegroundUpdater(androidx.work.ForegroundUpdater);
+ method public androidx.work.testing.TestListenableWorkerBuilder setId(java.util.UUID);
+ method public androidx.work.testing.TestListenableWorkerBuilder setInputData(androidx.work.Data);
+ method @RequiresApi(28) public androidx.work.testing.TestListenableWorkerBuilder setNetwork(android.net.Network);
+ method public androidx.work.testing.TestListenableWorkerBuilder setProgressUpdater(androidx.work.ProgressUpdater);
+ method public androidx.work.testing.TestListenableWorkerBuilder setRunAttemptCount(int);
+ method public androidx.work.testing.TestListenableWorkerBuilder setTags(java.util.List<java.lang.String!>);
+ method @RequiresApi(24) public androidx.work.testing.TestListenableWorkerBuilder setTriggeredContentAuthorities(java.util.List<java.lang.String!>);
+ method @RequiresApi(24) public androidx.work.testing.TestListenableWorkerBuilder setTriggeredContentUris(java.util.List<android.net.Uri!>);
+ method public androidx.work.testing.TestListenableWorkerBuilder setWorkerFactory(androidx.work.WorkerFactory);
+ }
+
+ public final class TestListenableWorkerBuilderKt {
+ ctor public TestListenableWorkerBuilderKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.testing.TestListenableWorkerBuilder<W> TestListenableWorkerBuilder(android.content.Context context, androidx.work.Data inputData = androidx.work.Data.EMPTY, java.util.List<java.lang.String> tags = emptyList(), int runAttemptCount = 1, java.util.List<? extends android.net.Uri> triggeredContentUris = emptyList(), java.util.List<java.lang.String> triggeredContentAuthorities = emptyList());
+ }
+
+ public class TestWorkerBuilder<W extends androidx.work.Worker> extends androidx.work.testing.TestListenableWorkerBuilder<W> {
+ method public static androidx.work.testing.TestWorkerBuilder<? extends androidx.work.Worker> from(android.content.Context, androidx.work.WorkRequest, java.util.concurrent.Executor);
+ method public static <W extends androidx.work.Worker> androidx.work.testing.TestWorkerBuilder<W!> from(android.content.Context, Class<W!>, java.util.concurrent.Executor);
+ }
+
+ public final class TestWorkerBuilderKt {
+ ctor public TestWorkerBuilderKt();
+ method public static inline <reified W extends androidx.work.Worker> androidx.work.testing.TestWorkerBuilder<W> TestWorkerBuilder(android.content.Context context, java.util.concurrent.Executor executor, androidx.work.Data inputData = androidx.work.Data.EMPTY, java.util.List<java.lang.String> tags = emptyList(), int runAttemptCount = 1, java.util.List<? extends android.net.Uri> triggeredContentUris = emptyList(), java.util.List<java.lang.String> triggeredContentAuthorities = emptyList());
+ }
+
+ public final class WorkManagerTestInitHelper {
+ method @Deprecated public static androidx.work.testing.TestDriver? getTestDriver();
+ method public static androidx.work.testing.TestDriver? getTestDriver(android.content.Context);
+ method public static void initializeTestWorkManager(android.content.Context);
+ method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration);
+ }
+
+}
+
diff --git a/work/workmanager-testing/api/public_plus_experimental_2.3.0-beta01.txt b/work/workmanager-testing/api/public_plus_experimental_2.3.0-beta01.txt
new file mode 100644
index 0000000..2f8dc82
--- /dev/null
+++ b/work/workmanager-testing/api/public_plus_experimental_2.3.0-beta01.txt
@@ -0,0 +1,54 @@
+// Signature format: 3.0
+package androidx.work.testing {
+
+ public class SynchronousExecutor implements java.util.concurrent.Executor {
+ ctor public SynchronousExecutor();
+ method public void execute(Runnable);
+ }
+
+ public interface TestDriver {
+ method public void setAllConstraintsMet(java.util.UUID);
+ method public void setInitialDelayMet(java.util.UUID);
+ method public void setPeriodDelayMet(java.util.UUID);
+ }
+
+ public class TestListenableWorkerBuilder<W extends androidx.work.ListenableWorker> {
+ method public W build();
+ method public static androidx.work.testing.TestListenableWorkerBuilder from(android.content.Context, androidx.work.WorkRequest);
+ method public static <W extends androidx.work.ListenableWorker> androidx.work.testing.TestListenableWorkerBuilder<W!> from(android.content.Context, Class<W!>);
+ method public androidx.work.testing.TestListenableWorkerBuilder setForegroundUpdater(androidx.work.ForegroundUpdater);
+ method public androidx.work.testing.TestListenableWorkerBuilder setId(java.util.UUID);
+ method public androidx.work.testing.TestListenableWorkerBuilder setInputData(androidx.work.Data);
+ method @RequiresApi(28) public androidx.work.testing.TestListenableWorkerBuilder setNetwork(android.net.Network);
+ method public androidx.work.testing.TestListenableWorkerBuilder setProgressUpdater(androidx.work.ProgressUpdater);
+ method public androidx.work.testing.TestListenableWorkerBuilder setRunAttemptCount(int);
+ method public androidx.work.testing.TestListenableWorkerBuilder setTags(java.util.List<java.lang.String!>);
+ method @RequiresApi(24) public androidx.work.testing.TestListenableWorkerBuilder setTriggeredContentAuthorities(java.util.List<java.lang.String!>);
+ method @RequiresApi(24) public androidx.work.testing.TestListenableWorkerBuilder setTriggeredContentUris(java.util.List<android.net.Uri!>);
+ method public androidx.work.testing.TestListenableWorkerBuilder setWorkerFactory(androidx.work.WorkerFactory);
+ }
+
+ public final class TestListenableWorkerBuilderKt {
+ ctor public TestListenableWorkerBuilderKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.testing.TestListenableWorkerBuilder<W> TestListenableWorkerBuilder(android.content.Context context, androidx.work.Data inputData = androidx.work.Data.EMPTY, java.util.List<java.lang.String> tags = emptyList(), int runAttemptCount = 1, java.util.List<? extends android.net.Uri> triggeredContentUris = emptyList(), java.util.List<java.lang.String> triggeredContentAuthorities = emptyList());
+ }
+
+ public class TestWorkerBuilder<W extends androidx.work.Worker> extends androidx.work.testing.TestListenableWorkerBuilder<W> {
+ method public static androidx.work.testing.TestWorkerBuilder<? extends androidx.work.Worker> from(android.content.Context, androidx.work.WorkRequest, java.util.concurrent.Executor);
+ method public static <W extends androidx.work.Worker> androidx.work.testing.TestWorkerBuilder<W!> from(android.content.Context, Class<W!>, java.util.concurrent.Executor);
+ }
+
+ public final class TestWorkerBuilderKt {
+ ctor public TestWorkerBuilderKt();
+ method public static inline <reified W extends androidx.work.Worker> androidx.work.testing.TestWorkerBuilder<W> TestWorkerBuilder(android.content.Context context, java.util.concurrent.Executor executor, androidx.work.Data inputData = androidx.work.Data.EMPTY, java.util.List<java.lang.String> tags = emptyList(), int runAttemptCount = 1, java.util.List<? extends android.net.Uri> triggeredContentUris = emptyList(), java.util.List<java.lang.String> triggeredContentAuthorities = emptyList());
+ }
+
+ public final class WorkManagerTestInitHelper {
+ method @Deprecated public static androidx.work.testing.TestDriver? getTestDriver();
+ method public static androidx.work.testing.TestDriver? getTestDriver(android.content.Context);
+ method public static void initializeTestWorkManager(android.content.Context);
+ method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration);
+ }
+
+}
+
diff --git a/work/workmanager-testing/api/res-2.3.0-beta01.txt b/work/workmanager-testing/api/res-2.3.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/work/workmanager-testing/api/res-2.3.0-beta01.txt
diff --git a/work/workmanager-testing/api/restricted_2.3.0-beta01.txt b/work/workmanager-testing/api/restricted_2.3.0-beta01.txt
new file mode 100644
index 0000000..c866b6a
--- /dev/null
+++ b/work/workmanager-testing/api/restricted_2.3.0-beta01.txt
@@ -0,0 +1,64 @@
+// Signature format: 3.0
+package androidx.work.testing {
+
+ public class SynchronousExecutor implements java.util.concurrent.Executor {
+ ctor public SynchronousExecutor();
+ method public void execute(Runnable);
+ }
+
+ public interface TestDriver {
+ method public void setAllConstraintsMet(java.util.UUID);
+ method public void setInitialDelayMet(java.util.UUID);
+ method public void setPeriodDelayMet(java.util.UUID);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class TestForegroundUpdater implements androidx.work.ForegroundUpdater {
+ ctor public TestForegroundUpdater();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setForegroundAsync(android.content.Context, java.util.UUID, androidx.work.ForegroundInfo);
+ }
+
+ public class TestListenableWorkerBuilder<W extends androidx.work.ListenableWorker> {
+ method public W build();
+ method public static androidx.work.testing.TestListenableWorkerBuilder from(android.content.Context, androidx.work.WorkRequest);
+ method public static <W extends androidx.work.ListenableWorker> androidx.work.testing.TestListenableWorkerBuilder<W!> from(android.content.Context, Class<W!>);
+ method public androidx.work.testing.TestListenableWorkerBuilder setForegroundUpdater(androidx.work.ForegroundUpdater);
+ method public androidx.work.testing.TestListenableWorkerBuilder setId(java.util.UUID);
+ method public androidx.work.testing.TestListenableWorkerBuilder setInputData(androidx.work.Data);
+ method @RequiresApi(28) public androidx.work.testing.TestListenableWorkerBuilder setNetwork(android.net.Network);
+ method public androidx.work.testing.TestListenableWorkerBuilder setProgressUpdater(androidx.work.ProgressUpdater);
+ method public androidx.work.testing.TestListenableWorkerBuilder setRunAttemptCount(int);
+ method public androidx.work.testing.TestListenableWorkerBuilder setTags(java.util.List<java.lang.String!>);
+ method @RequiresApi(24) public androidx.work.testing.TestListenableWorkerBuilder setTriggeredContentAuthorities(java.util.List<java.lang.String!>);
+ method @RequiresApi(24) public androidx.work.testing.TestListenableWorkerBuilder setTriggeredContentUris(java.util.List<android.net.Uri!>);
+ method public androidx.work.testing.TestListenableWorkerBuilder setWorkerFactory(androidx.work.WorkerFactory);
+ }
+
+ public final class TestListenableWorkerBuilderKt {
+ ctor public TestListenableWorkerBuilderKt();
+ method public static inline <reified W extends androidx.work.ListenableWorker> androidx.work.testing.TestListenableWorkerBuilder<W> TestListenableWorkerBuilder(android.content.Context context, androidx.work.Data inputData = androidx.work.Data.EMPTY, java.util.List<java.lang.String> tags = emptyList(), int runAttemptCount = 1, java.util.List<? extends android.net.Uri> triggeredContentUris = emptyList(), java.util.List<java.lang.String> triggeredContentAuthorities = emptyList());
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class TestProgressUpdater implements androidx.work.ProgressUpdater {
+ ctor public TestProgressUpdater();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> updateProgress(android.content.Context, java.util.UUID, androidx.work.Data);
+ }
+
+ public class TestWorkerBuilder<W extends androidx.work.Worker> extends androidx.work.testing.TestListenableWorkerBuilder<W> {
+ method public static androidx.work.testing.TestWorkerBuilder<? extends androidx.work.Worker> from(android.content.Context, androidx.work.WorkRequest, java.util.concurrent.Executor);
+ method public static <W extends androidx.work.Worker> androidx.work.testing.TestWorkerBuilder<W!> from(android.content.Context, Class<W!>, java.util.concurrent.Executor);
+ }
+
+ public final class TestWorkerBuilderKt {
+ ctor public TestWorkerBuilderKt();
+ method public static inline <reified W extends androidx.work.Worker> androidx.work.testing.TestWorkerBuilder<W> TestWorkerBuilder(android.content.Context context, java.util.concurrent.Executor executor, androidx.work.Data inputData = androidx.work.Data.EMPTY, java.util.List<java.lang.String> tags = emptyList(), int runAttemptCount = 1, java.util.List<? extends android.net.Uri> triggeredContentUris = emptyList(), java.util.List<java.lang.String> triggeredContentAuthorities = emptyList());
+ }
+
+ public final class WorkManagerTestInitHelper {
+ method @Deprecated public static androidx.work.testing.TestDriver? getTestDriver();
+ method public static androidx.work.testing.TestDriver? getTestDriver(android.content.Context);
+ method public static void initializeTestWorkManager(android.content.Context);
+ method public static void initializeTestWorkManager(android.content.Context, androidx.work.Configuration);
+ }
+
+}
+
diff --git a/work/workmanager/api/2.3.0-beta01.ignore b/work/workmanager/api/2.3.0-beta01.ignore
new file mode 100644
index 0000000..59678f1
--- /dev/null
+++ b/work/workmanager/api/2.3.0-beta01.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+AddedAbstractMethod: androidx.work.WorkManager#createCancelPendingIntent(java.util.UUID):
+ Added method androidx.work.WorkManager.createCancelPendingIntent(java.util.UUID)
diff --git a/work/workmanager/api/2.3.0-beta01.txt b/work/workmanager/api/2.3.0-beta01.txt
new file mode 100644
index 0000000..46dc320
--- /dev/null
+++ b/work/workmanager/api/2.3.0-beta01.txt
@@ -0,0 +1,331 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public final class ArrayCreatingInputMerger extends androidx.work.InputMerger {
+ ctor public ArrayCreatingInputMerger();
+ method public androidx.work.Data merge(java.util.List<androidx.work.Data!>);
+ }
+
+ public enum BackoffPolicy {
+ enum_constant public static final androidx.work.BackoffPolicy EXPONENTIAL;
+ enum_constant public static final androidx.work.BackoffPolicy LINEAR;
+ }
+
+ public final class Configuration {
+ method public java.util.concurrent.Executor getExecutor();
+ method public androidx.work.InputMergerFactory getInputMergerFactory();
+ method public int getMaxJobSchedulerId();
+ method public int getMinJobSchedulerId();
+ method public java.util.concurrent.Executor getTaskExecutor();
+ method public androidx.work.WorkerFactory getWorkerFactory();
+ field public static final int MIN_SCHEDULER_LIMIT = 20; // 0x14
+ }
+
+ public static final class Configuration.Builder {
+ ctor public Configuration.Builder();
+ method public androidx.work.Configuration build();
+ method public androidx.work.Configuration.Builder setExecutor(java.util.concurrent.Executor);
+ method public androidx.work.Configuration.Builder setInputMergerFactory(androidx.work.InputMergerFactory);
+ method public androidx.work.Configuration.Builder setJobSchedulerJobIdRange(int, int);
+ method public androidx.work.Configuration.Builder setMaxSchedulerLimit(int);
+ method public androidx.work.Configuration.Builder setMinimumLoggingLevel(int);
+ method public androidx.work.Configuration.Builder setTaskExecutor(java.util.concurrent.Executor);
+ method public androidx.work.Configuration.Builder setWorkerFactory(androidx.work.WorkerFactory);
+ }
+
+ public static interface Configuration.Provider {
+ method public androidx.work.Configuration getWorkManagerConfiguration();
+ }
+
+ public final class Constraints {
+ ctor public Constraints(androidx.work.Constraints);
+ method public androidx.work.NetworkType getRequiredNetworkType();
+ method public boolean requiresBatteryNotLow();
+ method public boolean requiresCharging();
+ method @RequiresApi(23) public boolean requiresDeviceIdle();
+ method public boolean requiresStorageNotLow();
+ field public static final androidx.work.Constraints! NONE;
+ }
+
+ public static final class Constraints.Builder {
+ ctor public Constraints.Builder();
+ method @RequiresApi(24) public androidx.work.Constraints.Builder addContentUriTrigger(android.net.Uri, boolean);
+ method public androidx.work.Constraints build();
+ method public androidx.work.Constraints.Builder setRequiredNetworkType(androidx.work.NetworkType);
+ method public androidx.work.Constraints.Builder setRequiresBatteryNotLow(boolean);
+ method public androidx.work.Constraints.Builder setRequiresCharging(boolean);
+ method @RequiresApi(23) public androidx.work.Constraints.Builder setRequiresDeviceIdle(boolean);
+ method public androidx.work.Constraints.Builder setRequiresStorageNotLow(boolean);
+ method @RequiresApi(24) public androidx.work.Constraints.Builder setTriggerContentMaxDelay(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public androidx.work.Constraints.Builder setTriggerContentMaxDelay(java.time.Duration!);
+ method @RequiresApi(24) public androidx.work.Constraints.Builder setTriggerContentUpdateDelay(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public androidx.work.Constraints.Builder setTriggerContentUpdateDelay(java.time.Duration!);
+ }
+
+ public final class Data {
+ ctor public Data(androidx.work.Data);
+ method public static androidx.work.Data fromByteArray(byte[]);
+ method public boolean getBoolean(String, boolean);
+ method public boolean[]? getBooleanArray(String);
+ method public byte getByte(String, byte);
+ method public byte[]? getByteArray(String);
+ method public double getDouble(String, double);
+ method public double[]? getDoubleArray(String);
+ method public float getFloat(String, float);
+ method public float[]? getFloatArray(String);
+ method public int getInt(String, int);
+ method public int[]? getIntArray(String);
+ method public java.util.Map<java.lang.String!,java.lang.Object!> getKeyValueMap();
+ method public long getLong(String, long);
+ method public long[]? getLongArray(String);
+ method public String? getString(String);
+ method public String![]? getStringArray(String);
+ method public <T> boolean hasKeyWithValueOfType(String, Class<T!>);
+ method public byte[] toByteArray();
+ field public static final androidx.work.Data! EMPTY;
+ field public static final int MAX_DATA_BYTES = 10240; // 0x2800
+ }
+
+ public static final class Data.Builder {
+ ctor public Data.Builder();
+ method public androidx.work.Data build();
+ method public androidx.work.Data.Builder putAll(androidx.work.Data);
+ method public androidx.work.Data.Builder putAll(java.util.Map<java.lang.String!,java.lang.Object!>);
+ method public androidx.work.Data.Builder putBoolean(String, boolean);
+ method public androidx.work.Data.Builder putBooleanArray(String, boolean[]);
+ method public androidx.work.Data.Builder putByte(String, byte);
+ method public androidx.work.Data.Builder putByteArray(String, byte[]);
+ method public androidx.work.Data.Builder putDouble(String, double);
+ method public androidx.work.Data.Builder putDoubleArray(String, double[]);
+ method public androidx.work.Data.Builder putFloat(String, float);
+ method public androidx.work.Data.Builder putFloatArray(String, float[]);
+ method public androidx.work.Data.Builder putInt(String, int);
+ method public androidx.work.Data.Builder putIntArray(String, int[]);
+ method public androidx.work.Data.Builder putLong(String, long);
+ method public androidx.work.Data.Builder putLongArray(String, long[]);
+ method public androidx.work.Data.Builder putString(String, String?);
+ method public androidx.work.Data.Builder putStringArray(String, String![]);
+ }
+
+ public class DelegatingWorkerFactory extends androidx.work.WorkerFactory {
+ ctor public DelegatingWorkerFactory();
+ method public final void addFactory(androidx.work.WorkerFactory);
+ method public final androidx.work.ListenableWorker? createWorker(android.content.Context, String, androidx.work.WorkerParameters);
+ }
+
+ public enum ExistingPeriodicWorkPolicy {
+ enum_constant public static final androidx.work.ExistingPeriodicWorkPolicy KEEP;
+ enum_constant public static final androidx.work.ExistingPeriodicWorkPolicy REPLACE;
+ }
+
+ public enum ExistingWorkPolicy {
+ enum_constant public static final androidx.work.ExistingWorkPolicy APPEND;
+ enum_constant public static final androidx.work.ExistingWorkPolicy KEEP;
+ enum_constant public static final androidx.work.ExistingWorkPolicy REPLACE;
+ }
+
+ public final class ForegroundInfo {
+ ctor public ForegroundInfo(android.app.Notification);
+ ctor public ForegroundInfo(android.app.Notification, int);
+ method public int getForegroundServiceType();
+ method public android.app.Notification getNotification();
+ }
+
+ public interface ForegroundUpdater {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setForegroundAsync(android.content.Context, java.util.UUID, androidx.work.ForegroundInfo);
+ }
+
+ public abstract class InputMerger {
+ ctor public InputMerger();
+ method public abstract androidx.work.Data merge(java.util.List<androidx.work.Data!>);
+ }
+
+ public abstract class InputMergerFactory {
+ ctor public InputMergerFactory();
+ method public abstract androidx.work.InputMerger? createInputMerger(String);
+ }
+
+ public abstract class ListenableWorker {
+ ctor @Keep public ListenableWorker(android.content.Context, androidx.work.WorkerParameters);
+ method public final android.content.Context getApplicationContext();
+ method public final java.util.UUID getId();
+ method public final androidx.work.Data getInputData();
+ method @RequiresApi(28) public final android.net.Network? getNetwork();
+ method @IntRange(from=0) public final int getRunAttemptCount();
+ method public final java.util.Set<java.lang.String!> getTags();
+ method @RequiresApi(24) public final java.util.List<java.lang.String!> getTriggeredContentAuthorities();
+ method @RequiresApi(24) public final java.util.List<android.net.Uri!> getTriggeredContentUris();
+ method public final boolean isStopped();
+ method public void onStopped();
+ method public final com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setForegroundAsync(androidx.work.ForegroundInfo);
+ method public final com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setProgressAsync(androidx.work.Data);
+ method @MainThread public abstract com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+ public abstract static class ListenableWorker.Result {
+ method public static androidx.work.ListenableWorker.Result failure();
+ method public static androidx.work.ListenableWorker.Result failure(androidx.work.Data);
+ method public static androidx.work.ListenableWorker.Result retry();
+ method public static androidx.work.ListenableWorker.Result success();
+ method public static androidx.work.ListenableWorker.Result success(androidx.work.Data);
+ }
+
+ public enum NetworkType {
+ enum_constant public static final androidx.work.NetworkType CONNECTED;
+ enum_constant public static final androidx.work.NetworkType METERED;
+ enum_constant public static final androidx.work.NetworkType NOT_REQUIRED;
+ enum_constant public static final androidx.work.NetworkType NOT_ROAMING;
+ enum_constant public static final androidx.work.NetworkType UNMETERED;
+ }
+
+ public final class OneTimeWorkRequest extends androidx.work.WorkRequest {
+ method public static androidx.work.OneTimeWorkRequest from(Class<? extends androidx.work.ListenableWorker>);
+ method public static java.util.List<androidx.work.OneTimeWorkRequest!> from(java.util.List<java.lang.Class<? extends androidx.work.ListenableWorker>!>);
+ }
+
+ public static final class OneTimeWorkRequest.Builder extends androidx.work.WorkRequest.Builder<androidx.work.OneTimeWorkRequest.Builder,androidx.work.OneTimeWorkRequest> {
+ ctor public OneTimeWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>);
+ method public androidx.work.OneTimeWorkRequest.Builder setInputMerger(Class<? extends androidx.work.InputMerger>);
+ }
+
+ public interface Operation {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.work.Operation.State.SUCCESS!> getResult();
+ method public androidx.lifecycle.LiveData<androidx.work.Operation.State!> getState();
+ }
+
+ public abstract static class Operation.State {
+ }
+
+ public static final class Operation.State.FAILURE extends androidx.work.Operation.State {
+ ctor public Operation.State.FAILURE(Throwable);
+ method public Throwable getThrowable();
+ }
+
+ public static final class Operation.State.IN_PROGRESS extends androidx.work.Operation.State {
+ }
+
+ public static final class Operation.State.SUCCESS extends androidx.work.Operation.State {
+ }
+
+ public final class OverwritingInputMerger extends androidx.work.InputMerger {
+ ctor public OverwritingInputMerger();
+ method public androidx.work.Data merge(java.util.List<androidx.work.Data!>);
+ }
+
+ public final class PeriodicWorkRequest extends androidx.work.WorkRequest {
+ field public static final long MIN_PERIODIC_FLEX_MILLIS = 300000L; // 0x493e0L
+ field public static final long MIN_PERIODIC_INTERVAL_MILLIS = 900000L; // 0xdbba0L
+ }
+
+ public static final class PeriodicWorkRequest.Builder extends androidx.work.WorkRequest.Builder<androidx.work.PeriodicWorkRequest.Builder,androidx.work.PeriodicWorkRequest> {
+ ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, long, java.util.concurrent.TimeUnit);
+ ctor @RequiresApi(26) public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, java.time.Duration);
+ ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, long, java.util.concurrent.TimeUnit, long, java.util.concurrent.TimeUnit);
+ ctor @RequiresApi(26) public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, java.time.Duration, java.time.Duration);
+ }
+
+ public interface ProgressUpdater {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> updateProgress(android.content.Context, java.util.UUID, androidx.work.Data);
+ }
+
+ public abstract class WorkContinuation {
+ ctor public WorkContinuation();
+ method public static androidx.work.WorkContinuation combine(java.util.List<androidx.work.WorkContinuation!>);
+ method public abstract androidx.work.Operation enqueue();
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.work.WorkInfo!>!> getWorkInfos();
+ method public abstract androidx.lifecycle.LiveData<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosLiveData();
+ method public final androidx.work.WorkContinuation then(androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.WorkContinuation then(java.util.List<androidx.work.OneTimeWorkRequest!>);
+ }
+
+ public final class WorkInfo {
+ method public java.util.UUID getId();
+ method public androidx.work.Data getOutputData();
+ method public androidx.work.Data getProgress();
+ method @IntRange(from=0) public int getRunAttemptCount();
+ method public androidx.work.WorkInfo.State getState();
+ method public java.util.Set<java.lang.String!> getTags();
+ }
+
+ public enum WorkInfo.State {
+ method public boolean isFinished();
+ enum_constant public static final androidx.work.WorkInfo.State BLOCKED;
+ enum_constant public static final androidx.work.WorkInfo.State CANCELLED;
+ enum_constant public static final androidx.work.WorkInfo.State ENQUEUED;
+ enum_constant public static final androidx.work.WorkInfo.State FAILED;
+ enum_constant public static final androidx.work.WorkInfo.State RUNNING;
+ enum_constant public static final androidx.work.WorkInfo.State SUCCEEDED;
+ }
+
+ public abstract class WorkManager {
+ method public final androidx.work.WorkContinuation beginUniqueWork(String, androidx.work.ExistingWorkPolicy, androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.WorkContinuation beginUniqueWork(String, androidx.work.ExistingWorkPolicy, java.util.List<androidx.work.OneTimeWorkRequest!>);
+ method public final androidx.work.WorkContinuation beginWith(androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.WorkContinuation beginWith(java.util.List<androidx.work.OneTimeWorkRequest!>);
+ method public abstract androidx.work.Operation cancelAllWork();
+ method public abstract androidx.work.Operation cancelAllWorkByTag(String);
+ method public abstract androidx.work.Operation cancelUniqueWork(String);
+ method public abstract androidx.work.Operation cancelWorkById(java.util.UUID);
+ method public abstract android.app.PendingIntent createCancelPendingIntent(java.util.UUID);
+ method public final androidx.work.Operation enqueue(androidx.work.WorkRequest);
+ method public abstract androidx.work.Operation enqueue(java.util.List<? extends androidx.work.WorkRequest>);
+ method public abstract androidx.work.Operation enqueueUniquePeriodicWork(String, androidx.work.ExistingPeriodicWorkPolicy, androidx.work.PeriodicWorkRequest);
+ method public androidx.work.Operation enqueueUniqueWork(String, androidx.work.ExistingWorkPolicy, androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.Operation enqueueUniqueWork(String, androidx.work.ExistingWorkPolicy, java.util.List<androidx.work.OneTimeWorkRequest!>);
+ method @Deprecated public static androidx.work.WorkManager getInstance();
+ method public static androidx.work.WorkManager getInstance(android.content.Context);
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.lang.Long!> getLastCancelAllTimeMillis();
+ method public abstract androidx.lifecycle.LiveData<java.lang.Long!> getLastCancelAllTimeMillisLiveData();
+ method public abstract com.google.common.util.concurrent.ListenableFuture<androidx.work.WorkInfo!> getWorkInfoById(java.util.UUID);
+ method public abstract androidx.lifecycle.LiveData<androidx.work.WorkInfo!> getWorkInfoByIdLiveData(java.util.UUID);
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosByTag(String);
+ method public abstract androidx.lifecycle.LiveData<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosByTagLiveData(String);
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosForUniqueWork(String);
+ method public abstract androidx.lifecycle.LiveData<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosForUniqueWorkLiveData(String);
+ method public static void initialize(android.content.Context, androidx.work.Configuration);
+ method public abstract androidx.work.Operation pruneWork();
+ }
+
+ public abstract class WorkRequest {
+ method public java.util.UUID getId();
+ field public static final long DEFAULT_BACKOFF_DELAY_MILLIS = 30000L; // 0x7530L
+ field public static final long MAX_BACKOFF_MILLIS = 18000000L; // 0x112a880L
+ field public static final long MIN_BACKOFF_MILLIS = 10000L; // 0x2710L
+ }
+
+ public abstract static class WorkRequest.Builder<B extends androidx.work.WorkRequest.Builder<?, ?>, W extends androidx.work.WorkRequest> {
+ method public final B addTag(String);
+ method public final W build();
+ method public final B keepResultsForAtLeast(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public final B keepResultsForAtLeast(java.time.Duration);
+ method public final B setBackoffCriteria(androidx.work.BackoffPolicy, long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public final B setBackoffCriteria(androidx.work.BackoffPolicy, java.time.Duration);
+ method public final B setConstraints(androidx.work.Constraints);
+ method public B setInitialDelay(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public B setInitialDelay(java.time.Duration);
+ method public final B setInputData(androidx.work.Data);
+ }
+
+ public abstract class Worker extends androidx.work.ListenableWorker {
+ ctor @Keep public Worker(android.content.Context, androidx.work.WorkerParameters);
+ method @WorkerThread public abstract androidx.work.ListenableWorker.Result doWork();
+ method public final com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+ public abstract class WorkerFactory {
+ ctor public WorkerFactory();
+ method public abstract androidx.work.ListenableWorker? createWorker(android.content.Context, String, androidx.work.WorkerParameters);
+ }
+
+ public final class WorkerParameters {
+ method public java.util.UUID getId();
+ method public androidx.work.Data getInputData();
+ method @RequiresApi(28) public android.net.Network? getNetwork();
+ method @IntRange(from=0) public int getRunAttemptCount();
+ method public java.util.Set<java.lang.String!> getTags();
+ method @RequiresApi(24) public java.util.List<java.lang.String!> getTriggeredContentAuthorities();
+ method @RequiresApi(24) public java.util.List<android.net.Uri!> getTriggeredContentUris();
+ }
+
+}
+
diff --git a/work/workmanager/api/public_plus_experimental_2.3.0-beta01.txt b/work/workmanager/api/public_plus_experimental_2.3.0-beta01.txt
new file mode 100644
index 0000000..46dc320
--- /dev/null
+++ b/work/workmanager/api/public_plus_experimental_2.3.0-beta01.txt
@@ -0,0 +1,331 @@
+// Signature format: 3.0
+package androidx.work {
+
+ public final class ArrayCreatingInputMerger extends androidx.work.InputMerger {
+ ctor public ArrayCreatingInputMerger();
+ method public androidx.work.Data merge(java.util.List<androidx.work.Data!>);
+ }
+
+ public enum BackoffPolicy {
+ enum_constant public static final androidx.work.BackoffPolicy EXPONENTIAL;
+ enum_constant public static final androidx.work.BackoffPolicy LINEAR;
+ }
+
+ public final class Configuration {
+ method public java.util.concurrent.Executor getExecutor();
+ method public androidx.work.InputMergerFactory getInputMergerFactory();
+ method public int getMaxJobSchedulerId();
+ method public int getMinJobSchedulerId();
+ method public java.util.concurrent.Executor getTaskExecutor();
+ method public androidx.work.WorkerFactory getWorkerFactory();
+ field public static final int MIN_SCHEDULER_LIMIT = 20; // 0x14
+ }
+
+ public static final class Configuration.Builder {
+ ctor public Configuration.Builder();
+ method public androidx.work.Configuration build();
+ method public androidx.work.Configuration.Builder setExecutor(java.util.concurrent.Executor);
+ method public androidx.work.Configuration.Builder setInputMergerFactory(androidx.work.InputMergerFactory);
+ method public androidx.work.Configuration.Builder setJobSchedulerJobIdRange(int, int);
+ method public androidx.work.Configuration.Builder setMaxSchedulerLimit(int);
+ method public androidx.work.Configuration.Builder setMinimumLoggingLevel(int);
+ method public androidx.work.Configuration.Builder setTaskExecutor(java.util.concurrent.Executor);
+ method public androidx.work.Configuration.Builder setWorkerFactory(androidx.work.WorkerFactory);
+ }
+
+ public static interface Configuration.Provider {
+ method public androidx.work.Configuration getWorkManagerConfiguration();
+ }
+
+ public final class Constraints {
+ ctor public Constraints(androidx.work.Constraints);
+ method public androidx.work.NetworkType getRequiredNetworkType();
+ method public boolean requiresBatteryNotLow();
+ method public boolean requiresCharging();
+ method @RequiresApi(23) public boolean requiresDeviceIdle();
+ method public boolean requiresStorageNotLow();
+ field public static final androidx.work.Constraints! NONE;
+ }
+
+ public static final class Constraints.Builder {
+ ctor public Constraints.Builder();
+ method @RequiresApi(24) public androidx.work.Constraints.Builder addContentUriTrigger(android.net.Uri, boolean);
+ method public androidx.work.Constraints build();
+ method public androidx.work.Constraints.Builder setRequiredNetworkType(androidx.work.NetworkType);
+ method public androidx.work.Constraints.Builder setRequiresBatteryNotLow(boolean);
+ method public androidx.work.Constraints.Builder setRequiresCharging(boolean);
+ method @RequiresApi(23) public androidx.work.Constraints.Builder setRequiresDeviceIdle(boolean);
+ method public androidx.work.Constraints.Builder setRequiresStorageNotLow(boolean);
+ method @RequiresApi(24) public androidx.work.Constraints.Builder setTriggerContentMaxDelay(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public androidx.work.Constraints.Builder setTriggerContentMaxDelay(java.time.Duration!);
+ method @RequiresApi(24) public androidx.work.Constraints.Builder setTriggerContentUpdateDelay(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public androidx.work.Constraints.Builder setTriggerContentUpdateDelay(java.time.Duration!);
+ }
+
+ public final class Data {
+ ctor public Data(androidx.work.Data);
+ method public static androidx.work.Data fromByteArray(byte[]);
+ method public boolean getBoolean(String, boolean);
+ method public boolean[]? getBooleanArray(String);
+ method public byte getByte(String, byte);
+ method public byte[]? getByteArray(String);
+ method public double getDouble(String, double);
+ method public double[]? getDoubleArray(String);
+ method public float getFloat(String, float);
+ method public float[]? getFloatArray(String);
+ method public int getInt(String, int);
+ method public int[]? getIntArray(String);
+ method public java.util.Map<java.lang.String!,java.lang.Object!> getKeyValueMap();
+ method public long getLong(String, long);
+ method public long[]? getLongArray(String);
+ method public String? getString(String);
+ method public String![]? getStringArray(String);
+ method public <T> boolean hasKeyWithValueOfType(String, Class<T!>);
+ method public byte[] toByteArray();
+ field public static final androidx.work.Data! EMPTY;
+ field public static final int MAX_DATA_BYTES = 10240; // 0x2800
+ }
+
+ public static final class Data.Builder {
+ ctor public Data.Builder();
+ method public androidx.work.Data build();
+ method public androidx.work.Data.Builder putAll(androidx.work.Data);
+ method public androidx.work.Data.Builder putAll(java.util.Map<java.lang.String!,java.lang.Object!>);
+ method public androidx.work.Data.Builder putBoolean(String, boolean);
+ method public androidx.work.Data.Builder putBooleanArray(String, boolean[]);
+ method public androidx.work.Data.Builder putByte(String, byte);
+ method public androidx.work.Data.Builder putByteArray(String, byte[]);
+ method public androidx.work.Data.Builder putDouble(String, double);
+ method public androidx.work.Data.Builder putDoubleArray(String, double[]);
+ method public androidx.work.Data.Builder putFloat(String, float);
+ method public androidx.work.Data.Builder putFloatArray(String, float[]);
+ method public androidx.work.Data.Builder putInt(String, int);
+ method public androidx.work.Data.Builder putIntArray(String, int[]);
+ method public androidx.work.Data.Builder putLong(String, long);
+ method public androidx.work.Data.Builder putLongArray(String, long[]);
+ method public androidx.work.Data.Builder putString(String, String?);
+ method public androidx.work.Data.Builder putStringArray(String, String![]);
+ }
+
+ public class DelegatingWorkerFactory extends androidx.work.WorkerFactory {
+ ctor public DelegatingWorkerFactory();
+ method public final void addFactory(androidx.work.WorkerFactory);
+ method public final androidx.work.ListenableWorker? createWorker(android.content.Context, String, androidx.work.WorkerParameters);
+ }
+
+ public enum ExistingPeriodicWorkPolicy {
+ enum_constant public static final androidx.work.ExistingPeriodicWorkPolicy KEEP;
+ enum_constant public static final androidx.work.ExistingPeriodicWorkPolicy REPLACE;
+ }
+
+ public enum ExistingWorkPolicy {
+ enum_constant public static final androidx.work.ExistingWorkPolicy APPEND;
+ enum_constant public static final androidx.work.ExistingWorkPolicy KEEP;
+ enum_constant public static final androidx.work.ExistingWorkPolicy REPLACE;
+ }
+
+ public final class ForegroundInfo {
+ ctor public ForegroundInfo(android.app.Notification);
+ ctor public ForegroundInfo(android.app.Notification, int);
+ method public int getForegroundServiceType();
+ method public android.app.Notification getNotification();
+ }
+
+ public interface ForegroundUpdater {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setForegroundAsync(android.content.Context, java.util.UUID, androidx.work.ForegroundInfo);
+ }
+
+ public abstract class InputMerger {
+ ctor public InputMerger();
+ method public abstract androidx.work.Data merge(java.util.List<androidx.work.Data!>);
+ }
+
+ public abstract class InputMergerFactory {
+ ctor public InputMergerFactory();
+ method public abstract androidx.work.InputMerger? createInputMerger(String);
+ }
+
+ public abstract class ListenableWorker {
+ ctor @Keep public ListenableWorker(android.content.Context, androidx.work.WorkerParameters);
+ method public final android.content.Context getApplicationContext();
+ method public final java.util.UUID getId();
+ method public final androidx.work.Data getInputData();
+ method @RequiresApi(28) public final android.net.Network? getNetwork();
+ method @IntRange(from=0) public final int getRunAttemptCount();
+ method public final java.util.Set<java.lang.String!> getTags();
+ method @RequiresApi(24) public final java.util.List<java.lang.String!> getTriggeredContentAuthorities();
+ method @RequiresApi(24) public final java.util.List<android.net.Uri!> getTriggeredContentUris();
+ method public final boolean isStopped();
+ method public void onStopped();
+ method public final com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setForegroundAsync(androidx.work.ForegroundInfo);
+ method public final com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setProgressAsync(androidx.work.Data);
+ method @MainThread public abstract com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+ public abstract static class ListenableWorker.Result {
+ method public static androidx.work.ListenableWorker.Result failure();
+ method public static androidx.work.ListenableWorker.Result failure(androidx.work.Data);
+ method public static androidx.work.ListenableWorker.Result retry();
+ method public static androidx.work.ListenableWorker.Result success();
+ method public static androidx.work.ListenableWorker.Result success(androidx.work.Data);
+ }
+
+ public enum NetworkType {
+ enum_constant public static final androidx.work.NetworkType CONNECTED;
+ enum_constant public static final androidx.work.NetworkType METERED;
+ enum_constant public static final androidx.work.NetworkType NOT_REQUIRED;
+ enum_constant public static final androidx.work.NetworkType NOT_ROAMING;
+ enum_constant public static final androidx.work.NetworkType UNMETERED;
+ }
+
+ public final class OneTimeWorkRequest extends androidx.work.WorkRequest {
+ method public static androidx.work.OneTimeWorkRequest from(Class<? extends androidx.work.ListenableWorker>);
+ method public static java.util.List<androidx.work.OneTimeWorkRequest!> from(java.util.List<java.lang.Class<? extends androidx.work.ListenableWorker>!>);
+ }
+
+ public static final class OneTimeWorkRequest.Builder extends androidx.work.WorkRequest.Builder<androidx.work.OneTimeWorkRequest.Builder,androidx.work.OneTimeWorkRequest> {
+ ctor public OneTimeWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>);
+ method public androidx.work.OneTimeWorkRequest.Builder setInputMerger(Class<? extends androidx.work.InputMerger>);
+ }
+
+ public interface Operation {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.work.Operation.State.SUCCESS!> getResult();
+ method public androidx.lifecycle.LiveData<androidx.work.Operation.State!> getState();
+ }
+
+ public abstract static class Operation.State {
+ }
+
+ public static final class Operation.State.FAILURE extends androidx.work.Operation.State {
+ ctor public Operation.State.FAILURE(Throwable);
+ method public Throwable getThrowable();
+ }
+
+ public static final class Operation.State.IN_PROGRESS extends androidx.work.Operation.State {
+ }
+
+ public static final class Operation.State.SUCCESS extends androidx.work.Operation.State {
+ }
+
+ public final class OverwritingInputMerger extends androidx.work.InputMerger {
+ ctor public OverwritingInputMerger();
+ method public androidx.work.Data merge(java.util.List<androidx.work.Data!>);
+ }
+
+ public final class PeriodicWorkRequest extends androidx.work.WorkRequest {
+ field public static final long MIN_PERIODIC_FLEX_MILLIS = 300000L; // 0x493e0L
+ field public static final long MIN_PERIODIC_INTERVAL_MILLIS = 900000L; // 0xdbba0L
+ }
+
+ public static final class PeriodicWorkRequest.Builder extends androidx.work.WorkRequest.Builder<androidx.work.PeriodicWorkRequest.Builder,androidx.work.PeriodicWorkRequest> {
+ ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, long, java.util.concurrent.TimeUnit);
+ ctor @RequiresApi(26) public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, java.time.Duration);
+ ctor public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, long, java.util.concurrent.TimeUnit, long, java.util.concurrent.TimeUnit);
+ ctor @RequiresApi(26) public PeriodicWorkRequest.Builder(Class<? extends androidx.work.ListenableWorker>, java.time.Duration, java.time.Duration);
+ }
+
+ public interface ProgressUpdater {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> updateProgress(android.content.Context, java.util.UUID, androidx.work.Data);
+ }
+
+ public abstract class WorkContinuation {
+ ctor public WorkContinuation();
+ method public static androidx.work.WorkContinuation combine(java.util.List<androidx.work.WorkContinuation!>);
+ method public abstract androidx.work.Operation enqueue();
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.work.WorkInfo!>!> getWorkInfos();
+ method public abstract androidx.lifecycle.LiveData<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosLiveData();
+ method public final androidx.work.WorkContinuation then(androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.WorkContinuation then(java.util.List<androidx.work.OneTimeWorkRequest!>);
+ }
+
+ public final class WorkInfo {
+ method public java.util.UUID getId();
+ method public androidx.work.Data getOutputData();
+ method public androidx.work.Data getProgress();
+ method @IntRange(from=0) public int getRunAttemptCount();
+ method public androidx.work.WorkInfo.State getState();
+ method public java.util.Set<java.lang.String!> getTags();
+ }
+
+ public enum WorkInfo.State {
+ method public boolean isFinished();
+ enum_constant public static final androidx.work.WorkInfo.State BLOCKED;
+ enum_constant public static final androidx.work.WorkInfo.State CANCELLED;
+ enum_constant public static final androidx.work.WorkInfo.State ENQUEUED;
+ enum_constant public static final androidx.work.WorkInfo.State FAILED;
+ enum_constant public static final androidx.work.WorkInfo.State RUNNING;
+ enum_constant public static final androidx.work.WorkInfo.State SUCCEEDED;
+ }
+
+ public abstract class WorkManager {
+ method public final androidx.work.WorkContinuation beginUniqueWork(String, androidx.work.ExistingWorkPolicy, androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.WorkContinuation beginUniqueWork(String, androidx.work.ExistingWorkPolicy, java.util.List<androidx.work.OneTimeWorkRequest!>);
+ method public final androidx.work.WorkContinuation beginWith(androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.WorkContinuation beginWith(java.util.List<androidx.work.OneTimeWorkRequest!>);
+ method public abstract androidx.work.Operation cancelAllWork();
+ method public abstract androidx.work.Operation cancelAllWorkByTag(String);
+ method public abstract androidx.work.Operation cancelUniqueWork(String);
+ method public abstract androidx.work.Operation cancelWorkById(java.util.UUID);
+ method public abstract android.app.PendingIntent createCancelPendingIntent(java.util.UUID);
+ method public final androidx.work.Operation enqueue(androidx.work.WorkRequest);
+ method public abstract androidx.work.Operation enqueue(java.util.List<? extends androidx.work.WorkRequest>);
+ method public abstract androidx.work.Operation enqueueUniquePeriodicWork(String, androidx.work.ExistingPeriodicWorkPolicy, androidx.work.PeriodicWorkRequest);
+ method public androidx.work.Operation enqueueUniqueWork(String, androidx.work.ExistingWorkPolicy, androidx.work.OneTimeWorkRequest);
+ method public abstract androidx.work.Operation enqueueUniqueWork(String, androidx.work.ExistingWorkPolicy, java.util.List<androidx.work.OneTimeWorkRequest!>);
+ method @Deprecated public static androidx.work.WorkManager getInstance();
+ method public static androidx.work.WorkManager getInstance(android.content.Context);
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.lang.Long!> getLastCancelAllTimeMillis();
+ method public abstract androidx.lifecycle.LiveData<java.lang.Long!> getLastCancelAllTimeMillisLiveData();
+ method public abstract com.google.common.util.concurrent.ListenableFuture<androidx.work.WorkInfo!> getWorkInfoById(java.util.UUID);
+ method public abstract androidx.lifecycle.LiveData<androidx.work.WorkInfo!> getWorkInfoByIdLiveData(java.util.UUID);
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosByTag(String);
+ method public abstract androidx.lifecycle.LiveData<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosByTagLiveData(String);
+ method public abstract com.google.common.util.concurrent.ListenableFuture<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosForUniqueWork(String);
+ method public abstract androidx.lifecycle.LiveData<java.util.List<androidx.work.WorkInfo!>!> getWorkInfosForUniqueWorkLiveData(String);
+ method public static void initialize(android.content.Context, androidx.work.Configuration);
+ method public abstract androidx.work.Operation pruneWork();
+ }
+
+ public abstract class WorkRequest {
+ method public java.util.UUID getId();
+ field public static final long DEFAULT_BACKOFF_DELAY_MILLIS = 30000L; // 0x7530L
+ field public static final long MAX_BACKOFF_MILLIS = 18000000L; // 0x112a880L
+ field public static final long MIN_BACKOFF_MILLIS = 10000L; // 0x2710L
+ }
+
+ public abstract static class WorkRequest.Builder<B extends androidx.work.WorkRequest.Builder<?, ?>, W extends androidx.work.WorkRequest> {
+ method public final B addTag(String);
+ method public final W build();
+ method public final B keepResultsForAtLeast(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public final B keepResultsForAtLeast(java.time.Duration);
+ method public final B setBackoffCriteria(androidx.work.BackoffPolicy, long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public final B setBackoffCriteria(androidx.work.BackoffPolicy, java.time.Duration);
+ method public final B setConstraints(androidx.work.Constraints);
+ method public B setInitialDelay(long, java.util.concurrent.TimeUnit);
+ method @RequiresApi(26) public B setInitialDelay(java.time.Duration);
+ method public final B setInputData(androidx.work.Data);
+ }
+
+ public abstract class Worker extends androidx.work.ListenableWorker {
+ ctor @Keep public Worker(android.content.Context, androidx.work.WorkerParameters);
+ method @WorkerThread public abstract androidx.work.ListenableWorker.Result doWork();
+ method public final com.google.common.util.concurrent.ListenableFuture<androidx.work.ListenableWorker.Result!> startWork();
+ }
+
+ public abstract class WorkerFactory {
+ ctor public WorkerFactory();
+ method public abstract androidx.work.ListenableWorker? createWorker(android.content.Context, String, androidx.work.WorkerParameters);
+ }
+
+ public final class WorkerParameters {
+ method public java.util.UUID getId();
+ method public androidx.work.Data getInputData();
+ method @RequiresApi(28) public android.net.Network? getNetwork();
+ method @IntRange(from=0) public int getRunAttemptCount();
+ method public java.util.Set<java.lang.String!> getTags();
+ method @RequiresApi(24) public java.util.List<java.lang.String!> getTriggeredContentAuthorities();
+ method @RequiresApi(24) public java.util.List<android.net.Uri!> getTriggeredContentUris();
+ }
+
+}
+
diff --git a/work/workmanager/api/res-2.3.0-beta01.txt b/work/workmanager/api/res-2.3.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/work/workmanager/api/res-2.3.0-beta01.txt
diff --git a/work/workmanager/src/main/java/androidx/work/impl/background/systemalarm/Alarms.java b/work/workmanager/src/main/java/androidx/work/impl/background/systemalarm/Alarms.java
index 9ddd4b9..3c730f5 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/background/systemalarm/Alarms.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/background/systemalarm/Alarms.java
@@ -122,7 +122,7 @@
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent delayMet = CommandHandler.createDelayMetIntent(context, workSpecId);
PendingIntent pendingIntent = PendingIntent.getService(
- context, alarmId, delayMet, PendingIntent.FLAG_ONE_SHOT);
+ context, alarmId, delayMet, PendingIntent.FLAG_UPDATE_CURRENT);
if (alarmManager != null) {
if (Build.VERSION.SDK_INT >= 19) {
alarmManager.setExact(RTC_WAKEUP, triggerAtMillis, pendingIntent);