Merge "Webkit: bump version to 1.3.0-alpha01" into androidx-master-dev am: ced1d122cb
Change-Id: Ia79b65993e049b3e40741a8e38988c0de7174ccb
diff --git a/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java b/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java
index beba205..c519af8 100644
--- a/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java
+++ b/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java
@@ -26,7 +26,6 @@
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.pm.PackageManager;
-import android.os.AsyncTask;
import androidx.ads.identifier.AdvertisingIdClient;
import androidx.ads.identifier.AdvertisingIdInfo;
@@ -165,19 +164,21 @@
}
@Test
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void getAdvertisingIdInfo_asyncTask() throws Exception {
final BenchmarkState state = mBenchmarkRule.getState();
while (state.keepRunning()) {
- AdvertisingIdInfo advertisingIdInfo = new AsyncTask<Void, Void, AdvertisingIdInfo>() {
- @Override
- protected AdvertisingIdInfo doInBackground(Void... voids) {
- try {
- return AdvertisingIdClient.getAdvertisingIdInfo(mContext).get();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }.execute().get();
+ AdvertisingIdInfo advertisingIdInfo =
+ new android.os.AsyncTask<Void, Void, AdvertisingIdInfo>() {
+ @Override
+ protected AdvertisingIdInfo doInBackground(Void... voids) {
+ try {
+ return AdvertisingIdClient.getAdvertisingIdInfo(mContext).get();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }.execute().get();
assertThat(advertisingIdInfo.getId()).isEqualTo(DUMMY_AD_ID);
}
}
diff --git a/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt b/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt
index 05e8e4a..34f0d38 100644
--- a/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt
+++ b/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt
@@ -1218,6 +1218,7 @@
method public void onNestedScrollAccepted(android.view.View!, android.view.View!, int, int);
method public boolean onStartNestedScroll(android.view.View!, android.view.View!, int, int);
method public void onStopNestedScroll(android.view.View!, int);
+ method public void onWindowSystemUiVisibilityChanged(int);
method public void restoreToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
method public void saveToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
method public void setActionBarHideOffset(int);
diff --git a/appcompat/appcompat/api/restricted_current.txt b/appcompat/appcompat/api/restricted_current.txt
index 05e8e4a..34f0d38 100644
--- a/appcompat/appcompat/api/restricted_current.txt
+++ b/appcompat/appcompat/api/restricted_current.txt
@@ -1218,6 +1218,7 @@
method public void onNestedScrollAccepted(android.view.View!, android.view.View!, int, int);
method public boolean onStartNestedScroll(android.view.View!, android.view.View!, int, int);
method public void onStopNestedScroll(android.view.View!, int);
+ method public void onWindowSystemUiVisibilityChanged(int);
method public void restoreToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
method public void saveToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
method public void setActionBarHideOffset(int);
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
index 842b072..f2772b9 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
@@ -92,6 +92,7 @@
@Test
@SdkSuppress(minSdkVersion = 16)
@RequiresApi(16)
+ @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
public void testFitSystemWindowsReachesContent() {
final FitWindowsContentLayout content =
mActivityTestRule.getActivity().findViewById(R.id.test_content);
@@ -112,6 +113,7 @@
@Test
@SdkSuppress(minSdkVersion = 21)
@RequiresApi(21)
+ @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
public void testOnApplyWindowInsetsReachesContent() {
final View content = mActivityTestRule.getActivity().findViewById(R.id.test_content);
assertNotNull(content);
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
index 9bc4584..e3e5129 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
@@ -220,6 +220,7 @@
* @return an initialized popup
*/
@NonNull
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
private MenuPopup createPopup() {
final WindowManager windowManager = (WindowManager) mContext.getSystemService(
Context.WINDOW_SERVICE);
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
index dcf6f04..3880858 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
@@ -230,6 +230,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
public void onWindowSystemUiVisibilityChanged(int visible) {
if (Build.VERSION.SDK_INT >= 16) {
super.onWindowSystemUiVisibilityChanged(visible);
@@ -338,6 +339,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
pullChildren();
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java
index d4832d2..89e3bb9 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java
@@ -21,7 +21,6 @@
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.database.DataSetObservable;
-import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;
import android.util.Xml;
@@ -571,8 +570,9 @@
}
mHistoricalRecordsChanged = false;
if (!TextUtils.isEmpty(mHistoryFileName)) {
- new PersistHistoryAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
- new ArrayList<HistoricalRecord>(mHistoricalRecords), mHistoryFileName);
+ new PersistHistoryAsyncTask().executeOnExecutor(
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR,
+ new ArrayList<>(mHistoricalRecords), mHistoryFileName);
}
}
@@ -1034,10 +1034,10 @@
/**
* Command for persisting the historical records to a file off the UI thread.
*/
- private final class PersistHistoryAsyncTask extends AsyncTask<Object, Void, Void> {
+ @SuppressWarnings("deprecation") /* AsyncTask */
+ private final class PersistHistoryAsyncTask extends android.os.AsyncTask<Object, Void, Void> {
- PersistHistoryAsyncTask() {
- }
+ PersistHistoryAsyncTask() {}
@Override
@SuppressWarnings("unchecked")
diff --git a/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml b/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml
index 15bc1c7..a315670 100644
--- a/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml
+++ b/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml
@@ -16,32 +16,32 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="abc_action_mode_done" msgid="2571498368472823490">"Done"</string>
- <string name="abc_action_bar_home_description" msgid="7903180715631665059">"Navigate home"</string>
- <string name="abc_action_bar_up_description" msgid="6794660482873516081">"Navigate up"</string>
- <string name="abc_action_menu_overflow_description" msgid="1155814932213556626">"More options"</string>
- <string name="abc_toolbar_collapse_description" msgid="6389460216547290468">"Collapse"</string>
- <string name="abc_searchview_description_search" msgid="5466662225065974044">"Search"</string>
- <string name="abc_search_hint" msgid="940844115270746197">"Search…"</string>
- <string name="abc_searchview_description_query" msgid="908784302972860853">"Search query"</string>
- <string name="abc_searchview_description_clear" msgid="1769270744562318534">"Clear query"</string>
- <string name="abc_searchview_description_submit" msgid="8203855622131699655">"Submit query"</string>
- <string name="abc_searchview_description_voice" msgid="3478748990613108725">"Voice search"</string>
- <string name="abc_activitychooserview_choose_application" msgid="1798588241954930982">"Choose an app"</string>
- <string name="abc_activity_chooser_view_see_all" msgid="3732416590524162402">"See all"</string>
- <string name="abc_shareactionprovider_share_with_application" msgid="9009661856846212431">"Share with <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
- <string name="abc_shareactionprovider_share_with" msgid="2650565705514630347">"Share with"</string>
- <string name="abc_capital_on" msgid="7831734969929204599">"ON"</string>
- <string name="abc_capital_off" msgid="3403923230105792483">"OFF"</string>
- <string name="search_menu_title" msgid="730395136688082741">"Search"</string>
- <string name="abc_prepend_shortcut_label" msgid="3570106412128999382">"Menu+"</string>
- <string name="abc_menu_meta_shortcut_label" msgid="8046416353848716905">"Meta+"</string>
- <string name="abc_menu_ctrl_shortcut_label" msgid="944415252197684443">"Ctrl+"</string>
- <string name="abc_menu_alt_shortcut_label" msgid="5725160506500770567">"Alt+"</string>
- <string name="abc_menu_shift_shortcut_label" msgid="3271697756921353410">"Shift+"</string>
- <string name="abc_menu_sym_shortcut_label" msgid="8327365089695024394">"Sym+"</string>
- <string name="abc_menu_function_shortcut_label" msgid="4974283687810130415">"Function+"</string>
- <string name="abc_menu_space_shortcut_label" msgid="2304645930658438191">"space"</string>
- <string name="abc_menu_enter_shortcut_label" msgid="6840127756824236027">"enter"</string>
- <string name="abc_menu_delete_shortcut_label" msgid="129742188101734366">"delete"</string>
+ <string name="abc_action_mode_done" msgid="4076576682505996667">"Done"</string>
+ <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigate home"</string>
+ <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigate up"</string>
+ <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"More options"</string>
+ <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Collapse"</string>
+ <string name="abc_searchview_description_search" msgid="8264924765203268293">"Search"</string>
+ <string name="abc_search_hint" msgid="7723749260725869598">"Search…"</string>
+ <string name="abc_searchview_description_query" msgid="2550479030709304392">"Search query"</string>
+ <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Clear query"</string>
+ <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Submit query"</string>
+ <string name="abc_searchview_description_voice" msgid="893419373245838918">"Voice search"</string>
+ <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Choose an app"</string>
+ <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"See all"</string>
+ <string name="abc_shareactionprovider_share_with_application" msgid="3300176832234831527">"Share with <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+ <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
+ <string name="search_menu_title" msgid="146198913615257606">"Search"</string>
+ <string name="abc_prepend_shortcut_label" msgid="1351762916121158029">"Menu+"</string>
+ <string name="abc_menu_meta_shortcut_label" msgid="7643535737296831317">"Meta+"</string>
+ <string name="abc_menu_ctrl_shortcut_label" msgid="1324831542140195728">"Ctrl+"</string>
+ <string name="abc_menu_alt_shortcut_label" msgid="1302280443949172191">"Alt+"</string>
+ <string name="abc_menu_shift_shortcut_label" msgid="8126296154200614004">"Shift+"</string>
+ <string name="abc_menu_sym_shortcut_label" msgid="9002602288060866689">"Sym+"</string>
+ <string name="abc_menu_function_shortcut_label" msgid="4792426091847145555">"Function+"</string>
+ <string name="abc_menu_space_shortcut_label" msgid="2378550843553983978">"space"</string>
+ <string name="abc_menu_enter_shortcut_label" msgid="8341180395196749340">"enter"</string>
+ <string name="abc_menu_delete_shortcut_label" msgid="8362206064229013510">"delete"</string>
</resources>
diff --git a/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml b/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml
index 17646af..2e8e581 100644
--- a/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml
+++ b/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml
@@ -16,32 +16,32 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="abc_action_mode_done" msgid="2571498368472823490">"Done"</string>
- <string name="abc_action_bar_home_description" msgid="7903180715631665059">"Navigate home"</string>
- <string name="abc_action_bar_up_description" msgid="6794660482873516081">"Navigate up"</string>
- <string name="abc_action_menu_overflow_description" msgid="1155814932213556626">"More options"</string>
- <string name="abc_toolbar_collapse_description" msgid="6389460216547290468">"Collapse"</string>
- <string name="abc_searchview_description_search" msgid="5466662225065974044">"Search"</string>
- <string name="abc_search_hint" msgid="940844115270746197">"Search…"</string>
- <string name="abc_searchview_description_query" msgid="908784302972860853">"Search query"</string>
- <string name="abc_searchview_description_clear" msgid="1769270744562318534">"Clear query"</string>
- <string name="abc_searchview_description_submit" msgid="8203855622131699655">"Submit query"</string>
- <string name="abc_searchview_description_voice" msgid="3478748990613108725">"Voice search"</string>
- <string name="abc_activitychooserview_choose_application" msgid="1798588241954930982">"Choose an app"</string>
- <string name="abc_activity_chooser_view_see_all" msgid="3732416590524162402">"See all"</string>
- <string name="abc_shareactionprovider_share_with_application" msgid="9009661856846212431">"Share with <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
- <string name="abc_shareactionprovider_share_with" msgid="2650565705514630347">"Share with"</string>
- <string name="abc_capital_on" msgid="7831734969929204599">"ON"</string>
- <string name="abc_capital_off" msgid="3403923230105792483">"OFF"</string>
- <string name="search_menu_title" msgid="730395136688082741">"Search"</string>
- <string name="abc_prepend_shortcut_label" msgid="3570106412128999382">"Menu+"</string>
- <string name="abc_menu_meta_shortcut_label" msgid="8046416353848716905">"Meta+"</string>
- <string name="abc_menu_ctrl_shortcut_label" msgid="944415252197684443">"Ctrl+"</string>
- <string name="abc_menu_alt_shortcut_label" msgid="5725160506500770567">"Alt+"</string>
- <string name="abc_menu_shift_shortcut_label" msgid="3271697756921353410">"Shift+"</string>
- <string name="abc_menu_sym_shortcut_label" msgid="8327365089695024394">"Sym+"</string>
- <string name="abc_menu_function_shortcut_label" msgid="4974283687810130415">"Function+"</string>
- <string name="abc_menu_space_shortcut_label" msgid="2304645930658438191">"space"</string>
- <string name="abc_menu_enter_shortcut_label" msgid="6840127756824236027">"enter"</string>
- <string name="abc_menu_delete_shortcut_label" msgid="129742188101734366">"delete"</string>
+ <string name="abc_action_mode_done" msgid="4076576682505996667">"Done"</string>
+ <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigate home"</string>
+ <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigate up"</string>
+ <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"More options"</string>
+ <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Collapse"</string>
+ <string name="abc_searchview_description_search" msgid="8264924765203268293">"Search"</string>
+ <string name="abc_search_hint" msgid="7723749260725869598">"Search…"</string>
+ <string name="abc_searchview_description_query" msgid="2550479030709304392">"Search query"</string>
+ <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Clear query"</string>
+ <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Submit query"</string>
+ <string name="abc_searchview_description_voice" msgid="893419373245838918">"Voice search"</string>
+ <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Choose an app"</string>
+ <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"See all"</string>
+ <string name="abc_shareactionprovider_share_with_application" msgid="3300176832234831527">"Share with <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+ <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
+ <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+ <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
+ <string name="search_menu_title" msgid="146198913615257606">"Search"</string>
+ <string name="abc_prepend_shortcut_label" msgid="1351762916121158029">"Menu+"</string>
+ <string name="abc_menu_meta_shortcut_label" msgid="7643535737296831317">"Meta+"</string>
+ <string name="abc_menu_ctrl_shortcut_label" msgid="1324831542140195728">"Ctrl+"</string>
+ <string name="abc_menu_alt_shortcut_label" msgid="1302280443949172191">"Alt+"</string>
+ <string name="abc_menu_shift_shortcut_label" msgid="8126296154200614004">"Shift+"</string>
+ <string name="abc_menu_sym_shortcut_label" msgid="9002602288060866689">"Sym+"</string>
+ <string name="abc_menu_function_shortcut_label" msgid="4792426091847145555">"Function+"</string>
+ <string name="abc_menu_space_shortcut_label" msgid="2378550843553983978">"space"</string>
+ <string name="abc_menu_enter_shortcut_label" msgid="8341180395196749340">"enter"</string>
+ <string name="abc_menu_delete_shortcut_label" msgid="8362206064229013510">"delete"</string>
</resources>
diff --git a/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java b/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
index 409a620..c7e13a2 100644
--- a/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
+++ b/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
@@ -258,6 +258,7 @@
@Override
@Nullable
+ @SuppressWarnings("deprecation") /* setDeviceCredentialAllowed */
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
// Start the actual authentication when the fragment is attached.
diff --git a/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java b/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
index 5d68340..ee74d68 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
@@ -24,7 +24,6 @@
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
import androidx.annotation.NonNull;
@@ -71,6 +70,7 @@
private CustomTabsSession mSession;
@Before
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void setup() {
// Bind to PostMessageService only after CustomTabsService sends the callback to do so. This
// callback is sent after requestPostMessageChannel is called.
@@ -79,7 +79,7 @@
public void extraCallback(@NonNull String callbackName, Bundle args) {
if (TestCustomTabsService.CALLBACK_BIND_TO_POST_MESSAGE.equals(callbackName)) {
// This gets run on the UI thread, where mServiceRule.bindService will not work.
- AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
@Override
public void run() {
try {
diff --git a/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java b/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java
index e16d431..e465ab3 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java
@@ -23,7 +23,6 @@
import android.content.Context;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.RemoteException;
import androidx.browser.customtabs.EnableComponentsTestRule;
@@ -49,6 +48,7 @@
@RunWith(AndroidJUnit4.class)
@MediumTest
+@SuppressWarnings("deprecation") /* AsyncTask */
public class TrustedWebActivityServiceConnectionPoolTest {
private static final Uri GOOD_SCOPE = Uri.parse("https://www.example.com/notifications");
private static final Uri BAD_SCOPE = Uri.parse("https://www.notexample.com");
@@ -84,7 +84,8 @@
final AtomicBoolean connected = new AtomicBoolean();
ListenableFuture<TrustedWebActivityServiceConnection> serviceFuture =
- mManager.connect(GOOD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR);
+ mManager.connect(GOOD_SCOPE, mTrustedPackages,
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR);
serviceFuture.addListener(() -> {
try {
@@ -94,7 +95,7 @@
} catch (RemoteException | ExecutionException | InterruptedException e) {
throw new RuntimeException(e);
}
- }, AsyncTask.THREAD_POOL_EXECUTOR);
+ }, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
PollingCheck.waitFor(connected::get);
}
@@ -104,7 +105,8 @@
assertFalse(mManager.serviceExistsForScope(BAD_SCOPE, mTrustedPackages));
ListenableFuture<TrustedWebActivityServiceConnection> serviceFuture =
- mManager.connect(BAD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR);
+ mManager.connect(BAD_SCOPE, mTrustedPackages,
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR);
try {
serviceFuture.get();
@@ -120,10 +122,10 @@
public void testMultipleExecutions() {
final AtomicInteger count = new AtomicInteger();
- mManager.connect(GOOD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR)
- .addListener(count::incrementAndGet, AsyncTask.THREAD_POOL_EXECUTOR);
- mManager.connect(GOOD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR)
- .addListener(count::incrementAndGet, AsyncTask.THREAD_POOL_EXECUTOR);
+ mManager.connect(GOOD_SCOPE, mTrustedPackages, android.os.AsyncTask.THREAD_POOL_EXECUTOR)
+ .addListener(count::incrementAndGet, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
+ mManager.connect(GOOD_SCOPE, mTrustedPackages, android.os.AsyncTask.THREAD_POOL_EXECUTOR)
+ .addListener(count::incrementAndGet, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
PollingCheck.waitFor(() -> count.get() == 2);
}
diff --git a/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java b/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java
index 319f162..3bde75d 100644
--- a/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java
+++ b/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java
@@ -27,7 +27,6 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.ParcelFileDescriptor;
import android.util.Log;
@@ -61,6 +60,7 @@
*/
@Deprecated
@RestrictTo(LIBRARY)
+@SuppressWarnings("deprecation") /* AsyncTask */
public final class BrowserServiceFileProvider extends FileProvider {
private static final String TAG = "BrowserServiceFP";
private static final String AUTHORITY_SUFFIX = ".image_provider";
@@ -74,7 +74,7 @@
@SuppressWarnings("WeakerAccess") /* synthetic access */
static Object sFileCleanupLock = new Object();
- private static class FileCleanupTask extends AsyncTask<Void, Void, Void> {
+ private static class FileCleanupTask extends android.os.AsyncTask<Void, Void, Void> {
private final Context mAppContext;
private static final long IMAGE_RETENTION_DURATION = TimeUnit.DAYS.toMillis(7);
private static final long CLEANUP_REQUIRED_TIME_SPAN = TimeUnit.DAYS.toMillis(7);
@@ -130,7 +130,7 @@
}
}
- private static class FileSaveTask extends AsyncTask<String, Void, Void> {
+ private static class FileSaveTask extends android.os.AsyncTask<String, Void, Void> {
private final Context mAppContext;
private final String mFilename;
private final Bitmap mBitmap;
@@ -155,7 +155,8 @@
@Override
protected void onPostExecute(Void result) {
- new FileCleanupTask(mAppContext).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+ new FileCleanupTask(mAppContext)
+ .executeOnExecutor(android.os.AsyncTask.SERIAL_EXECUTOR);
}
private void saveFileIfNeededBlocking() {
@@ -221,6 +222,7 @@
*/
@UiThread
@NonNull
+ @SuppressWarnings("deprecation") /* AsyncTask */
public static ResolvableFuture<Uri> saveBitmap(@NonNull Context context, @NonNull Bitmap bitmap,
@NonNull String name, int version) {
String filename = name + "_" + Integer.toString(version);
@@ -228,7 +230,7 @@
ResolvableFuture<Uri> result = ResolvableFuture.create();
new FileSaveTask(context, filename, bitmap, uri, result)
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ .executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
return result;
}
@@ -268,11 +270,12 @@
* completed or with an IOException describing the reason for failure.
*/
@NonNull
+ @SuppressWarnings("deprecation") /* AsyncTask */
public static ListenableFuture<Bitmap> loadBitmap(@NonNull final ContentResolver resolver,
@NonNull final Uri uri) {
final ResolvableFuture<Bitmap> result = ResolvableFuture.create();
- AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
@Override
public void run() {
try {
diff --git a/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java b/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java
index 2110f57..691d1ce 100644
--- a/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java
+++ b/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java
@@ -22,7 +22,6 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
-import android.os.AsyncTask;
import android.util.Log;
import androidx.annotation.MainThread;
@@ -100,6 +99,7 @@
*/
@MainThread
@NonNull
+ @SuppressWarnings("deprecation") /* AsyncTask */
public ListenableFuture<TrustedWebActivityServiceConnection> connect(
@NonNull final Uri scope,
@NonNull Set<Token> possiblePackages,
@@ -128,7 +128,8 @@
return newConnection.getServiceWrapper();
}
- static class BindToServiceAsyncTask extends AsyncTask<Void, Void, Exception> {
+ @SuppressWarnings("deprecation") /* AsyncTask */
+ static class BindToServiceAsyncTask extends android.os.AsyncTask<Void, Void, Exception> {
private final Context mAppContext;
private final Intent mIntent;
private final ConnectionHolder mConnection;
diff --git a/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java b/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java
index 9460530..99ac592 100644
--- a/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java
+++ b/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java
@@ -23,7 +23,6 @@
import static org.mockito.Mockito.when;
import android.content.ComponentName;
-import android.os.AsyncTask;
import android.os.IBinder;
import android.os.RemoteException;
@@ -140,6 +139,7 @@
}
@Test
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void futureSetWithCorrectObject() throws InterruptedException, RemoteException {
final int smallIconId = 56;
@@ -163,7 +163,7 @@
} catch (ExecutionException | InterruptedException | RemoteException e) {
e.printStackTrace();
}
- }, AsyncTask.THREAD_POOL_EXECUTOR);
+ }, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
assertTrue(methodCalledLatch.await(200, TimeUnit.MILLISECONDS));
assertTrue(noExceptionLatch.await(200, TimeUnit.MILLISECONDS));
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
index 3b466e5..aa19d5d 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
@@ -78,7 +78,7 @@
var url = SUPPORT_URL
private var licenses: MutableCollection<License> = ArrayList()
var publish: Publish = Publish.NONE
- var failOnDeprecationWarnings = true
+ var failOnDeprecationWarnings = false // TODO: Set back to true before upstreaming to AOSP
var compilationTarget: CompilationTarget = CompilationTarget.DEVICE
diff --git a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt b/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
index a86f850..f92212b 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
@@ -31,7 +31,7 @@
* Either an integer value or a pre-release platform code, prefixed with "android-" (ex.
* "android-28" or "android-Q") as you would see within the SDK's platforms directory.
*/
- const val COMPILE_SDK_VERSION = "android-29"
+ const val COMPILE_SDK_VERSION = "android-R"
/**
* The Android SDK version to use for targetSdkVersion meta-data.
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
index 8eadbd1..c876d69 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
@@ -42,7 +42,6 @@
import android.media.Image;
import android.media.ImageReader;
import android.media.ImageReader.OnImageAvailableListener;
-import android.os.AsyncTask;
import android.os.Handler;
import android.os.HandlerThread;
import android.view.Surface;
@@ -639,6 +638,7 @@
}
@Test
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void cancelOpenCaptureSessionListenableFuture_shouldNoop() {
CaptureSession captureSession = createCaptureSession(mTestParameters0);
captureSession.setSessionConfig(mTestParameters0.mSessionConfig);
@@ -647,7 +647,8 @@
ArgumentCaptor<Throwable> throwableCaptor = ArgumentCaptor.forClass(Throwable.class);
ListenableFuture<Void> openingFuture = captureSession.open(mTestParameters0.mSessionConfig,
mCameraDeviceHolder.get());
- Futures.addCallback(openingFuture, mockFutureCallback, AsyncTask.THREAD_POOL_EXECUTOR);
+ Futures.addCallback(openingFuture, mockFutureCallback,
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR);
openingFuture.cancel(true);
// The captureSession opening should callback onFailure with a CancellationException.
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java
index 5e51f84..9581a29 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java
@@ -27,7 +27,6 @@
import android.hardware.camera2.CameraDevice;
import android.hardware.camera2.CameraManager;
import android.hardware.camera2.params.StreamConfigurationMap;
-import android.os.AsyncTask;
import android.util.Size;
import android.view.Surface;
@@ -143,6 +142,7 @@
// This test should not run on the main thread since it will block the main thread and
// deadlock on API <= 28.
@Test
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void canConfigureCaptureSession() throws InterruptedException, CameraAccessException {
OutputConfigurationCompat outputConfig = new OutputConfigurationCompat(mSurface);
@@ -165,7 +165,7 @@
SessionConfigurationCompat sessionConfig = new SessionConfigurationCompat(
SessionConfigurationCompat.SESSION_REGULAR,
- Collections.singletonList(outputConfig), AsyncTask.THREAD_POOL_EXECUTOR,
+ Collections.singletonList(outputConfig), android.os.AsyncTask.THREAD_POOL_EXECUTOR,
stateCallback);
try {
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java
index 9069061..c9f9b72 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java
@@ -46,6 +46,7 @@
@Override
@NonNull
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public ImageAnalysisConfig getConfig(@Nullable CameraInfo cameraInfo) {
ImageAnalysis.Builder builder = ImageAnalysis.Builder.fromConfig(
ImageAnalysis.DEFAULT_CONFIG.getConfig(cameraInfo));
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java
index fb303dd..7ebc13e2 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java
@@ -46,6 +46,7 @@
@Override
@NonNull
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public ImageCaptureConfig getConfig(@Nullable CameraInfo cameraInfo) {
ImageCapture.Builder builder = ImageCapture.Builder.fromConfig(
ImageCapture.DEFAULT_CONFIG.getConfig(cameraInfo));
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java
index ab6bbca..d05ea1e 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java
@@ -46,6 +46,7 @@
@Override
@NonNull
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public PreviewConfig getConfig(@Nullable CameraInfo cameraInfo) {
Preview.Builder builder = Preview.Builder.fromConfig(
Preview.DEFAULT_CONFIG.getConfig(cameraInfo));
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
index 472d490..99c6773 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
@@ -1113,6 +1113,7 @@
* PREVIEW refers to the best size match to the device's screen resolution, or to 1080p
* (1920x1080), whichever is smaller.
*/
+ @SuppressWarnings("deprecation") /* defaultDisplay */
private Size getPreviewSize(WindowManager windowManager) {
Point displaySize = new Point();
windowManager.getDefaultDisplay().getRealSize(displaySize);
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java
index d6a3e1b..87de342 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java
@@ -46,6 +46,7 @@
@Override
@NonNull
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public VideoCaptureConfig getConfig(@Nullable CameraInfo cameraInfo) {
VideoCaptureConfig.Builder builder =
VideoCaptureConfig.Builder.fromConfig(
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java
index 2be81b5..090df0a 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java
@@ -33,6 +33,7 @@
import java.util.List;
@RequiresApi(23)
+@SuppressWarnings("deprecation")
class CameraDeviceCompatApi23Impl extends CameraDeviceCompatBaseImpl {
@Override
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java
index 0050a9a..0ee9f7a 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java
@@ -33,6 +33,7 @@
import java.util.List;
@RequiresApi(24)
+@SuppressWarnings("deprecation")
class CameraDeviceCompatApi24Impl extends CameraDeviceCompatApi23Impl {
@Override
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java
index b20c07d..e2e63a3 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java
@@ -84,6 +84,7 @@
}
}
+ @SuppressWarnings("deprecation") /* createCaptureSession */
void createBaseCaptureSession(@NonNull CameraDevice device, @NonNull List<Surface> surfaces,
@NonNull CameraCaptureSession.StateCallback cb, @NonNull Handler handler)
throws CameraAccessException {
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
index 851008c..95b3761 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
@@ -133,6 +133,7 @@
private FakeCameraFactory mCameraFactory;
@Before
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public void setUp() {
WindowManager windowManager =
(WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
index e11b4a3..7db9ce9 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
@@ -155,6 +155,7 @@
private FakeCameraFactory mCameraFactory;
@Before
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public void setUp() {
WindowManager windowManager =
(WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
index 2199ee2..389990c 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
@@ -22,7 +22,6 @@
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
-import android.os.AsyncTask;
import android.view.Surface;
import androidx.annotation.NonNull;
@@ -77,16 +76,18 @@
@Test
@MediumTest
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void getSurfaceTimeoutTest() {
DeferrableSurface fakeDeferrableSurface = getFakeDeferrableSurface();
List<DeferrableSurface> surfaces = Arrays.asList(fakeDeferrableSurface);
ListenableFuture<List<Surface>> listenableFuture =
DeferrableSurfaces.surfaceListWithTimeout(surfaces, false, 50,
- AsyncTask.THREAD_POOL_EXECUTOR, mScheduledExecutorService);
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR, mScheduledExecutorService);
FutureCallback<List<Surface>> mockFutureCallback = mock(FutureCallback.class);
- Futures.addCallback(listenableFuture, mockFutureCallback, AsyncTask.THREAD_POOL_EXECUTOR);
+ Futures.addCallback(listenableFuture, mockFutureCallback,
+ android.os.AsyncTask.THREAD_POOL_EXECUTOR);
ArgumentCaptor<Throwable> throwableCaptor = ArgumentCaptor.forClass(Throwable.class);
verify(mockFutureCallback, timeout(3000).times(1)).onFailure(throwableCaptor.capture());
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java b/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java
index f7e8554..0ee14f3 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java
@@ -16,7 +16,6 @@
package androidx.camera.testing;
-import android.os.AsyncTask;
import android.os.Looper;
import android.view.Surface;
@@ -56,6 +55,7 @@
* @param removeNullSurfaces If true remove all Surfaces that were not retrieved.
*/
@NonNull
+ @SuppressWarnings("deprecation") /* AsyncTask */
public static List<Surface> surfaceList(
@NonNull Collection<DeferrableSurface> deferrableSurfaces, boolean removeNullSurfaces) {
ScheduledExecutorService scheduledExecutorService =
@@ -63,7 +63,7 @@
HandlerCompat.createAsync(Looper.getMainLooper()));
try {
return DeferrableSurfaces.surfaceListWithTimeout(deferrableSurfaces, removeNullSurfaces,
- Long.MAX_VALUE, AsyncTask.THREAD_POOL_EXECUTOR,
+ Long.MAX_VALUE, android.os.AsyncTask.THREAD_POOL_EXECUTOR,
scheduledExecutorService).get();
} catch (InterruptedException | ExecutionException e) {
return Collections.unmodifiableList(Collections.emptyList());
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java b/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java
index 695cee9..d43f278 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java
@@ -230,6 +230,7 @@
/**
* Creates a new {@link CameraCaptureSession} for camera preview.
*/
+ @SuppressWarnings("deprecation") /* createCaptureSession */
void createCameraPreviewSession() {
try {
SurfaceTexture texture = mTextureView.getSurfaceTexture();
diff --git a/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java b/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
index 5b390e9..0447a80 100644
--- a/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
+++ b/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
@@ -102,6 +102,7 @@
private int mHeight;
@Before
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public void setUp() throws Throwable {
assumeTrue(CameraUtil.deviceHasCamera());
CoreAppTestUtil.assumeCompatibleDevice();
diff --git a/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java b/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java
index 15b8eb3..09cb75f 100644
--- a/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java
+++ b/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java
@@ -105,6 +105,7 @@
* Computes the rotation of a {@link android.view.View} in degrees from its natural
* orientation.
*/
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
static int getRotationDegrees(@NonNull final View view) {
final WindowManager windowManager = (WindowManager) view.getContext().getSystemService(
Context.WINDOW_SERVICE);
@@ -134,6 +135,7 @@
* @param rotationDegrees The device's rotation in degrees from its natural orientation.
* @return Whether the device is naturally portrait-oriented.
*/
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
private static boolean isNaturalPortrait(@NonNull final Context context,
final int rotationDegrees) {
final WindowManager windowManager = (WindowManager) context.getSystemService(
diff --git a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
index 0939f27..024e8b2 100644
--- a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
+++ b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
@@ -307,6 +307,7 @@
}
/** @return One of 0, 90, 180, 270. */
+ @SuppressWarnings("deprecation") /* defaultDisplay */
private int getDisplayRotation() {
int displayRotation = getWindowManager().getDefaultDisplay().getRotation();
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt
index 678e8d8..d2c7261 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt
@@ -31,12 +31,12 @@
import androidx.camera.core.ImageCapture
import androidx.camera.core.ImageCaptureException
import androidx.camera.core.ImageProxy
-import androidx.exifinterface.media.ExifInterface
import androidx.camera.integration.antelope.MainActivity.Companion.PHOTOS_DIR
import androidx.camera.integration.antelope.MainActivity.Companion.logd
import androidx.camera.integration.antelope.cameracontrollers.CameraState
import androidx.camera.integration.antelope.cameracontrollers.closeCameraX
import androidx.camera.integration.antelope.cameracontrollers.closePreviewAndCamera
+import androidx.exifinterface.media.ExifInterface
import java.io.ByteArrayInputStream
import java.io.File
import java.io.FileOutputStream
@@ -71,6 +71,7 @@
when (image.format) {
ImageFormat.JPEG -> {
// Orientation
+ @Suppress("DEPRECATION") /* defaultDisplay */
val rotation = activity.windowManager.defaultDisplay.rotation
val capturedImageRotation = getOrientation(params, rotation)
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt
index 2a626c1..ecf2411 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt
@@ -110,6 +110,7 @@
params.captureRequestBuilder?.removeTarget(params.previewSurfaceView?.holder?.surface!!)
params.captureRequestBuilder?.addTarget(surface)
+ @Suppress("DEPRECATION")
params.device?.createCaptureSession(Arrays.asList(surface, imageSurface),
Camera2PreviewSessionStateCallback(activity, params, testConfig), null)
} catch (e: CameraAccessException) {
@@ -222,6 +223,7 @@
/**
* Make a still capture request. At this point, AF and AE should be converged or unnecessary.
*/
+@Suppress("DEPRECATION") /* defaultDisplay */
fun captureStillPicture(activity: MainActivity, params: CameraParams, testConfig: TestConfig) {
if (!params.isOpen) {
return
@@ -260,6 +262,7 @@
}
// Orientation
+ @Suppress("DEPRECATION") /* defaultDisplay */
val rotation = activity.windowManager.defaultDisplay.rotation
val capturedImageRotation = getOrientation(params, rotation)
params.captureRequestBuilder
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt
index 2a1afbf..63760c7 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt
@@ -171,6 +171,7 @@
val surface = Surface(surfaceTexture)
try {
+ @Suppress("DEPRECATION")
params.device?.createCaptureSession(
Arrays.asList(surface),
object : CameraCaptureSession.StateCallback() {
diff --git a/car/core/src/main/java/androidx/car/util/ColumnCalculator.java b/car/core/src/main/java/androidx/car/util/ColumnCalculator.java
index 7960e1d..44c2867 100644
--- a/car/core/src/main/java/androidx/car/util/ColumnCalculator.java
+++ b/car/core/src/main/java/androidx/car/util/ColumnCalculator.java
@@ -56,6 +56,7 @@
* @param context The current calling Context.
* @return An instance of {@link ColumnCalculator}.
*/
+ @SuppressWarnings("deprecation") /* getDefaultDisplay() */
public static ColumnCalculator getInstance(Context context) {
if (sInstance == null) {
WindowManager windowManager = (WindowManager) context.getSystemService(
diff --git a/cardview/cardview/build.gradle b/cardview/cardview/build.gradle
index 8a40ae5..dfe3d65 100644
--- a/cardview/cardview/build.gradle
+++ b/cardview/cardview/build.gradle
@@ -7,7 +7,7 @@
id("com.android.library")
}
-dependencies {
+dependencies {
api("androidx.annotation:annotation:1.1.0")
implementation(project(":core:core"))
}
diff --git a/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java b/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java
index 1de1353..3a89eba 100644
--- a/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java
+++ b/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java
@@ -3337,6 +3337,7 @@
return super.requestChildRectangleOnScreen(child, rectangle, immediate);
}
+ @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
private void setupForInsets() {
if (Build.VERSION.SDK_INT < 21) {
return;
diff --git a/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt b/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt
index 8274f62..d3d2a2c 100644
--- a/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt
+++ b/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt
@@ -24,6 +24,7 @@
import org.junit.Assert.assertFalse
import org.junit.Assert.assertSame
import org.junit.Assert.assertTrue
+import org.junit.Ignore
import org.junit.Test
@SmallTest
@@ -35,6 +36,7 @@
assertEquals(1, array.size)
}
+ @Ignore("SparseArray.contains exists in R, need to work out what to do")
@Test fun containsOperator() {
val array = SparseArray<String>()
assertFalse(1 in array)
@@ -42,6 +44,7 @@
assertTrue(1 in array)
}
+ @Ignore("SparseArray.contains exists in R, need to work out what to do")
@Test fun containsOperatorWithItem() {
val array = SparseArray<String>()
diff --git a/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt b/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt
index d7ea73c..f379be8 100644
--- a/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt
+++ b/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt
@@ -24,6 +24,7 @@
inline val <T> SparseArray<T>.size get() = size()
/** Returns true if the collection contains [key]. */
+@Suppress("EXTENSION_SHADOWED_BY_MEMBER") /* contains() added in R */
inline operator fun <T> SparseArray<T>.contains(key: Int) = indexOfKey(key) >= 0
/** Allows the use of the index operator for storing values in the collection. */
diff --git a/core/core/api/1.3.0-alpha01.txt b/core/core/api/1.3.0-alpha01.txt
index 6223bef..76e3094 100644
--- a/core/core/api/1.3.0-alpha01.txt
+++ b/core/core/api/1.3.0-alpha01.txt
@@ -439,6 +439,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1254,8 +1257,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1340,6 +1378,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2103,6 +2146,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2193,6 +2237,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, int);
method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2414,6 +2459,7 @@
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2497,6 +2543,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2586,6 +2633,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/1.3.0-alpha02.txt b/core/core/api/1.3.0-alpha02.txt
index acf1e95..c907603 100644
--- a/core/core/api/1.3.0-alpha02.txt
+++ b/core/core/api/1.3.0-alpha02.txt
@@ -439,6 +439,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1254,8 +1257,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1340,6 +1378,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2103,6 +2146,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2193,6 +2237,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, int);
method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2414,6 +2459,7 @@
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2497,6 +2543,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2586,6 +2633,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/api_lint.ignore b/core/core/api/api_lint.ignore
index 9a96c54..413f346 100644
--- a/core/core/api/api_lint.ignore
+++ b/core/core/api/api_lint.ignore
@@ -111,10 +111,14 @@
Inconsistent extra value; expected `androidx.core.app.extra.CALLING_PACKAGE`, was `androidx.core.app.EXTRA_CALLING_PACKAGE`
ActionValue: androidx.core.app.ShareCompat#EXTRA_CALLING_PACKAGE_INTEROP:
Inconsistent extra value; expected `androidx.core.app.extra.CALLING_PACKAGE_INTEROP`, was `android.support.v4.app.EXTRA_CALLING_PACKAGE`
+ActionValue: androidx.core.content.IntentCompat#ACTION_CREATE_REMINDER:
+ Inconsistent action value; expected `androidx.core.content.action.CREATE_REMINDER`, was `android.intent.action.CREATE_REMINDER`
ActionValue: androidx.core.content.IntentCompat#EXTRA_HTML_TEXT:
Inconsistent extra value; expected `androidx.core.content.extra.HTML_TEXT`, was `android.intent.extra.HTML_TEXT`
ActionValue: androidx.core.content.IntentCompat#EXTRA_START_PLAYBACK:
Inconsistent extra value; expected `androidx.core.content.extra.START_PLAYBACK`, was `android.intent.extra.START_PLAYBACK`
+ActionValue: androidx.core.content.IntentCompat#EXTRA_TIME:
+ Inconsistent extra value; expected `androidx.core.content.extra.TIME`, was `android.intent.extra.TIME`
ActionValue: androidx.core.content.pm.ShortcutManagerCompat#EXTRA_SHORTCUT_ID:
Inconsistent extra value; expected `androidx.core.content.pm.extra.SHORTCUT_ID`, was `android.intent.extra.shortcut.ID`
ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_COLUMN_INT:
diff --git a/core/core/api/current.txt b/core/core/api/current.txt
index acf1e95..c907603 100644
--- a/core/core/api/current.txt
+++ b/core/core/api/current.txt
@@ -439,6 +439,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1254,8 +1257,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1340,6 +1378,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2103,6 +2146,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2193,6 +2237,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, int);
method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2414,6 +2459,7 @@
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2497,6 +2543,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2586,6 +2633,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/public_plus_experimental_1.3.0-alpha01.txt b/core/core/api/public_plus_experimental_1.3.0-alpha01.txt
index 1dc8516..23ec09f 100644
--- a/core/core/api/public_plus_experimental_1.3.0-alpha01.txt
+++ b/core/core/api/public_plus_experimental_1.3.0-alpha01.txt
@@ -439,6 +439,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1252,8 +1255,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1338,6 +1376,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2101,6 +2144,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2191,6 +2235,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, int);
method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2412,6 +2457,7 @@
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2495,6 +2541,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2584,6 +2631,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/public_plus_experimental_1.3.0-alpha02.txt b/core/core/api/public_plus_experimental_1.3.0-alpha02.txt
index 2603884..b43a47d 100644
--- a/core/core/api/public_plus_experimental_1.3.0-alpha02.txt
+++ b/core/core/api/public_plus_experimental_1.3.0-alpha02.txt
@@ -439,6 +439,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1252,8 +1255,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1338,6 +1376,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2101,6 +2144,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2191,6 +2235,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, int);
method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2412,6 +2457,7 @@
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2495,6 +2541,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2584,6 +2631,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/public_plus_experimental_current.txt b/core/core/api/public_plus_experimental_current.txt
index 2603884..b43a47d 100644
--- a/core/core/api/public_plus_experimental_current.txt
+++ b/core/core/api/public_plus_experimental_current.txt
@@ -439,6 +439,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1252,8 +1255,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1338,6 +1376,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2101,6 +2144,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2191,6 +2235,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, int);
method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2412,6 +2457,7 @@
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2495,6 +2541,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2584,6 +2631,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/restricted_1.3.0-alpha01.txt b/core/core/api/restricted_1.3.0-alpha01.txt
index e7fc224..8b652aa 100644
--- a/core/core/api/restricted_1.3.0-alpha01.txt
+++ b/core/core/api/restricted_1.3.0-alpha01.txt
@@ -494,6 +494,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -967,9 +968,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1551,8 +1554,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1640,6 +1678,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2484,6 +2527,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2574,6 +2618,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2804,17 +2849,18 @@
method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
method public static int getAction(android.view.accessibility.AccessibilityEvent!);
- method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
+ method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent!);
method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
method public static void setAction(android.view.accessibility.AccessibilityEvent!, int);
- method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, int);
+ method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent!, int);
field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2839,6 +2885,9 @@
field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
}
+ @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+ }
+
public final class AccessibilityManagerCompat {
method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
@@ -2900,6 +2949,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2989,6 +3039,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/restricted_1.3.0-alpha02.txt b/core/core/api/restricted_1.3.0-alpha02.txt
index a30f3ce..c6662b0 100644
--- a/core/core/api/restricted_1.3.0-alpha02.txt
+++ b/core/core/api/restricted_1.3.0-alpha02.txt
@@ -494,6 +494,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -967,9 +968,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1551,8 +1554,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1640,6 +1678,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2484,6 +2527,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2574,6 +2618,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2804,17 +2849,18 @@
method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
method public static int getAction(android.view.accessibility.AccessibilityEvent!);
- method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
+ method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent!);
method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
method public static void setAction(android.view.accessibility.AccessibilityEvent!, int);
- method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, int);
+ method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent!, int);
field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2839,6 +2885,9 @@
field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
}
+ @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+ }
+
public final class AccessibilityManagerCompat {
method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
@@ -2900,6 +2949,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2989,6 +3039,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/api/restricted_current.txt b/core/core/api/restricted_current.txt
index a30f3ce..c6662b0 100644
--- a/core/core/api/restricted_current.txt
+++ b/core/core/api/restricted_current.txt
@@ -494,6 +494,7 @@
method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -967,9 +968,11 @@
public final class IntentCompat {
method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
}
public final class MimeTypeFilter {
@@ -1551,8 +1554,43 @@
package androidx.core.location {
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
public final class LocationManagerCompat {
method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
}
}
@@ -1640,6 +1678,11 @@
method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
}
+ public class HandlerExecutor implements java.util.concurrent.Executor {
+ ctor public HandlerExecutor(android.os.Handler);
+ method public void execute(Runnable);
+ }
+
public final class LocaleListCompat {
method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2484,6 +2527,7 @@
method @Deprecated public static float getScaleX(android.view.View!);
method @Deprecated public static float getScaleY(android.view.View!);
method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static final CharSequence? getStateDescription(android.view.View);
method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
method public static String? getTransitionName(android.view.View);
method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2574,6 +2618,7 @@
method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
method public static void setTooltipText(android.view.View, CharSequence?);
method public static void setTransitionName(android.view.View, String!);
@@ -2804,17 +2849,18 @@
method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
method public static int getAction(android.view.accessibility.AccessibilityEvent!);
- method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
+ method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent!);
method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
method public static void setAction(android.view.accessibility.AccessibilityEvent!, int);
- method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, int);
+ method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent!, int);
field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2839,6 +2885,9 @@
field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
}
+ @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+ }
+
public final class AccessibilityManagerCompat {
method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
@@ -2900,6 +2949,7 @@
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
method public CharSequence! getText();
method public int getTextSelectionEnd();
method public int getTextSelectionStart();
@@ -2989,6 +3039,7 @@
method public void setShowingHintText(boolean);
method public void setSource(android.view.View!);
method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
method public void setText(CharSequence!);
method public void setTextEntryKey(boolean);
method public void setTextSelection(int, int);
diff --git a/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java b/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
index 6bb544a..844f358 100644
--- a/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
@@ -41,6 +41,7 @@
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
+import android.graphics.drawable.Icon;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.net.Uri;
@@ -361,6 +362,18 @@
.getAllowGeneratedReplies());
}
+ @Test
+ @SdkSuppress(minSdkVersion = 23)
+ public void testNotificationSmallIcon() {
+ Icon icon = Icon.createWithResource(mContext, R.drawable.notification_action_background);
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, null);
+
+ builder.setSmallIcon(icon);
+
+ Notification notification = builder.build();
+
+ assertEquals(icon, notification.getSmallIcon());
+ }
@SdkSuppress(maxSdkVersion = 16)
@SmallTest
@@ -477,7 +490,7 @@
}
@Test
- public void testSetNotificationSilent() throws Throwable {
+ public void testSetNotificationSilent() {
Notification nSummary = new NotificationCompat.Builder(mActivityTestRule.getActivity())
.setVibrate(new long[] {235})
diff --git a/core/core/src/androidTest/java/androidx/core/os/HandlerExecutorTest.java b/core/core/src/androidTest/java/androidx/core/os/HandlerExecutorTest.java
new file mode 100644
index 0000000..c49a597
--- /dev/null
+++ b/core/core/src/androidTest/java/androidx/core/os/HandlerExecutorTest.java
@@ -0,0 +1,77 @@
+/*
+ * 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.core.os;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.os.Handler;
+import android.os.Looper;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests for {@link HandlerExecutor}.
+ */
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class HandlerExecutorTest {
+
+ private static final long TIMEOUT_MS = 5000;
+
+ @Test
+ public void testExecutor() throws Exception {
+ final CountDownLatch latch = new CountDownLatch(1);
+ HandlerExecutor executor = new HandlerExecutor(new Handler(Looper.getMainLooper()));
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ latch.countDown();
+ }
+ });
+ assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ }
+
+ @Test
+ public void testConstructor_Null() {
+ try {
+ new HandlerExecutor(null);
+ fail();
+ } catch (NullPointerException e) {
+ // pass
+ }
+ }
+
+ @Test
+ public void testExecute_Null() {
+ HandlerExecutor executor = new HandlerExecutor(new Handler(Looper.getMainLooper()));
+ try {
+ executor.execute(null);
+ fail();
+ } catch (NullPointerException e) {
+ // pass
+ }
+ }
+}
+
diff --git a/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java b/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
index 76a8a84..c765005 100644
--- a/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
@@ -18,6 +18,7 @@
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
@@ -34,6 +35,8 @@
import static org.mockito.Mockito.when;
import android.app.Activity;
+import android.app.Instrumentation;
+import android.app.UiAutomation;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.BaseInstrumentationTestCase;
@@ -52,6 +55,7 @@
import androidx.core.view.accessibility.AccessibilityNodeProviderCompat;
import androidx.core.view.accessibility.AccessibilityViewCommand;
import androidx.core.view.accessibility.AccessibilityViewCommand.MoveAtGranularityArguments;
+import androidx.test.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.MediumTest;
import androidx.test.filters.SdkSuppress;
@@ -62,11 +66,16 @@
import org.mockito.ArgumentCaptor;
import java.util.List;
+import java.util.concurrent.TimeoutException;
@RunWith(AndroidJUnit4.class)
@MediumTest
public class AccessibilityDelegateCompatTest extends
BaseInstrumentationTestCase<ViewCompatActivity> {
+ private static final int TIMEOUT_ASYNC_PROCESSING = 5000;
+
+ private static Instrumentation sInstrumentation;
+ private static UiAutomation sUiAutomation;
private ViewGroup mView;
@@ -76,6 +85,8 @@
@Before
public void setUp() {
+ sInstrumentation = InstrumentationRegistry.getInstrumentation();
+ sUiAutomation = sInstrumentation.getUiAutomation();
final Activity activity = mActivityTestRule.getActivity();
// Use a group, so it has a child
mView = (ViewGroup) activity.findViewById(androidx.core.test.R.id.view).getParent();
@@ -358,6 +369,83 @@
assertMockAccessibilityDelegateWorkingOnView(mockDelegate);
}
+ @Test
+ @SdkSuppress(minSdkVersion = 19)
+ public void testSetAccessibilityPaneTitle_sendsOutCorrectEvent() throws TimeoutException {
+ final Activity activity = mActivityTestRule.getActivity();
+
+ AccessibilityEvent awaitedEvent =
+ sUiAutomation.executeAndWaitForEvent(new Runnable() {
+ @Override
+ public void run() {
+ ViewCompat.setAccessibilityPaneTitle(mView, "test");
+ }
+ }, new UiAutomation.AccessibilityEventFilter() {
+ @Override
+ public boolean accept(AccessibilityEvent event) {
+ boolean isWindowStateChanged = event.getEventType()
+ == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
+ int isPaneTitle = (event.getContentChangeTypes()
+ & AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_TITLE);
+ boolean isFromThisPackage = TextUtils.equals(event.getPackageName(),
+ activity.getPackageName());
+ boolean isFromThisSource =
+ event.getSource().equals(mView.createAccessibilityNodeInfo());
+ return isWindowStateChanged && (isPaneTitle != 0) && isFromThisPackage
+ && isFromThisSource;
+ }
+ }, TIMEOUT_ASYNC_PROCESSING);
+
+ // The event should come from a view that's important for accessibility, even though the
+ // layout we added it to isn't important. Otherwise services may not find out about the
+ // new button.
+ assertTrue(awaitedEvent.getSource().isImportantForAccessibility());
+ }
+
+ @Test
+ @SdkSuppress(minSdkVersion = 19)
+ public void testSetStateDescription_propagatesToAccessibilityNodeInfo_sendsOutCorrectEvent()
+ throws TimeoutException {
+ final Activity activity = mActivityTestRule.getActivity();
+ final CharSequence state = "test";
+
+ assertThat(ViewCompat.getStateDescription(mView), is(nullValue()));
+ assertThat(getNodeCompatForView(mView).getStateDescription(), is(nullValue()));
+
+ AccessibilityEvent awaitedEvent =
+ sUiAutomation.executeAndWaitForEvent(new Runnable() {
+ @Override
+ public void run() {
+ ViewCompat.setStateDescription(mView, state);
+ }
+ }, new UiAutomation.AccessibilityEventFilter() {
+ @Override
+ public boolean accept(AccessibilityEvent event) {
+ boolean isContentChanged = event.getEventType()
+ == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED;
+ int isStateDescription = (event.getContentChangeTypes()
+ & AccessibilityEvent.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION);
+ boolean isFromThisPackage = TextUtils.equals(event.getPackageName(),
+ activity.getPackageName());
+ return isContentChanged && (isStateDescription != 0) && isFromThisPackage;
+ }
+ }, TIMEOUT_ASYNC_PROCESSING);
+
+ // The event should come from a view that's important for accessibility, even though the
+ // layout we added it to isn't important. Otherwise services may not find out about the
+ // new button.
+ assertTrue(awaitedEvent.getSource().isImportantForAccessibility());
+
+ assertThat(ViewCompat.getStateDescription(mView), is(state));
+ assertThat(getNodeCompatForView(mView).getStateDescription(), is(state));
+
+ // The value should still propagate even if we attach and detach another delegate compat
+ ViewCompat.setAccessibilityDelegate(mView, new AccessibilityDelegateCompat());
+ assertThat(getNodeCompatForView(mView).getStateDescription(), is(state));
+ ViewCompat.setAccessibilityDelegate(mView, null);
+ assertThat(getNodeCompatForView(mView).getStateDescription(), is(state));
+ }
+
private void assertMockAccessibilityDelegateWorkingOnView(
View.AccessibilityDelegate mockDelegate) {
final AccessibilityEvent event = AccessibilityEvent.obtain();
diff --git a/core/core/src/main/java/androidx/core/app/JobIntentService.java b/core/core/src/main/java/androidx/core/app/JobIntentService.java
index 12f657d..2f63c3c 100644
--- a/core/core/src/main/java/androidx/core/app/JobIntentService.java
+++ b/core/core/src/main/java/androidx/core/app/JobIntentService.java
@@ -25,7 +25,6 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.IBinder;
import android.os.PowerManager;
@@ -380,7 +379,7 @@
/**
* This is a task to dequeue and process work in the background.
*/
- final class CommandProcessor extends AsyncTask<Void, Void, Void> {
+ final class CommandProcessor extends android.os.AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
GenericWorkItem work;
@@ -562,7 +561,7 @@
* Control whether code executing in {@link #onHandleWork(Intent)} will be interrupted
* if the job is stopped. By default this is false. If called and set to true, any
* time {@link #onStopCurrentWork()} is called, the class will first call
- * {@link AsyncTask#cancel(boolean) AsyncTask.cancel(true)} to interrupt the running
+ * {@link android.os.AsyncTask#cancel(boolean) AsyncTask.cancel(true)} to interrupt the running
* task.
*
* @param interruptIfStopped Set to true to allow the system to interrupt actively
@@ -603,6 +602,7 @@
return onStopCurrentWork();
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
void ensureProcessorRunningLocked(boolean reportStarted) {
if (mCurProcessor == null) {
mCurProcessor = new CommandProcessor();
@@ -610,7 +610,7 @@
mCompatWorkEnqueuer.serviceProcessingStarted();
}
if (DEBUG) Log.d(TAG, "Starting processor: " + mCurProcessor);
- mCurProcessor.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ mCurProcessor.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
}
}
diff --git a/core/core/src/main/java/androidx/core/app/NotificationCompat.java b/core/core/src/main/java/androidx/core/app/NotificationCompat.java
index 4558738..bb9faf47 100644
--- a/core/core/src/main/java/androidx/core/app/NotificationCompat.java
+++ b/core/core/src/main/java/androidx/core/app/NotificationCompat.java
@@ -34,6 +34,7 @@
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.net.Uri;
@@ -747,7 +748,8 @@
@GroupAlertBehavior int mGroupAlertBehavior = GROUP_ALERT_ALL;
boolean mAllowSystemGeneratedContextualActions;
BubbleMetadata mBubbleMetadata;
- Notification mNotification = new Notification();
+ Notification.Builder mBuilder;
+ Notification mNotification;
boolean mSilent;
/**
@@ -773,6 +775,12 @@
public Builder(@NonNull Context context, @NonNull String channelId) {
mContext = context;
mChannelId = channelId;
+ mBuilder = Build.VERSION.SDK_INT >= 26
+ ? new Notification.Builder(context, channelId)
+ : new Notification.Builder(context);
+ mNotification = Build.VERSION.SDK_INT >= 16
+ ? mBuilder.build()
+ : new Notification();
// Set defaults to match the defaults of a Notification
mNotification.when = System.currentTimeMillis();
@@ -810,6 +818,19 @@
}
/**
+ * Set the small icon to use in the notification layouts. Different classes of devices
+ * may return different sizes. See the UX guidelines for more information on how to
+ * design these icons.
+ *
+ * @param icon The small Icon object to use
+ */
+ @RequiresApi(23)
+ public @NonNull Builder setSmallIcon(@Nullable Icon icon) {
+ mBuilder.setSmallIcon(icon);
+ return this;
+ }
+
+ /**
* Show the {@link Notification#when} field as a stopwatch.
*
* Instead of presenting <code>when</code> as a timestamp, the notification will show an
diff --git a/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java b/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
index 135eb21..9dd8de1 100644
--- a/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
+++ b/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
@@ -177,6 +177,9 @@
NotificationCompat.CarExtender.EXTRA_CAR_EXTENDER, carExtenderBundle);
}
}
+ if (Build.VERSION.SDK_INT >= 23) {
+ mBuilder.setSmallIcon(n.getSmallIcon());
+ }
if (Build.VERSION.SDK_INT >= 24) {
mBuilder.setExtras(b.mExtras)
.setRemoteInputHistory(b.mRemoteInputHistory);
@@ -221,6 +224,12 @@
mGroupAlertBehavior = GROUP_ALERT_SUMMARY;
}
+ mBuilder.setVibrate(null);
+ mBuilder.setSound(null);
+ n.defaults &= ~DEFAULT_SOUND;
+ n.defaults &= ~DEFAULT_VIBRATE;
+ mBuilder.setDefaults(n.defaults);
+
if (Build.VERSION.SDK_INT >= 26) {
if (TextUtils.isEmpty(mBuilderCompat.mGroupKey)) {
mBuilder.setGroup(NotificationCompat.GROUP_KEY_SILENT);
diff --git a/core/core/src/main/java/androidx/core/content/IntentCompat.java b/core/core/src/main/java/androidx/core/content/IntentCompat.java
index 1909ac8..6f5601d 100644
--- a/core/core/src/main/java/androidx/core/content/IntentCompat.java
+++ b/core/core/src/main/java/androidx/core/content/IntentCompat.java
@@ -30,6 +30,24 @@
}
/**
+ * Activity Action: Creates a reminder.
+ * <p>Input: {@link android.content.Intent#EXTRA_TITLE} The title of the
+ * reminder that will be shown to the user.
+ * {@link android.content.Intent#EXTRA_TEXT} The reminder text that will be
+ * shown to the user. The intent should at least specify a title or a text.
+ * {@link #EXTRA_TIME} The time when the reminder will
+ * be shown to the user. The time is specified in milliseconds since the
+ * Epoch (optional).
+ * </p>
+ * <p>Output: Nothing.</p>
+ *
+ * @see android.content.Intent#EXTRA_TITLE
+ * @see android.content.Intent#EXTRA_TEXT
+ * @see #EXTRA_TIME
+ */
+ public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
+
+ /**
* A constant String that is associated with the Intent, used with
* {@link android.content.Intent#ACTION_SEND} to supply an alternative to
* {@link android.content.Intent#EXTRA_TEXT}
@@ -46,6 +64,15 @@
public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
/**
+ * Optional extra specifying a time in milliseconds since the Epoch. The value must be
+ * non-negative.
+ * <p>
+ * Type: long
+ * </p>
+ */
+ public static final String EXTRA_TIME = "android.intent.extra.TIME";
+
+ /**
* Indicates an activity optimized for Leanback mode, and that should
* be displayed in the Leanback launcher.
*/
diff --git a/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java b/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java
index ff927a6..0bb5067 100644
--- a/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java
+++ b/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java
@@ -79,6 +79,7 @@
* @return The display object, or null if there is no valid display with the given id.
*/
@Nullable
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
public Display getDisplay(int displayId) {
if (Build.VERSION.SDK_INT >= 17) {
return ((DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE))
@@ -127,6 +128,7 @@
* @see #DISPLAY_CATEGORY_PRESENTATION
*/
@NonNull
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
public Display[] getDisplays(@Nullable String category) {
if (Build.VERSION.SDK_INT >= 17) {
return ((DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE))
diff --git a/core/core/src/main/java/androidx/core/location/GnssStatusCompat.java b/core/core/src/main/java/androidx/core/location/GnssStatusCompat.java
new file mode 100644
index 0000000..850a1d0
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/GnssStatusCompat.java
@@ -0,0 +1,216 @@
+/*
+ * 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.core.location;
+
+import static android.os.Build.VERSION_CODES;
+
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+
+import android.annotation.SuppressLint;
+import android.location.GnssStatus;
+import android.location.GpsSatellite;
+import android.location.GpsStatus;
+
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * GnssStatus representation that works across all Android versions. See {@link GnssStatus} and
+ * {@link GpsStatus}.
+ *
+ * <p>Note: When used to wrap {@link GpsStatus}, the best performance can be obtained by using a
+ * monotonically increasing {@code satelliteIndex} parameter (for instance, by using a loop from
+ * 0 to {@link #getSatelliteCount()}). Random access is supported but performance may suffer.
+ */
+public abstract class GnssStatusCompat {
+
+ // NOTE: CONSTELLATION_* values are copied from GnssStatus.java - any updates there should
+ // also be copied to this file.
+
+ /** Unknown constellation type. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_UNKNOWN = GnssStatus.CONSTELLATION_UNKNOWN;
+ /** Constellation type constant for GPS. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_GPS = GnssStatus.CONSTELLATION_GPS;
+ /** Constellation type constant for SBAS. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_SBAS = GnssStatus.CONSTELLATION_SBAS;
+ /** Constellation type constant for Glonass. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_GLONASS = GnssStatus.CONSTELLATION_GLONASS;
+ /** Constellation type constant for QZSS. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_QZSS = GnssStatus.CONSTELLATION_QZSS;
+ /** Constellation type constant for Beidou. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_BEIDOU = GnssStatus.CONSTELLATION_BEIDOU;
+ /** Constellation type constant for Galileo. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_GALILEO = GnssStatus.CONSTELLATION_GALILEO;
+ /** Constellation type constant for IRNSS. */
+ @SuppressLint("InlinedApi")
+ public static final int CONSTELLATION_IRNSS = GnssStatus.CONSTELLATION_IRNSS;
+
+ /**
+ * @hide
+ */
+ @RestrictTo(LIBRARY)
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({CONSTELLATION_UNKNOWN, CONSTELLATION_GPS, CONSTELLATION_SBAS, CONSTELLATION_GLONASS,
+ CONSTELLATION_QZSS, CONSTELLATION_BEIDOU, CONSTELLATION_GALILEO, CONSTELLATION_IRNSS})
+ public @interface ConstellationType {}
+
+ /**
+ * See {@link GnssStatus.Callback}.
+ */
+ public abstract static class Callback {
+
+ /**
+ * See {@link GnssStatus.Callback#onStarted()}.
+ */
+ public void onStarted() {}
+
+ /**
+ * See {@link GnssStatus.Callback#onStopped()}.
+ */
+ public void onStopped() {}
+
+ /**
+ * See {@link GnssStatus.Callback#onFirstFix(int)}.
+ */
+ public void onFirstFix(@IntRange(from = 0) int ttffMillis) {}
+
+ /**
+ * See {@link GnssStatus.Callback#onSatelliteStatusChanged(GnssStatus)}.
+ */
+ public void onSatelliteStatusChanged(@NonNull GnssStatusCompat status) {}
+ }
+
+ /**
+ * Wraps the given {@link GnssStatus} as GnssStatusCompat.
+ */
+ @RequiresApi(VERSION_CODES.N)
+ @NonNull
+ public static GnssStatusCompat wrap(@NonNull GnssStatus gnssStatus) {
+ return new GnssStatusWrapper(gnssStatus);
+ }
+
+ /**
+ * Wraps the given {@link GpsStatus} as GnssStatusCompat.
+ */
+ @SuppressLint("ReferencesDeprecated")
+ @NonNull
+ public static GnssStatusCompat wrap(@NonNull GpsStatus gpsStatus) {
+ return new GpsStatusWrapper(gpsStatus);
+ }
+
+ // package private to prevent subclassing by clients
+ GnssStatusCompat() {}
+
+ /**
+ * See {@link GnssStatus#getSatelliteCount()} and {@link GpsStatus#getMaxSatellites()}.
+ */
+ @IntRange(from = 0)
+ public abstract int getSatelliteCount();
+
+ /**
+ * See {@link GnssStatus#getConstellationType(int)}. Will always return a value for the GPS
+ * constellation below Android N.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ @ConstellationType
+ public abstract int getConstellationType(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#getSvid(int)} and {@link GpsSatellite#getPrn()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ @IntRange(from = 1, to = 200)
+ public abstract int getSvid(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#getCn0DbHz(int)} and {@link GpsSatellite#getSnr()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ @FloatRange(from = 0, to = 63)
+ public abstract float getCn0DbHz(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#getElevationDegrees(int)} and {@link GpsSatellite#getElevation()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ @FloatRange(from = -90, to = 90)
+ public abstract float getElevationDegrees(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#getAzimuthDegrees(int)} and {@link GpsSatellite#getAzimuth()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ @FloatRange(from = 0, to = 360)
+ public abstract float getAzimuthDegrees(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#hasEphemerisData(int)} and {@link GpsSatellite#hasEphemeris()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ public abstract boolean hasEphemerisData(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#hasAlmanacData(int)} and {@link GpsSatellite#hasAlmanac()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ public abstract boolean hasAlmanacData(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#usedInFix(int)} and {@link GpsSatellite#usedInFix()}.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ public abstract boolean usedInFix(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#hasCarrierFrequencyHz(int)}. This will always return false prior to
+ * Android O.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ public abstract boolean hasCarrierFrequencyHz(@IntRange(from = 0) int satelliteIndex);
+
+ /**
+ * See {@link GnssStatus#getCarrierFrequencyHz(int)}. Behavior is undefined if
+ * {@link #hasCarrierFrequencyHz(int)} returns false.
+ *
+ * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+ */
+ @FloatRange(from = 0)
+ public abstract float getCarrierFrequencyHz(@IntRange(from = 0) int satelliteIndex);
+}
diff --git a/core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java b/core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java
new file mode 100644
index 0000000..5a2cced
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java
@@ -0,0 +1,103 @@
+/*
+ * 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.core.location;
+
+import static android.os.Build.VERSION;
+import static android.os.Build.VERSION_CODES;
+
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+
+import android.location.GnssStatus;
+
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
+import androidx.core.util.Preconditions;
+
+/** @hide */
+@RestrictTo(LIBRARY)
+@RequiresApi(VERSION_CODES.N)
+class GnssStatusWrapper extends GnssStatusCompat {
+
+ private final GnssStatus mWrapped;
+
+ GnssStatusWrapper(GnssStatus gnssStatus) {
+ mWrapped = Preconditions.checkNotNull(gnssStatus);
+ }
+
+ @Override
+ public int getSatelliteCount() {
+ return mWrapped.getSatelliteCount();
+ }
+
+ @Override
+ public int getConstellationType(int satelliteIndex) {
+ return mWrapped.getConstellationType(satelliteIndex);
+ }
+
+ @Override
+ public int getSvid(int satelliteIndex) {
+ return mWrapped.getSvid(satelliteIndex);
+ }
+
+ @Override
+ public float getCn0DbHz(int satelliteIndex) {
+ return mWrapped.getCn0DbHz(satelliteIndex);
+ }
+
+ @Override
+ public float getElevationDegrees(int satelliteIndex) {
+ return mWrapped.getElevationDegrees(satelliteIndex);
+ }
+
+ @Override
+ public float getAzimuthDegrees(int satelliteIndex) {
+ return mWrapped.getAzimuthDegrees(satelliteIndex);
+ }
+
+ @Override
+ public boolean hasEphemerisData(int satelliteIndex) {
+ return mWrapped.hasEphemerisData(satelliteIndex);
+ }
+
+ @Override
+ public boolean hasAlmanacData(int satelliteIndex) {
+ return mWrapped.hasAlmanacData(satelliteIndex);
+ }
+
+ @Override
+ public boolean usedInFix(int satelliteIndex) {
+ return mWrapped.usedInFix(satelliteIndex);
+ }
+
+ @Override
+ public boolean hasCarrierFrequencyHz(int satelliteIndex) {
+ if (VERSION.SDK_INT >= VERSION_CODES.O) {
+ return mWrapped.hasCarrierFrequencyHz(satelliteIndex);
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public float getCarrierFrequencyHz(int satelliteIndex) {
+ if (VERSION.SDK_INT >= VERSION_CODES.O) {
+ return mWrapped.getCarrierFrequencyHz(satelliteIndex);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/core/core/src/main/java/androidx/core/location/GpsStatusWrapper.java b/core/core/src/main/java/androidx/core/location/GpsStatusWrapper.java
new file mode 100644
index 0000000..3ac9610
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/GpsStatusWrapper.java
@@ -0,0 +1,191 @@
+/*
+ * 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.core.location;
+
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+
+import android.location.GpsSatellite;
+import android.location.GpsStatus;
+import android.os.Build.VERSION;
+import android.os.Build.VERSION_CODES;
+
+import androidx.annotation.GuardedBy;
+import androidx.annotation.RestrictTo;
+import androidx.core.util.Preconditions;
+
+import java.util.Iterator;
+
+/** @hide */
+@RestrictTo(LIBRARY)
+class GpsStatusWrapper extends GnssStatusCompat {
+
+ private static final int GPS_PRN_OFFSET = 0;
+ private static final int GPS_PRN_COUNT = 32;
+ private static final int SBAS_PRN_MIN = 33;
+ private static final int SBAS_PRN_MAX = 64;
+ private static final int SBAS_PRN_OFFSET = -87;
+ private static final int GLONASS_PRN_OFFSET = 64;
+ private static final int GLONASS_PRN_COUNT = 24;
+ private static final int QZSS_SVID_MIN = 193;
+ private static final int QZSS_SVID_MAX = 200;
+ private static final int BEIDOU_PRN_OFFSET = 200;
+ private static final int BEIDOU_PRN_COUNT = 35;
+
+ private final GpsStatus mWrapped;
+
+ @GuardedBy("mWrapped")
+ private int mCachedSatelliteCount;
+
+ @GuardedBy("mWrapped")
+ private Iterator<GpsSatellite> mCachedIterator;
+ @GuardedBy("mWrapped")
+ private int mCachedIteratorPosition;
+ @GuardedBy("mWrapped")
+ private GpsSatellite mCachedSatellite;
+
+ GpsStatusWrapper(GpsStatus gpsStatus) {
+ mWrapped = Preconditions.checkNotNull(gpsStatus);
+ mCachedSatelliteCount = -1;
+ mCachedIterator = mWrapped.getSatellites().iterator();
+ mCachedIteratorPosition = -1;
+ mCachedSatellite = null;
+ }
+
+ @Override
+ public int getSatelliteCount() {
+ synchronized (mWrapped) {
+ if (mCachedSatelliteCount == -1) {
+ for (@SuppressWarnings("unused") GpsSatellite ignored : mWrapped.getSatellites()) {
+ mCachedSatelliteCount++;
+ }
+ mCachedSatelliteCount++;
+ }
+
+ return mCachedSatelliteCount;
+ }
+ }
+
+ @Override
+ public int getConstellationType(int satelliteIndex) {
+ if (VERSION.SDK_INT < VERSION_CODES.N) {
+ return CONSTELLATION_GPS;
+ } else {
+ return getConstellationFromPrn(getSatellite(satelliteIndex).getPrn());
+ }
+ }
+
+ @Override
+ public int getSvid(int satelliteIndex) {
+ if (VERSION.SDK_INT < VERSION_CODES.N) {
+ return getSatellite(satelliteIndex).getPrn();
+ } else {
+ return getSvidFromPrn(getSatellite(satelliteIndex).getPrn());
+ }
+ }
+
+ @Override
+ public float getCn0DbHz(int satelliteIndex) {
+ return getSatellite(satelliteIndex).getSnr();
+ }
+
+ @Override
+ public float getElevationDegrees(int satelliteIndex) {
+ return getSatellite(satelliteIndex).getElevation();
+ }
+
+ @Override
+ public float getAzimuthDegrees(int satelliteIndex) {
+ return getSatellite(satelliteIndex).getAzimuth();
+ }
+
+ @Override
+ public boolean hasEphemerisData(int satelliteIndex) {
+ return getSatellite(satelliteIndex).hasEphemeris();
+ }
+
+ @Override
+ public boolean hasAlmanacData(int satelliteIndex) {
+ return getSatellite(satelliteIndex).hasAlmanac();
+ }
+
+ @Override
+ public boolean usedInFix(int satelliteIndex) {
+ return getSatellite(satelliteIndex).usedInFix();
+ }
+
+ @Override
+ public boolean hasCarrierFrequencyHz(int satelliteIndex) {
+ return false;
+ }
+
+ @Override
+ public float getCarrierFrequencyHz(int satelliteIndex) {
+ throw new UnsupportedOperationException();
+ }
+
+ private GpsSatellite getSatellite(int satelliteIndex) {
+ GpsSatellite satellite;
+ synchronized (mWrapped) {
+ if (satelliteIndex < mCachedIteratorPosition) {
+ mCachedIterator = mWrapped.getSatellites().iterator();
+ mCachedIteratorPosition = -1;
+ }
+ while (mCachedIteratorPosition < satelliteIndex) {
+ mCachedIteratorPosition++;
+ if (!mCachedIterator.hasNext()) {
+ mCachedSatellite = null;
+ break;
+ } else {
+ mCachedSatellite = mCachedIterator.next();
+ }
+ }
+ satellite = mCachedSatellite;
+ }
+ return Preconditions.checkNotNull(satellite);
+ }
+
+ private static int getConstellationFromPrn(int prn) {
+ if (prn > GPS_PRN_OFFSET && prn <= GPS_PRN_OFFSET + GPS_PRN_COUNT) {
+ return CONSTELLATION_GPS;
+ } else if (prn >= SBAS_PRN_MIN && prn <= SBAS_PRN_MAX) {
+ return CONSTELLATION_SBAS;
+ } else if (prn > GLONASS_PRN_OFFSET && prn <= GLONASS_PRN_OFFSET + GLONASS_PRN_COUNT) {
+ return CONSTELLATION_GLONASS;
+ } else if (prn > BEIDOU_PRN_OFFSET && prn <= BEIDOU_PRN_OFFSET + BEIDOU_PRN_COUNT) {
+ return CONSTELLATION_BEIDOU;
+ } else if (prn >= QZSS_SVID_MIN && prn <= QZSS_SVID_MAX) {
+ return CONSTELLATION_QZSS;
+ } else {
+ return CONSTELLATION_UNKNOWN;
+ }
+ }
+
+ private static int getSvidFromPrn(int prn) {
+ switch (getConstellationFromPrn(prn)) {
+ case CONSTELLATION_SBAS:
+ prn -= SBAS_PRN_OFFSET;
+ break;
+ case CONSTELLATION_GLONASS:
+ prn -= GLONASS_PRN_OFFSET;
+ break;
+ case CONSTELLATION_BEIDOU:
+ prn -= BEIDOU_PRN_OFFSET;
+ break;
+ }
+ return prn;
+ }
+}
diff --git a/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java b/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
index 71f2c24..2aca0a3 100644
--- a/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
+++ b/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
@@ -16,17 +16,40 @@
package androidx.core.location;
+import static android.Manifest.permission.ACCESS_FINE_LOCATION;
+
+import android.location.GnssStatus;
+import android.location.GpsStatus;
import android.location.LocationManager;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
+import android.os.Handler;
+import android.os.Looper;
+import androidx.annotation.GuardedBy;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
+import androidx.collection.SimpleArrayMap;
+import androidx.core.os.HandlerExecutor;
+import androidx.core.util.Preconditions;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executor;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
/**
* Helper for accessing features in {@link LocationManager}.
*/
public final class LocationManagerCompat {
+ private static final long PRE_N_LOOPER_TIMEOUT_S = 4;
+
/**
* Returns the current enabled/disabled state of location.
*
@@ -47,5 +70,414 @@
}
}
+ @GuardedBy("sGnssStatusListeners")
+ private static final SimpleArrayMap<Object, Object> sGnssStatusListeners =
+ new SimpleArrayMap<>();
+
+ /**
+ * Registers a platform agnostic {@link GnssStatusCompat.Callback}. See
+ * {@link LocationManager#addGpsStatusListener(GpsStatus.Listener)} and
+ * {@link LocationManager#registerGnssStatusCallback(GnssStatus.Callback, Handler)}.
+ *
+ * @see #registerGnssStatusCallback(LocationManager, Executor, GnssStatusCompat.Callback)
+ */
+ @RequiresPermission(ACCESS_FINE_LOCATION)
+ public static boolean registerGnssStatusCallback(@NonNull LocationManager locationManager,
+ @NonNull GnssStatusCompat.Callback callback, @NonNull Handler handler) {
+ if (VERSION.SDK_INT >= VERSION_CODES.R) {
+ return registerGnssStatusCallback(locationManager, new HandlerExecutor(handler),
+ callback);
+ } else {
+ return registerGnssStatusCallback(locationManager, new InlineHandlerExecutor(handler),
+ callback);
+ }
+ }
+
+ /**
+ * Registers a platform agnostic {@link GnssStatusCompat.Callback}. See
+ * {@link LocationManager#addGpsStatusListener(GpsStatus.Listener)} and
+ * {@link LocationManager#registerGnssStatusCallback(Executor, GnssStatus.Callback)}.
+ *
+ * <p>Internally, this API will always utilize GnssStatus APIs and instances on Android N and
+ * above, and will always utilize GpsStatus APIs and instances below Android N. Callbacks will
+ * always occur on the given executor.
+ *
+ * <p>If invoked on Android M or below, this will result in GpsStatus registration being run on
+ * either the current Looper or main Looper. If the thread this function is invoked on is
+ * different from that Looper, the caller must ensure that the Looper thread cannot be blocked
+ * by the thread this function is invoked on. The easiest way to avoid this is to ensure this
+ * function is invoked on a Looper thread.
+ *
+ * @throws IllegalStateException on Android M or below, if the current Looper or main Looper
+ * is blocked by the thread this function is invoked on
+ */
+ @RequiresPermission(ACCESS_FINE_LOCATION)
+ public static boolean registerGnssStatusCallback(@NonNull LocationManager locationManager,
+ @NonNull Executor executor, @NonNull GnssStatusCompat.Callback callback) {
+ if (VERSION.SDK_INT >= VERSION_CODES.R) {
+ return registerGnssStatusCallback(locationManager, null, executor, callback);
+ } else {
+ Looper looper = Looper.myLooper();
+ if (looper == null) {
+ looper = Looper.getMainLooper();
+ }
+ return registerGnssStatusCallback(locationManager, new Handler(looper), executor,
+ callback);
+ }
+ }
+
+ @RequiresPermission(ACCESS_FINE_LOCATION)
+ private static boolean registerGnssStatusCallback(final LocationManager locationManager,
+ Handler baseHandler, Executor executor, GnssStatusCompat.Callback callback) {
+ if (VERSION.SDK_INT >= VERSION_CODES.R) {
+ synchronized (sGnssStatusListeners) {
+ GnssStatusTransport transport =
+ (GnssStatusTransport) sGnssStatusListeners.get(callback);
+ if (transport == null) {
+ transport = new GnssStatusTransport(callback);
+ }
+ if (locationManager.registerGnssStatusCallback(executor, transport)) {
+ sGnssStatusListeners.put(callback, transport);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ } else if (VERSION.SDK_INT >= VERSION_CODES.N) {
+ Preconditions.checkArgument(baseHandler != null);
+ synchronized (sGnssStatusListeners) {
+ PreRGnssStatusTransport transport =
+ (PreRGnssStatusTransport) sGnssStatusListeners.get(callback);
+ if (transport == null) {
+ transport = new PreRGnssStatusTransport(callback);
+ } else {
+ transport.unregister();
+ }
+ transport.register(executor);
+
+ if (locationManager.registerGnssStatusCallback(transport, baseHandler)) {
+ sGnssStatusListeners.put(callback, transport);
+ return true;
+ } else {
+ transport.unregister();
+ return false;
+ }
+ }
+ } else {
+ Preconditions.checkArgument(baseHandler != null);
+ synchronized (sGnssStatusListeners) {
+ GpsStatusTransport transport =
+ (GpsStatusTransport) sGnssStatusListeners.get(callback);
+ if (transport == null) {
+ transport = new GpsStatusTransport(locationManager, callback);
+ } else {
+ transport.unregister();
+ }
+ transport.register(executor);
+
+ final GpsStatusTransport myTransport = transport;
+ FutureTask<Boolean> task = new FutureTask<>(new Callable<Boolean>() {
+ @RequiresPermission(ACCESS_FINE_LOCATION)
+ @Override
+ public Boolean call() {
+ return locationManager.addGpsStatusListener(myTransport);
+ }
+ });
+
+ if (Looper.myLooper() == baseHandler.getLooper()) {
+ task.run();
+ } else if (!baseHandler.post(task)) {
+ throw new IllegalStateException(baseHandler + " is shutting down");
+ }
+ try {
+ if (task.get(PRE_N_LOOPER_TIMEOUT_S, TimeUnit.SECONDS)) {
+ sGnssStatusListeners.put(callback, myTransport);
+ return true;
+ } else {
+ transport.unregister();
+ return false;
+ }
+ } catch (ExecutionException | InterruptedException e) {
+ throw new IllegalStateException(e);
+ } catch (TimeoutException e) {
+ throw new IllegalStateException(baseHandler + " appears to be blocked, please"
+ + " run registerGnssStatusCallback() directly on a Looper thread or "
+ + "ensure the main Looper is not blocked by this thread", e);
+ }
+ }
+ }
+ }
+
+ /**
+ * Unregisters a platform agnostic {@link GnssStatusCompat.Callback}. See
+ * {@link LocationManager#removeGpsStatusListener(GpsStatus.Listener)}
+ * and {@link LocationManager#unregisterGnssStatusCallback(GnssStatus.Callback)}.
+ */
+ public static void unregisterGnssStatusCallback(@NonNull LocationManager locationManager,
+ @NonNull GnssStatusCompat.Callback callback) {
+ if (VERSION.SDK_INT >= VERSION_CODES.R) {
+ synchronized (sGnssStatusListeners) {
+ GnssStatusTransport transport =
+ (GnssStatusTransport) sGnssStatusListeners.remove(callback);
+ if (transport != null) {
+ locationManager.unregisterGnssStatusCallback(transport);
+ }
+ }
+ } else if (VERSION.SDK_INT >= VERSION_CODES.N) {
+ synchronized (sGnssStatusListeners) {
+ PreRGnssStatusTransport transport =
+ (PreRGnssStatusTransport) sGnssStatusListeners.remove(callback);
+ if (transport != null) {
+ transport.unregister();
+ locationManager.unregisterGnssStatusCallback(transport);
+ }
+ }
+ } else {
+ synchronized (sGnssStatusListeners) {
+ GpsStatusTransport transport =
+ (GpsStatusTransport) sGnssStatusListeners.remove(callback);
+ if (transport != null) {
+ transport.unregister();
+ locationManager.removeGpsStatusListener(transport);
+ }
+ }
+ }
+ }
+
private LocationManagerCompat() {}
+
+ @RequiresApi(VERSION_CODES.R)
+ private static class GnssStatusTransport extends GnssStatus.Callback {
+
+ final GnssStatusCompat.Callback mCallback;
+
+ GnssStatusTransport(GnssStatusCompat.Callback callback) {
+ Preconditions.checkArgument(callback != null, "invalid null callback");
+ mCallback = callback;
+ }
+
+ @Override
+ public void onStarted() {
+ mCallback.onStarted();
+ }
+
+ @Override
+ public void onStopped() {
+ mCallback.onStopped();
+ }
+
+ @Override
+ public void onFirstFix(int ttffMillis) {
+ mCallback.onFirstFix(ttffMillis);
+ }
+
+ @Override
+ public void onSatelliteStatusChanged(GnssStatus status) {
+ mCallback.onSatelliteStatusChanged(GnssStatusCompat.wrap(status));
+ }
+ }
+
+ @RequiresApi(VERSION_CODES.N)
+ private static class PreRGnssStatusTransport extends GnssStatus.Callback {
+
+ final GnssStatusCompat.Callback mCallback;
+
+ @Nullable volatile Executor mExecutor;
+
+ PreRGnssStatusTransport(GnssStatusCompat.Callback callback) {
+ Preconditions.checkArgument(callback != null, "invalid null callback");
+ mCallback = callback;
+ }
+
+ public void register(Executor executor) {
+ Preconditions.checkArgument(executor != null, "invalid null executor");
+ Preconditions.checkState(mExecutor == null);
+ mExecutor = executor;
+ }
+
+ public void unregister() {
+ mExecutor = null;
+ }
+
+ @Override
+ public void onStarted() {
+ final Executor executor = mExecutor;
+ if (executor == null) {
+ return;
+ }
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onStarted();
+ }
+ });
+ }
+
+ @Override
+ public void onStopped() {
+ final Executor executor = mExecutor;
+ if (executor == null) {
+ return;
+ }
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onStopped();
+ }
+ });
+ }
+
+ @Override
+ public void onFirstFix(final int ttffMillis) {
+ final Executor executor = mExecutor;
+ if (executor == null) {
+ return;
+ }
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onFirstFix(ttffMillis);
+ }
+ });
+ }
+
+ @Override
+ public void onSatelliteStatusChanged(final GnssStatus status) {
+ final Executor executor = mExecutor;
+ if (executor == null) {
+ return;
+ }
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onSatelliteStatusChanged(GnssStatusCompat.wrap(status));
+ }
+ });
+ }
+ }
+
+ private static class GpsStatusTransport implements GpsStatus.Listener {
+
+ private final LocationManager mLocationManager;
+ final GnssStatusCompat.Callback mCallback;
+
+ @Nullable volatile Executor mExecutor;
+
+ GpsStatusTransport(LocationManager locationManager,
+ GnssStatusCompat.Callback callback) {
+ Preconditions.checkArgument(callback != null, "invalid null callback");
+ mLocationManager = locationManager;
+ mCallback = callback;
+ }
+
+ public void register(Executor executor) {
+ Preconditions.checkState(mExecutor == null);
+ mExecutor = executor;
+ }
+
+ public void unregister() {
+ mExecutor = null;
+ }
+
+ @RequiresPermission(ACCESS_FINE_LOCATION)
+ @Override
+ public void onGpsStatusChanged(int event) {
+ final Executor executor = mExecutor;
+ if (executor == null) {
+ return;
+ }
+
+ GpsStatus gpsStatus;
+
+ switch (event) {
+ case GpsStatus.GPS_EVENT_STARTED:
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onStarted();
+ }
+ });
+ break;
+ case GpsStatus.GPS_EVENT_STOPPED:
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onStopped();
+ }
+ });
+ break;
+ case GpsStatus.GPS_EVENT_FIRST_FIX:
+ gpsStatus = mLocationManager.getGpsStatus(null);
+ if (gpsStatus != null) {
+ final int ttff = gpsStatus.getTimeToFirstFix();
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onFirstFix(ttff);
+ }
+ });
+ }
+ break;
+ case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
+ gpsStatus = mLocationManager.getGpsStatus(null);
+ if (gpsStatus != null) {
+ final GnssStatusCompat gnssStatus = GnssStatusCompat.wrap(gpsStatus);
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (mExecutor != executor) {
+ return;
+ }
+ mCallback.onSatelliteStatusChanged(gnssStatus);
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+
+ // using this class allows listeners to be run more efficiently in the common case for pre-R
+ // SDKs where the AOSP callback is already on the same Looper the listener wants
+ private static class InlineHandlerExecutor implements Executor {
+ private final Handler mHandler;
+
+ InlineHandlerExecutor(@NonNull Handler handler) {
+ mHandler = Preconditions.checkNotNull(handler);
+ }
+
+ @Override
+ public void execute(@NonNull Runnable command) {
+ if (Looper.myLooper() == mHandler.getLooper()) {
+ command.run();
+ } else if (!mHandler.post(Preconditions.checkNotNull(command))) {
+ throw new RejectedExecutionException(mHandler + " is shutting down");
+ }
+ }
+ }
}
diff --git a/core/core/src/main/java/androidx/core/location/OWNERS b/core/core/src/main/java/androidx/core/location/OWNERS
new file mode 100644
index 0000000..a420c39
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/OWNERS
@@ -0,0 +1,3 @@
+wyattriley@google.com
+sooniln@google.com
+weiwa@google.com
diff --git a/core/core/src/main/java/androidx/core/os/HandlerExecutor.java b/core/core/src/main/java/androidx/core/os/HandlerExecutor.java
new file mode 100644
index 0000000..962a076
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/os/HandlerExecutor.java
@@ -0,0 +1,41 @@
+/*
+ * 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.core.os;
+
+import android.os.Handler;
+
+import androidx.annotation.NonNull;
+import androidx.core.util.Preconditions;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.RejectedExecutionException;
+
+/** An adapter {@link Executor} that posts all executed tasks onto the given {@link Handler}. */
+public class HandlerExecutor implements Executor {
+ private final Handler mHandler;
+
+ public HandlerExecutor(@NonNull Handler handler) {
+ mHandler = Preconditions.checkNotNull(handler);
+ }
+
+ @Override
+ public void execute(@NonNull Runnable command) {
+ if (!mHandler.post(Preconditions.checkNotNull(command))) {
+ throw new RejectedExecutionException(mHandler + " is shutting down");
+ }
+ }
+}
diff --git a/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java b/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java
index a1f6081..de873ba 100644
--- a/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java
+++ b/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java
@@ -83,6 +83,7 @@
nodeInfoCompat.setScreenReaderFocusable(ViewCompat.isScreenReaderFocusable(host));
nodeInfoCompat.setHeading(ViewCompat.isAccessibilityHeading(host));
nodeInfoCompat.setPaneTitle(ViewCompat.getAccessibilityPaneTitle(host));
+ nodeInfoCompat.setStateDescription(ViewCompat.getStateDescription(host));
mCompat.onInitializeAccessibilityNodeInfo(host, nodeInfoCompat);
nodeInfoCompat.addSpansToExtras(info.getText(), host);
List<AccessibilityActionCompat> actions = getActionList(host);
diff --git a/core/core/src/main/java/androidx/core/view/ViewCompat.java b/core/core/src/main/java/androidx/core/view/ViewCompat.java
index d52a89c..4c184eb 100644
--- a/core/core/src/main/java/androidx/core/view/ViewCompat.java
+++ b/core/core/src/main/java/androidx/core/view/ViewCompat.java
@@ -674,6 +674,7 @@
* <li>{@link AccessibilityNodeInfoCompat#setPackageName(CharSequence)},</li>
* <li>{@link AccessibilityNodeInfoCompat#setClassName(CharSequence)},</li>
* <li>{@link AccessibilityNodeInfoCompat#setContentDescription(CharSequence)},</li>
+ * <li>{@link AccessibilityNodeInfoCompat#setStateDescription(CharSequence)},</li>
* <li>{@link AccessibilityNodeInfoCompat#setEnabled(boolean)},</li>
* <li>{@link AccessibilityNodeInfoCompat#setClickable(boolean)},</li>
* <li>{@link AccessibilityNodeInfoCompat#setFocusable(boolean)},</li>
@@ -1358,6 +1359,43 @@
}
/**
+ * Sets the state description of this node.
+ * <p>
+ * <strong>Note:</strong> Cannot be called from an
+ * {@link android.accessibilityservice.AccessibilityService}.
+ * This class is made immutable before being delivered to an AccessibilityService.
+ * </p>
+ *
+ * @param stateDescription the state description of this node.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ @UiThread
+ public static void setStateDescription(@NonNull View view,
+ @Nullable CharSequence stateDescription) {
+ if (Build.VERSION.SDK_INT >= 19) {
+ stateDescriptionProperty().set(view, stateDescription);
+ }
+ }
+
+ /**
+ * Returns the {@link View}'s state description.
+ * <p>
+ * <strong>Note:</strong> Do not override this method, as it will have no
+ * effect on the state description presented to accessibility services.
+ * You must call {@link #setStateDescription(View, CharSequence)} to modify the
+ * state description.
+ *
+ * @return the state description
+ * @see #setStateDescription(View, CharSequence)
+ */
+ @UiThread
+ public static final @Nullable CharSequence getStateDescription(@NonNull View view) {
+ return stateDescriptionProperty().get(view);
+ }
+
+
+ /**
* Allow accessibility services to find and activate clickable spans in the application.
*
* @param view The view
@@ -3521,6 +3559,7 @@
* @return The logical display, or null if the view is not currently attached to a window.
*/
@Nullable
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
public static Display getDisplay(@NonNull View view) {
if (Build.VERSION.SDK_INT >= 17) {
return view.getDisplay();
@@ -4004,6 +4043,29 @@
};
}
+ private static AccessibilityViewProperty<CharSequence> stateDescriptionProperty() {
+ return new AccessibilityViewProperty<CharSequence>(R.id.tag_state_description,
+ CharSequence.class, AccessibilityEvent.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, 30) {
+
+ @RequiresApi(30)
+ @Override
+ CharSequence frameworkGet(View view) {
+ return view.getStateDescription();
+ }
+
+ @RequiresApi(30)
+ @Override
+ void frameworkSet(View view, CharSequence value) {
+ view.setStateDescription(value);
+ }
+
+ @Override
+ boolean shouldUpdate(CharSequence oldValue, CharSequence newValue) {
+ return !TextUtils.equals(oldValue, newValue);
+ }
+ };
+ }
+
/**
* Gets whether this view is a heading for accessibility purposes.
*
@@ -4066,6 +4128,7 @@
private final int mTagKey;
private final Class<T> mType;
private final int mFrameworkMinimumSdk;
+ private final int mContentChangeType;
AccessibilityViewProperty(int tagKey, Class<T> type, int frameworkMinimumSdk) {
this(tagKey, type,
@@ -4076,7 +4139,9 @@
int tagKey, Class<T> type, int contentChangeType, int frameworkMinimumSdk) {
mTagKey = tagKey;
mType = type;
+ mContentChangeType = contentChangeType;
mFrameworkMinimumSdk = frameworkMinimumSdk;
+
}
void set(View view, T value) {
@@ -4088,8 +4153,7 @@
// If we're here, we're guaranteed to be on v19+ (see the logic in
// extrasAvailable), so we can call notifyViewAccessibilityStateChangedIfNeeded
// which requires 19.
- notifyViewAccessibilityStateChangedIfNeeded(view,
- AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
+ notifyViewAccessibilityStateChangedIfNeeded(view, mContentChangeType);
}
}
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 93e5a90..281348a 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
@@ -16,10 +16,19 @@
package androidx.core.view.accessibility;
+import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX;
+
import android.os.Build;
import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityRecord;
+import androidx.annotation.IntDef;
+import androidx.annotation.RestrictTo;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
/**
* Helper for accessing features in {@link AccessibilityEvent}.
*/
@@ -181,6 +190,13 @@
public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 0x00000020;
/**
+ * Change type for {@link AccessibilityEvent#TYPE_WINDOW_CONTENT_CHANGED} event:
+ * state description of the node as returned by
+ * {@link AccessibilityNodeInfo#getStateDescription} was changed.
+ */
+ public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 0x00000040;
+
+ /**
* Mask for {@link AccessibilityEvent} all types.
*
* @see AccessibilityEvent#TYPE_VIEW_CLICKED
@@ -209,6 +225,20 @@
*/
public static final int TYPES_ALL_MASK = 0xFFFFFFFF;
+ /** @hide */
+ @IntDef(
+ flag = true,
+ value = {
+ CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION,
+ CONTENT_CHANGE_TYPE_STATE_DESCRIPTION,
+ CONTENT_CHANGE_TYPE_SUBTREE,
+ CONTENT_CHANGE_TYPE_TEXT,
+ CONTENT_CHANGE_TYPE_UNDEFINED
+ })
+ @RestrictTo(LIBRARY_GROUP_PREFIX)
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface ContentChangeType {}
+
/*
* Hide constructor from clients.
*/
@@ -287,7 +317,8 @@
* @throws IllegalStateException If called from an AccessibilityService.
* @see #getContentChangeTypes(AccessibilityEvent)
*/
- public static void setContentChangeTypes(AccessibilityEvent event, int changeTypes) {
+ public static void setContentChangeTypes(AccessibilityEvent event,
+ @ContentChangeType int changeTypes) {
if (Build.VERSION.SDK_INT >= 19) {
event.setContentChangeTypes(changeTypes);
}
@@ -301,11 +332,13 @@
* @return The bit mask of change types. One or more of:
* <ul>
* <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION}
+ * <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_STATE_DESCRIPTION}
* <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_SUBTREE}
* <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_TEXT}
* <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_UNDEFINED}
* </ul>
*/
+ @ContentChangeType
public static int getContentChangeTypes(AccessibilityEvent event) {
if (Build.VERSION.SDK_INT >= 19) {
return event.getContentChangeTypes();
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 c5983d6..9c61c9f 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
@@ -42,6 +42,7 @@
import androidx.annotation.RestrictTo;
import androidx.core.R;
import androidx.core.accessibilityservice.AccessibilityServiceInfoCompat;
+import androidx.core.os.BuildCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments;
import androidx.core.view.accessibility.AccessibilityViewCommand.MoveAtGranularityArguments;
@@ -1185,6 +1186,9 @@
private static final String SPANS_ACTION_ID_KEY =
"androidx.view.accessibility.AccessibilityNodeInfoCompat.SPANS_ACTION_ID_KEY";
+ private static final String STATE_DESCRIPTION_KEY =
+ "androidx.view.accessibility.AccessibilityNodeInfoCompat.STATE_DESCRIPTION_KEY";
+
// These don't line up with the internal framework constants, since they are independent
// and we might as well get all 32 bits of utility here.
private static final int BOOLEAN_PROPERTY_SCREEN_READER_FOCUSABLE = 0x00000001;
@@ -2740,6 +2744,21 @@
}
/**
+ * Gets the state description of this node.
+ *
+ * @return the state description or null if android version smaller
+ * than 19.
+ */
+ public @Nullable CharSequence getStateDescription() {
+ if (BuildCompat.isAtLeastR()) {
+ return mInfo.getStateDescription();
+ } else if (Build.VERSION.SDK_INT >= 19) {
+ return mInfo.getExtras().getCharSequence(STATE_DESCRIPTION_KEY);
+ }
+ return null;
+ }
+
+ /**
* Sets the content description of this node.
* <p>
* <strong>Note:</strong> Cannot be called from an
@@ -2755,6 +2774,25 @@
}
/**
+ * Sets the state description of this node.
+ * <p>
+ * <strong>Note:</strong> Cannot be called from an
+ * {@link android.accessibilityservice.AccessibilityService}.
+ * This class is made immutable before being delivered to an AccessibilityService.
+ * </p>
+ *
+ * @param stateDescription the state description of this node.
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setStateDescription(@Nullable CharSequence stateDescription) {
+ if (BuildCompat.isAtLeastR()) {
+ mInfo.setStateDescription(stateDescription);
+ } else if (Build.VERSION.SDK_INT >= 19) {
+ mInfo.getExtras().putCharSequence(STATE_DESCRIPTION_KEY, stateDescription);
+ }
+ }
+
+ /**
* Return an instance back to be reused.
* <p>
* <strong>Note:</strong> You must not touch the object after calling this function.
diff --git a/core/core/src/main/res/values/ids.xml b/core/core/src/main/res/values/ids.xml
index 444a976..5147433 100644
--- a/core/core/src/main/res/values/ids.xml
+++ b/core/core/src/main/res/values/ids.xml
@@ -29,6 +29,7 @@
<item name="tag_accessibility_pane_title" type="id"/>
<item name="tag_accessibility_clickable_spans" type="id"/>
<item name="tag_accessibility_actions" type="id"/>
+ <item name="tag_state_description" type="id"/>
<item name="accessibility_custom_action_0" type="id"/>
<item name="accessibility_custom_action_1" type="id"/>
<item name="accessibility_custom_action_2" type="id"/>
diff --git a/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java b/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java
index dc9d969..50e19db 100644
--- a/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java
+++ b/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java
@@ -80,6 +80,7 @@
}
@Before
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public void setup() {
mUiModeManagerShadow = shadowOf((UiModeManager) mContext.getSystemService(UI_MODE_SERVICE));
mUiModeManagerShadow.currentModeType = UI_MODE_TYPE_NORMAL;
diff --git a/development/studio/idea.properties b/development/studio/idea.properties
index e1432b1..da113e9 100644
--- a/development/studio/idea.properties
+++ b/development/studio/idea.properties
@@ -5,12 +5,12 @@
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE config folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
-idea.config.path=${user.home}/.AndroidStudioAndroidX/config
+idea.config.path=${user.home}/.AndroidStudioAndroidXPlatform/config
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE system folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
-idea.system.path=${user.home}/.AndroidStudioAndroidX/system
+idea.system.path=${user.home}/.AndroidStudioAndroidXPlatform/system
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to user installed plugins folder. Make sure you're using forward slashes.
diff --git a/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt b/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt
index e6d4605..a771903 100644
--- a/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt
+++ b/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt
@@ -29,7 +29,7 @@
method public void openDrawer(int);
method public void openDrawer(int, boolean);
method public void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
- method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(Object!, boolean);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(androidx.core.view.WindowInsetsCompat!, boolean);
method public void setDrawerElevation(float);
method @Deprecated public void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener!);
method public void setDrawerLockMode(int);
diff --git a/drawerlayout/drawerlayout/api/restricted_current.txt b/drawerlayout/drawerlayout/api/restricted_current.txt
index e6d4605..a771903 100644
--- a/drawerlayout/drawerlayout/api/restricted_current.txt
+++ b/drawerlayout/drawerlayout/api/restricted_current.txt
@@ -29,7 +29,7 @@
method public void openDrawer(int);
method public void openDrawer(int, boolean);
method public void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
- method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(Object!, boolean);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(androidx.core.view.WindowInsetsCompat!, boolean);
method public void setDrawerElevation(float);
method @Deprecated public void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener!);
method public void setDrawerLockMode(int);
diff --git a/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java b/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
index 20330d6..1b683ac 100644
--- a/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
+++ b/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
@@ -162,7 +162,6 @@
@Retention(RetentionPolicy.SOURCE)
private @interface EdgeGravity {}
-
private static final int MIN_DRAWER_MARGIN = 64; // dp
private static final int DEFAULT_SCRIM_COLOR = 0x99000000;
@@ -239,7 +238,7 @@
private CharSequence mTitleLeft;
private CharSequence mTitleRight;
- private Object mLastInsets;
+ private WindowInsetsCompat mLastInsets;
private boolean mDrawStatusBarBackground;
/** Shadow drawables for different gravity */
@@ -332,6 +331,7 @@
this(context, attrs, R.attr.drawerLayoutStyle);
}
+ @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
public DrawerLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
@@ -362,14 +362,17 @@
setMotionEventSplittingEnabled(false);
if (ViewCompat.getFitsSystemWindows(this)) {
if (Build.VERSION.SDK_INT >= 21) {
- setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
- @Override
- public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) {
- final DrawerLayout drawerLayout = (DrawerLayout) view;
- drawerLayout.setChildInsets(insets, insets.getSystemWindowInsetTop() > 0);
- return insets.consumeSystemWindowInsets();
- }
- });
+ ViewCompat.setOnApplyWindowInsetsListener(this,
+ new androidx.core.view.OnApplyWindowInsetsListener() {
+ @Override
+ public WindowInsetsCompat onApplyWindowInsets(View view,
+ WindowInsetsCompat insets) {
+ final DrawerLayout drawerLayout = (DrawerLayout) view;
+ drawerLayout.setChildInsets(insets,
+ insets.getSystemWindowInsets().top > 0);
+ return insets.consumeSystemWindowInsets();
+ }
+ });
setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
final TypedArray a = context.obtainStyledAttributes(THEME_ATTRS);
@@ -433,7 +436,7 @@
* with fitsSystemWindows="true"
*/
@RestrictTo(LIBRARY_GROUP_PREFIX)
- public void setChildInsets(Object insets, boolean draw) {
+ public void setChildInsets(WindowInsetsCompat insets, boolean draw) {
mLastInsets = insets;
mDrawStatusBarBackground = draw;
setWillNotDraw(!draw && getBackground() == null);
@@ -1115,7 +1118,7 @@
final int cgrav = GravityCompat.getAbsoluteGravity(lp.gravity, layoutDirection);
if (ViewCompat.getFitsSystemWindows(child)) {
if (Build.VERSION.SDK_INT >= 21) {
- WindowInsets wi = (WindowInsets) mLastInsets;
+ WindowInsetsCompat wi = mLastInsets;
if (cgrav == Gravity.LEFT) {
wi = wi.replaceSystemWindowInsets(wi.getSystemWindowInsetLeft(),
wi.getSystemWindowInsetTop(), 0,
@@ -1125,11 +1128,11 @@
wi.getSystemWindowInsetRight(),
wi.getSystemWindowInsetBottom());
}
- child.dispatchApplyWindowInsets(wi);
+ ViewCompat.dispatchApplyWindowInsets(child, wi);
}
} else {
if (Build.VERSION.SDK_INT >= 21) {
- WindowInsets wi = (WindowInsets) mLastInsets;
+ WindowInsetsCompat wi = mLastInsets;
if (cgrav == Gravity.LEFT) {
wi = wi.replaceSystemWindowInsets(wi.getSystemWindowInsetLeft(),
wi.getSystemWindowInsetTop(), 0,
@@ -1436,8 +1439,7 @@
if (mDrawStatusBarBackground && mStatusBarBackground != null) {
final int inset;
if (Build.VERSION.SDK_INT >= 21) {
- inset = mLastInsets != null
- ? ((WindowInsets) mLastInsets).getSystemWindowInsetTop() : 0;
+ inset = mLastInsets != null ? mLastInsets.getSystemWindowInsetTop() : 0;
} else {
inset = 0;
}
diff --git a/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java b/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java
index 41cc5b1..13a7a8f 100644
--- a/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java
+++ b/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java
@@ -23,7 +23,6 @@
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -63,8 +62,10 @@
// This form is used instead of AsyncTask.execute(Runnable) as Robolectric causes tests to wait
// for execution of these but does not currently wait for execution of
- // AsyncTask.execute(runnable).
- private static final class KeyedAppStatesServiceAsyncTask extends AsyncTask<Void, Void, Void> {
+ // android.os.AsyncTask.execute(runnable).
+ @SuppressWarnings("deprecation") /* AsyncTask */
+ private static final class KeyedAppStatesServiceAsyncTask
+ extends android.os.AsyncTask<Void, Void, Void> {
@SuppressLint("StaticFieldLeak")
// Instances are short-lived so won't block garbage collection.
@@ -90,6 +91,7 @@
}
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
private static class IncomingHandler extends Handler {
private final KeyedAppStatesService mKeyedAppStatesService;
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt
index 866d69d..fe5580b 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt
@@ -116,6 +116,7 @@
.isInstanceOf(FragmentContainerView::class.java)
}
+ @Suppress("DEPRECATION") /* systemWindowInsets */
@SdkSuppress(minSdkVersion = 29) // WindowInsets.Builder requires API 29
@Test
fun windowInsetsDispatchToChildren() {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java
index 6e1d5ed..58d81a4 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java
@@ -20,10 +20,8 @@
import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_LOAD_DATA_DELAY;
import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_NUM_ROWS;
import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_REPEAT_PER_ROW;
-import static androidx.leanback.app.BrowseFragmentTestActivity
- .EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
-import static androidx.leanback.app.BrowseFragmentTestActivity
- .EXTRA_TEST_ENTRANCE_TRANSITION;
+import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
+import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_TEST_ENTRANCE_TRANSITION;
import android.os.Bundle;
import android.os.Handler;
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java
index ee71687..d242e44 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java
@@ -17,10 +17,8 @@
import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_LOAD_DATA_DELAY;
import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_NUM_ROWS;
import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_REPEAT_PER_ROW;
-import static androidx.leanback.app.BrowseSupportFragmentTestActivity
- .EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
-import static androidx.leanback.app.BrowseSupportFragmentTestActivity
- .EXTRA_TEST_ENTRANCE_TRANSITION;
+import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
+import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_TEST_ENTRANCE_TRANSITION;
import android.os.Bundle;
import android.os.Handler;
diff --git a/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java b/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
index bb472a9..d13fb77 100644
--- a/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
+++ b/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
@@ -438,6 +438,7 @@
* <code>LayoutInflater.inflate</code>.
* @return The view to be added to the caller's view hierarchy.
*/
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public View onCreateView(LayoutInflater inflater, final ViewGroup container) {
TypedArray ta = inflater.getContext().getTheme().obtainStyledAttributes(
R.styleable.LeanbackGuidedStepTheme);
diff --git a/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java b/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
index a3aefeb..eadcb19 100644
--- a/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
+++ b/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
@@ -18,8 +18,6 @@
import static org.junit.Assert.fail;
-import android.os.AsyncTask;
-
import androidx.annotation.NonNull;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
@@ -33,6 +31,7 @@
import java.util.concurrent.TimeUnit;
@RunWith(AndroidJUnit4.class)
+@SuppressWarnings("deprecation") /* AsyncTask */
public class ModernAsyncTaskTest {
private ModernAsyncTask mModernAsyncTask;
@@ -53,7 +52,7 @@
// because sInternalHandler was initialized as static field.
// https://github.com/aosp-mirror/platform_frameworks_base/blob/ics-mr1/core/java/android/os/AsyncTask.java#L190
//noinspection unused
- Executor unused = AsyncTask.THREAD_POOL_EXECUTOR;
+ Executor unused = android.os.AsyncTask.THREAD_POOL_EXECUTOR;
mModernAsyncTask = new ModernAsyncTask() {
@Override
protected Object doInBackground() {
@@ -73,7 +72,7 @@
}
});
- mModernAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ mModernAsyncTask.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
if (!readyToCancel.await(5, TimeUnit.SECONDS)) {
fail("Test failure: doInBackground did not run in time.");
}
diff --git a/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java b/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java
index e34701e..ac352ff 100644
--- a/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java
+++ b/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java
@@ -17,7 +17,6 @@
package androidx.loader.content;
import android.content.Context;
-import android.os.AsyncTask;
import android.os.Handler;
import android.os.SystemClock;
import android.text.format.DateUtils;
@@ -40,6 +39,7 @@
* to switch to the framework's implementation. See the framework SDK
* documentation for a class overview.
*/
+@SuppressWarnings("deprecation") /* AsyncTask */
public abstract class AsyncTaskLoader<D> extends Loader<D> {
private static final String TAG = "AsyncTaskLoader";
private static final boolean DEBUG = false;
@@ -314,19 +314,20 @@
}
/**
- * Returns the {@link Executor} to use for this {@link Loader}'s {@link AsyncTask}s.
- * By default {@link AsyncTask#THREAD_POOL_EXECUTOR} will be used.
+ * Returns the {@link Executor} to use for this {@link Loader}'s {@link android.os.AsyncTask}s.
+ * By default {@link android.os.AsyncTask#THREAD_POOL_EXECUTOR} will be used.
*
* Override this method to return a custom executor. Note that this method will only be called
- * once before this {@link Loader}'s first {@link AsyncTask} is run. It is up to the
+ * once before this {@link Loader}'s first {@link android.os.AsyncTask} is run. It is up to the
* {@link Loader} to shut down the {@link Executor} at the appropriate place
* (e.g. in {@link #onAbandon()}) if necessary.
*
- * @return the {@link Executor} to use for this {@link Loader}'s {@link AsyncTask}s.
+ * @return the {@link Executor} to use for this {@link Loader}'s {@link android.os.AsyncTask}s.
*/
@NonNull
+ @SuppressWarnings("deprecation") /* AsyncTask */
protected Executor getExecutor() {
- return AsyncTask.THREAD_POOL_EXECUTOR;
+ return android.os.AsyncTask.THREAD_POOL_EXECUTOR;
}
/**
diff --git a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java
index 36a69f1..0fe7e7e 100644
--- a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java
+++ b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java
@@ -22,7 +22,6 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.StrictMode;
@@ -303,7 +302,7 @@
return retVal;
}
- private final class VideoItemListTask extends AsyncTask<Void, Void, VideoItemList> {
+ private final class VideoItemListTask extends android.os.AsyncTask<Void, Void, VideoItemList> {
private String mPath;
VideoItemListTask(String path) {
diff --git a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
index 0d7a5ec..29102ac 100644
--- a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
+++ b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
@@ -23,7 +23,6 @@
import android.graphics.BitmapFactory;
import android.media.MediaMetadataRetriever;
import android.net.Uri;
-import android.os.AsyncTask;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -149,7 +148,8 @@
}
}
- private static class MetadataExtractTask extends AsyncTask<Void, Void, MediaMetadata> {
+ private static class MetadataExtractTask
+ extends android.os.AsyncTask<Void, Void, MediaMetadata> {
private MediaItem mItem;
private WeakReference<Context> mRefContext;
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
index 99c39dc..195b7bc 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
@@ -28,7 +28,6 @@
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
-import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
@@ -198,7 +197,7 @@
} else {
mRemoteIndicatorLoader = new RemoteIndicatorLoader(remoteIndicatorStaticResId,
getContext());
- mRemoteIndicatorLoader.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+ mRemoteIndicatorLoader.executeOnExecutor(android.os.AsyncTask.SERIAL_EXECUTOR);
}
} else {
loadRemoteIndicatorIfNeeded();
@@ -565,7 +564,7 @@
mRemoteIndicatorLoader = new RemoteIndicatorLoader(mRemoteIndicatorResIdToLoad,
getContext());
mRemoteIndicatorResIdToLoad = 0;
- mRemoteIndicatorLoader.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+ mRemoteIndicatorLoader.executeOnExecutor(android.os.AsyncTask.SERIAL_EXECUTOR);
}
}
@@ -725,7 +724,7 @@
}
}
- private final class RemoteIndicatorLoader extends AsyncTask<Void, Void, Drawable> {
+ private final class RemoteIndicatorLoader extends android.os.AsyncTask<Void, Void, Drawable> {
private final int mResId;
private final Context mContext;
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java
index 547546f..f9c1293b 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java
@@ -30,7 +30,6 @@
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v4.media.MediaDescriptionCompat;
@@ -1336,7 +1335,7 @@
}
}
- private class FetchArtTask extends AsyncTask<Void, Void, Bitmap> {
+ private class FetchArtTask extends android.os.AsyncTask<Void, Void, Bitmap> {
// Show animation only when fetching takes a long time.
private static final long SHOW_ANIM_TIME_THRESHOLD_MILLIS = 120L;
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java
index 59f4e05..d822472 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java
@@ -26,7 +26,6 @@
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -1424,7 +1423,7 @@
}
}
- private class FetchArtTask extends AsyncTask<Void, Void, Bitmap> {
+ private class FetchArtTask extends android.os.AsyncTask<Void, Void, Bitmap> {
private final Bitmap mIconBitmap;
private final Uri mIconUri;
private int mBackgroundColor;
diff --git a/paging/rxjava2/api/api_lint.ignore b/paging/rxjava2/api/api_lint.ignore
index b98aa1d..20c6bba 100644
--- a/paging/rxjava2/api/api_lint.ignore
+++ b/paging/rxjava2/api/api_lint.ignore
@@ -3,7 +3,5 @@
androidx.paging.RxPagedListBuilder does not declare a `build()` method, but builder classes are expected to
-TopLevelBuilder: androidx.paging.RxPagedDataFlowBuilder:
- Builder should be defined as inner class: androidx.paging.RxPagedDataFlowBuilder
TopLevelBuilder: androidx.paging.RxPagedListBuilder:
Builder should be defined as inner class: androidx.paging.RxPagedListBuilder
diff --git a/palette/palette/api/1.1.0-alpha01.txt b/palette/palette/api/1.1.0-alpha01.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/1.1.0-alpha01.txt
+++ b/palette/palette/api/1.1.0-alpha01.txt
@@ -37,7 +37,7 @@
method public androidx.palette.graphics.Palette.Builder clearRegion();
method public androidx.palette.graphics.Palette.Builder clearTargets();
method public androidx.palette.graphics.Palette generate();
- method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+ method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/current.txt b/palette/palette/api/current.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/current.txt
+++ b/palette/palette/api/current.txt
@@ -37,7 +37,7 @@
method public androidx.palette.graphics.Palette.Builder clearRegion();
method public androidx.palette.graphics.Palette.Builder clearTargets();
method public androidx.palette.graphics.Palette generate();
- method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+ method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt b/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt
+++ b/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt
@@ -37,7 +37,7 @@
method public androidx.palette.graphics.Palette.Builder clearRegion();
method public androidx.palette.graphics.Palette.Builder clearTargets();
method public androidx.palette.graphics.Palette generate();
- method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+ method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/public_plus_experimental_current.txt b/palette/palette/api/public_plus_experimental_current.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/public_plus_experimental_current.txt
+++ b/palette/palette/api/public_plus_experimental_current.txt
@@ -37,7 +37,7 @@
method public androidx.palette.graphics.Palette.Builder clearRegion();
method public androidx.palette.graphics.Palette.Builder clearTargets();
method public androidx.palette.graphics.Palette generate();
- method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+ method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/restricted_1.1.0-alpha01.txt b/palette/palette/api/restricted_1.1.0-alpha01.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/restricted_1.1.0-alpha01.txt
+++ b/palette/palette/api/restricted_1.1.0-alpha01.txt
@@ -37,7 +37,7 @@
method public androidx.palette.graphics.Palette.Builder clearRegion();
method public androidx.palette.graphics.Palette.Builder clearTargets();
method public androidx.palette.graphics.Palette generate();
- method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+ method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/restricted_current.txt b/palette/palette/api/restricted_current.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/restricted_current.txt
+++ b/palette/palette/api/restricted_current.txt
@@ -37,7 +37,7 @@
method public androidx.palette.graphics.Palette.Builder clearRegion();
method public androidx.palette.graphics.Palette.Builder clearTargets();
method public androidx.palette.graphics.Palette generate();
- method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+ method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java b/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java
index b054edf..d9424e1 100644
--- a/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java
+++ b/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java
@@ -17,7 +17,6 @@
package androidx.palette.graphics;
import android.graphics.Color;
-import android.util.TimingLogger;
import androidx.annotation.Nullable;
import androidx.core.graphics.ColorUtils;
@@ -43,10 +42,6 @@
* colors.
*/
final class ColorCutQuantizer {
-
- private static final String LOG_TAG = "ColorCutQuantizer";
- private static final boolean LOG_TIMINGS = false;
-
static final int COMPONENT_RED = -3;
static final int COMPONENT_GREEN = -2;
static final int COMPONENT_BLUE = -1;
@@ -57,7 +52,6 @@
final int[] mColors;
final int[] mHistogram;
final List<Palette.Swatch> mQuantizedColors;
- @Nullable final TimingLogger mTimingLogger;
@Nullable final Palette.Filter[] mFilters;
private final float[] mTempHsl = new float[3];
@@ -69,9 +63,7 @@
* @param maxColors The maximum number of colors that should be in the result palette.
* @param filters Set of filters to use in the quantization stage
*/
- @SuppressWarnings("NullAway") // mTimingLogger initialization and access guarded by LOG_TIMINGS.
ColorCutQuantizer(int[] pixels, int maxColors, @Nullable Palette.Filter[] filters) {
- mTimingLogger = LOG_TIMINGS ? new TimingLogger(LOG_TAG, "Creation") : null;
mFilters = filters;
final int[] hist = mHistogram = new int[1 << (QUANTIZE_WORD_WIDTH * 3)];
@@ -83,10 +75,6 @@
hist[quantizedColor]++;
}
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("Histogram created");
- }
-
// Now let's count the number of distinct colors
int distinctColorCount = 0;
for (int color = 0; color < hist.length; color++) {
@@ -100,10 +88,6 @@
}
}
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("Filtered colors and distinct colors counted");
- }
-
// Now lets go through create an array consisting of only distinct colors
final int[] colors = mColors = new int[distinctColorCount];
int distinctColorIndex = 0;
@@ -113,29 +97,15 @@
}
}
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("Distinct colors copied into array");
- }
-
if (distinctColorCount <= maxColors) {
// The image has fewer colors than the maximum requested, so just return the colors
mQuantizedColors = new ArrayList<>();
for (int color : colors) {
mQuantizedColors.add(new Palette.Swatch(approximateToRgb888(color), hist[color]));
}
-
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("Too few colors present. Copied to Swatches");
- mTimingLogger.dumpToLog();
- }
} else {
// We need use quantization to reduce the number of colors
mQuantizedColors = quantizePixels(maxColors);
-
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("Quantized colors computed");
- mTimingLogger.dumpToLog();
- }
}
}
@@ -171,7 +141,6 @@
* @param queue {@link java.util.PriorityQueue} to poll for boxes
* @param maxSize Maximum amount of boxes to split
*/
- @SuppressWarnings("NullAway") // mTimingLogger initialization and access guarded by LOG_TIMINGS.
private void splitBoxes(final PriorityQueue<Vbox> queue, final int maxSize) {
while (queue.size() < maxSize) {
final Vbox vbox = queue.poll();
@@ -179,16 +148,9 @@
if (vbox != null && vbox.canSplit()) {
// First split the box, and offer the result
queue.offer(vbox.splitBox());
-
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("Box split");
- }
// Then offer the box back
queue.offer(vbox);
} else {
- if (LOG_TIMINGS) {
- mTimingLogger.addSplit("All boxes split");
- }
// If we get here then there are no more boxes to split, so return
return;
}
diff --git a/palette/palette/src/main/java/androidx/palette/graphics/Palette.java b/palette/palette/src/main/java/androidx/palette/graphics/Palette.java
index 5ce2665..0fe8091 100644
--- a/palette/palette/src/main/java/androidx/palette/graphics/Palette.java
+++ b/palette/palette/src/main/java/androidx/palette/graphics/Palette.java
@@ -19,10 +19,8 @@
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Rect;
-import android.os.AsyncTask;
import android.util.Log;
import android.util.SparseBooleanArray;
-import android.util.TimingLogger;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
@@ -30,6 +28,7 @@
import androidx.annotation.Px;
import androidx.collection.SimpleArrayMap;
import androidx.core.graphics.ColorUtils;
+import androidx.core.util.Preconditions;
import java.util.ArrayList;
import java.util.Arrays;
@@ -135,7 +134,7 @@
*/
@NonNull
@Deprecated
- public static AsyncTask<Bitmap, Void, Palette> generateAsync(
+ public static android.os.AsyncTask<Bitmap, Void, Palette> generateAsync(
@NonNull Bitmap bitmap, @NonNull PaletteAsyncListener listener) {
return from(bitmap).generate(listener);
}
@@ -145,7 +144,7 @@
*/
@NonNull
@Deprecated
- public static AsyncTask<Bitmap, Void, Palette> generateAsync(
+ public static android.os.AsyncTask<Bitmap, Void, Palette> generateAsync(
@NonNull Bitmap bitmap, int numColors, @NonNull PaletteAsyncListener listener) {
return from(bitmap).maximumColorCount(numColors).generate(listener);
}
@@ -777,10 +776,6 @@
*/
@NonNull
public Palette generate() {
- final TimingLogger logger = LOG_TIMINGS
- ? new TimingLogger(LOG_TAG, "Generation")
- : null;
-
List<Swatch> swatches;
if (mBitmap != null) {
@@ -789,10 +784,6 @@
// First we'll scale down the bitmap if needed
final Bitmap bitmap = scaleBitmapDown(mBitmap);
- if (logger != null) {
- logger.addSplit("Processed Bitmap");
- }
-
final Rect region = mRegion;
if (bitmap != mBitmap && region != null) {
// If we have a scaled bitmap and a selected region, we need to scale down the
@@ -818,10 +809,6 @@
}
swatches = quantizer.getQuantizedColors();
-
- if (logger != null) {
- logger.addSplit("Color quantization completed");
- }
} else if (mSwatches != null) {
// Else we're using the provided swatches
swatches = mSwatches;
@@ -835,11 +822,6 @@
// And make it generate itself
p.generate();
- if (logger != null) {
- logger.addSplit("Created Palette");
- logger.dumpToLog();
- }
-
return p;
}
@@ -847,15 +829,18 @@
* Generate the {@link Palette} asynchronously. The provided listener's
* {@link PaletteAsyncListener#onGenerated} method will be called with the palette when
* generated.
+ *
+ * @deprecated Use the standard <code>java.util.concurrent</code> or
+ * <a href="https://developer.android.com/topic/libraries/architecture/coroutines">
+ * Kotlin concurrency utilities</a> to call {@link #generate()} instead.
*/
@NonNull
- public AsyncTask<Bitmap, Void, Palette> generate(
+ @Deprecated
+ public android.os.AsyncTask<Bitmap, Void, Palette> generate(
@NonNull final PaletteAsyncListener listener) {
- if (listener == null) {
- throw new IllegalArgumentException("listener can not be null");
- }
+ Preconditions.checkNotNull(listener);
- return new AsyncTask<Bitmap, Void, Palette>() {
+ return new android.os.AsyncTask<Bitmap, Void, Palette>() {
@Override
@Nullable
protected Palette doInBackground(Bitmap... params) {
@@ -871,7 +856,7 @@
protected void onPostExecute(@Nullable Palette colorExtractor) {
listener.onGenerated(colorExtractor);
}
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, mBitmap);
+ }.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR, mBitmap);
}
private int[] getPixelsFromBitmap(Bitmap bitmap) {
diff --git a/preference/preference/api/api_lint.ignore b/preference/preference/api/api_lint.ignore
index 72ecda6..de479d5 100644
--- a/preference/preference/api/api_lint.ignore
+++ b/preference/preference/api/api_lint.ignore
@@ -395,8 +395,6 @@
Missing nullability on parameter `attrs` in method `PreferenceCategory`
MissingNullability: androidx.preference.PreferenceCategory#onBindViewHolder(androidx.preference.PreferenceViewHolder) parameter #0:
Missing nullability on parameter `holder` in method `onBindViewHolder`
-MissingNullability: androidx.preference.PreferenceCategory#onInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #0:
- Missing nullability on parameter `info` in method `onInitializeAccessibilityNodeInfo`
MissingNullability: androidx.preference.PreferenceDataStore#getBoolean(String, boolean) parameter #0:
Missing nullability on parameter `key` in method `getBoolean`
MissingNullability: androidx.preference.PreferenceDataStore#getFloat(String, float) parameter #0:
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt b/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt
index cf2753b..59b5090 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt
@@ -259,6 +259,7 @@
// We want to swipe all the way to the right edge of the screen to avoid
// flakiness due to sometimes not reaching the end of the seekbar
val metrics = DisplayMetrics()
+ @Suppress("DEPRECATION") /* defaultDisplay */
activityRule.activity.windowManager.defaultDisplay.getMetrics(metrics)
val posX = metrics.widthPixels
val posY = location[1]
diff --git a/print/print/src/main/java/androidx/print/PrintHelper.java b/print/print/src/main/java/androidx/print/PrintHelper.java
index f066eb4..8352279 100644
--- a/print/print/src/main/java/androidx/print/PrintHelper.java
+++ b/print/print/src/main/java/androidx/print/PrintHelper.java
@@ -28,7 +28,6 @@
import android.graphics.RectF;
import android.graphics.pdf.PdfDocument;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.CancellationSignal;
@@ -56,6 +55,7 @@
/**
* Helper for printing bitmaps.
*/
+@SuppressWarnings("deprecation")
public final class PrintHelper {
private static final String LOG_TAG = "PrintHelper";
// will be <= 300 dpi on A4 (8.3×11.7) paper (worst case of 150 dpi)
@@ -375,6 +375,7 @@
printManager.print(jobName, printDocumentAdapter, attr);
}
+ @SuppressWarnings("deprecation")
@RequiresApi(19)
private class PrintUriAdapter extends PrintDocumentAdapter {
final String mJobName;
@@ -382,7 +383,7 @@
final OnPrintFinishCallback mCallback;
final int mFittingMode;
PrintAttributes mAttributes;
- AsyncTask<Uri, Boolean, Bitmap> mLoadBitmap;
+ android.os.AsyncTask<Uri, Boolean, Bitmap> mLoadBitmap;
Bitmap mBitmap;
PrintUriAdapter(String jobName, Uri imageFile, OnPrintFinishCallback callback,
@@ -421,7 +422,7 @@
return;
}
- mLoadBitmap = new AsyncTask<Uri, Boolean, Bitmap>() {
+ mLoadBitmap = new android.os.AsyncTask<Uri, Boolean, Bitmap>() {
@Override
protected void onPreExecute() {
// First register for cancellation requests.
@@ -632,7 +633,7 @@
.setMinMargins(new PrintAttributes.Margins(0, 0, 0, 0)).build();
}
- new AsyncTask<Void, Void, Throwable>() {
+ new android.os.AsyncTask<Void, Void, Throwable>() {
@Override
protected Throwable doInBackground(Void... params) {
try {
diff --git a/recyclerview/recyclerview/api/api_lint.ignore b/recyclerview/recyclerview/api/api_lint.ignore
index ea97694..e9260e5 100644
--- a/recyclerview/recyclerview/api/api_lint.ignore
+++ b/recyclerview/recyclerview/api/api_lint.ignore
@@ -719,14 +719,6 @@
Missing nullability on method `generateLayoutParams` return
MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#generateLayoutParams(android.view.ViewGroup.LayoutParams) parameter #0:
Missing nullability on parameter `lp` in method `generateLayoutParams`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #0:
- Missing nullability on parameter `recycler` in method `getColumnCountForAccessibility`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #1:
- Missing nullability on parameter `state` in method `getColumnCountForAccessibility`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #0:
- Missing nullability on parameter `recycler` in method `getRowCountForAccessibility`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #1:
- Missing nullability on parameter `state` in method `getRowCountForAccessibility`
MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.Recycler) parameter #0:
Missing nullability on parameter `view` in method `onDetachedFromWindow`
MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.Recycler) parameter #1:
@@ -739,14 +731,6 @@
Missing nullability on parameter `state` in method `onFocusSearchFailed`
MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) parameter #0:
Missing nullability on parameter `event` in method `onInitializeAccessibilityEvent`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #0:
- Missing nullability on parameter `recycler` in method `onInitializeAccessibilityNodeInfoForItem`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #1:
- Missing nullability on parameter `state` in method `onInitializeAccessibilityNodeInfoForItem`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #2:
- Missing nullability on parameter `host` in method `onInitializeAccessibilityNodeInfoForItem`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #3:
- Missing nullability on parameter `info` in method `onInitializeAccessibilityNodeInfoForItem`
MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onItemsAdded(androidx.recyclerview.widget.RecyclerView, int, int) parameter #0:
Missing nullability on parameter `recyclerView` in method `onItemsAdded`
MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onItemsChanged(androidx.recyclerview.widget.RecyclerView) parameter #0:
diff --git a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java
index 7234d92..b56802e3 100644
--- a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java
+++ b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java
@@ -16,7 +16,6 @@
package androidx.recyclerview.widget;
-import android.os.AsyncTask;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
@@ -83,11 +82,12 @@
};
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
@Override
public BackgroundCallback<T> getBackgroundProxy(final BackgroundCallback<T> callback) {
return new BackgroundCallback<T>() {
final MessageQueue mQueue = new MessageQueue();
- private final Executor mExecutor = AsyncTask.THREAD_POOL_EXECUTOR;
+ private final Executor mExecutor = android.os.AsyncTask.THREAD_POOL_EXECUTOR;
AtomicBoolean mBackgroundRunning = new AtomicBoolean(false);
static final int REFRESH = 1;
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java
index d90ad1e..9d9a3ca 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java
@@ -16,7 +16,6 @@
package com.example.android.supportv4;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
import java.util.List;
import java.util.Map;
-public class Support4Demos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class Support4Demos extends android.app.ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java
index 4bd2251..bd459a4 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java
@@ -30,7 +30,6 @@
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.text.TextUtils;
@@ -398,7 +397,7 @@
String mCurFilter;
// Task we have running to populate the database.
- AsyncTask<Void, Void, Void> mPopulatingTask;
+ android.os.AsyncTask<Void, Void, Void> mPopulatingTask;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
@@ -429,6 +428,7 @@
clearItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
@Override public boolean onOptionsItemSelected(MenuItem item) {
final ContentResolver cr = getActivity().getContentResolver();
@@ -437,7 +437,7 @@
if (mPopulatingTask != null) {
mPopulatingTask.cancel(false);
}
- mPopulatingTask = new AsyncTask<Void, Void, Void>() {
+ mPopulatingTask = new android.os.AsyncTask<Void, Void, Void>() {
@Override protected Void doInBackground(Void... params) {
for (char c='Z'; c>='A'; c--) {
if (isCancelled()) {
@@ -465,13 +465,13 @@
mPopulatingTask.cancel(false);
mPopulatingTask = null;
}
- AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
- @Override protected Void doInBackground(Void... params) {
+ new android.os.AsyncTask<Void, Void, Void>() {
+ @Override
+ protected Void doInBackground(Void... params) {
cr.delete(MainTable.CONTENT_URI, null, null);
return null;
}
- };
- task.execute((Void[])null);
+ }.execute((Void[]) null);
return true;
default:
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java
index df74abc..10b85c8 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java
@@ -17,7 +17,6 @@
package com.example.android.supportv4.media;
import android.graphics.Bitmap;
-import android.os.AsyncTask;
import android.util.Log;
import androidx.collection.LruCache;
@@ -79,6 +78,7 @@
return result == null ? null : result[ICON_BITMAP_INDEX];
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void fetch(final String artUrl, final FetchListener listener) {
// WARNING: for the sake of simplicity, simultaneous multi-thread fetch requests
// are not handled properly: they may cause redundant costly operations, like HTTP
@@ -92,7 +92,7 @@
}
Log.d(TAG, "getOrFetch: starting asynctask to fetch " + artUrl);
- new AsyncTask<Void, Void, Bitmap[]>() {
+ new android.os.AsyncTask<Void, Void, Bitmap[]>() {
@Override
protected Bitmap[] doInBackground(Void... objects) {
Bitmap[] bitmaps;
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java
index 0e2a35c..be9ab9a 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java
@@ -16,7 +16,6 @@
package com.example.android.supportv4.media.model;
-import android.os.AsyncTask;
import android.support.v4.media.MediaMetadataCompat;
import android.util.Log;
@@ -174,6 +173,7 @@
* Get the list of music tracks from a server and caches the track information
* for future reference, keying tracks by musicId and grouping by genre.
*/
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void retrieveMediaAsync(final Callback callback) {
Log.d(TAG, "retrieveMediaAsync called");
if (mCurrentState == State.INITIALIZED) {
@@ -183,7 +183,7 @@
}
// Asynchronously load the music catalog in a separate thread
- new AsyncTask<Void, Void, State>() {
+ new android.os.AsyncTask<Void, Void, State>() {
@Override
protected State doInBackground(Void... params) {
retrieveMedia();
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java
index 21cad28..3feb3f3 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java
@@ -16,7 +16,6 @@
package com.example.android.supportv7;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
import java.util.List;
import java.util.Map;
-public class Support7Demos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class Support7Demos extends android.app.ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java
index 35c7e6e..a1ef580 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java
@@ -17,7 +17,6 @@
package com.example.android.supportv7.graphics;
import android.graphics.Bitmap;
-import android.os.AsyncTask;
import android.provider.MediaStore;
import android.widget.ImageView;
@@ -43,6 +42,7 @@
void onImageLoaded(Bitmap bitmap);
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
static void loadMediaStoreThumbnail(final ImageView imageView,
final long id,
final Listener listener) {
@@ -58,7 +58,7 @@
return;
}
- new AsyncTask<Void, Void, Bitmap>() {
+ new android.os.AsyncTask<Void, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(Void... params) {
return MediaStore.Images.Thumbnails.getThumbnail(
@@ -81,7 +81,7 @@
}
}
}
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
}
/**
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java
index eb6483d..8e67c3a 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java
@@ -207,6 +207,7 @@
cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID));
ImageLoader.loadMediaStoreThumbnail(imageView, id, new ImageLoader.Listener() {
+ @SuppressWarnings("deprecation")
@Override
public void onImageLoaded(Bitmap bitmap) {
new Palette.Builder(bitmap).maximumColorCount(mNumColors).generate(
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java
index 01adffb..13d0820 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java
@@ -126,6 +126,7 @@
ImageLoader.loadMediaStoreThumbnail(mImageView, id, new ImageLoader.Listener() {
@Override
+ @SuppressWarnings("deprecation")
public void onImageLoaded(Bitmap bitmap) {
new Palette.Builder(bitmap).maximumColorCount(numColors).generate(
new Palette.PaletteAsyncListener() {
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java
index 89a4052..0efe75d 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java
@@ -121,6 +121,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
public void show() {
if (!mWindowVisible) {
mSurfaceView = new SurfaceView(mContext);
@@ -188,6 +189,7 @@
* Implementation for API version 17+.
*/
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
private static final class JellybeanMr1Impl extends OverlayDisplayWindow {
// When true, disables support for moving and resizing the overlay.
// The window is made non-touchable, which makes it possible to
@@ -217,6 +219,7 @@
private float mLiveTranslationY;
private float mLiveScale = 1.0f;
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public JellybeanMr1Impl(Context context, String name,
int width, int height, int gravity) {
super(context, name, width, height, gravity);
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java
index 5019173..2d3b3d4 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java
@@ -16,7 +16,6 @@
package com.example.android.supportv7.util;
import android.annotation.SuppressLint;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
@@ -49,6 +48,7 @@
@Override
@SuppressLint("WrongThread")
+ @SuppressWarnings("deprecation") /* AsyncTask */
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
@@ -72,9 +72,8 @@
// already refreshing, do not allow modifications
return;
}
- //noinspection unchecked
- new AsyncTask<List<String>, Void, Pair<List<String>, DiffUtil.DiffResult>>() {
-
+ new android.os.AsyncTask<List<String>, Void, Pair<List<String>,
+ DiffUtil.DiffResult>>() {
@Override
protected Pair<List<String>, DiffUtil.DiffResult> doInBackground(
List<String>... lists) {
diff --git a/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java b/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java
index 0fc447a..4065625 100644
--- a/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java
+++ b/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java
@@ -16,7 +16,6 @@
package com.example.android.support.animation;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -36,7 +35,8 @@
/**
* This activity lists all the activities in this application.
*/
-public class BrowseActivity extends ListActivity {
+@SuppressWarnings("deprecation")
+public class BrowseActivity extends android.app.ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java b/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java
index 2aef33f..3e48afc 100644
--- a/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java
+++ b/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java
@@ -16,7 +16,6 @@
package com.example.androidx.car;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -35,7 +34,8 @@
/**
* Home activity for car support library samples.
*/
-public class SupportCarDemoActivity extends ListActivity {
+@SuppressWarnings("deprecation")
+public class SupportCarDemoActivity extends android.app.ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java
index 5b7cd39..3703bd4 100644
--- a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java
+++ b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java
@@ -20,7 +20,6 @@
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
import android.view.View;
@@ -123,7 +122,8 @@
}
}
- class LoadBitmapTaskBase extends AsyncTask<Request, Object, Request> {
+ @SuppressWarnings("deprecation") /* AsyncTask */
+ class LoadBitmapTaskBase extends android.os.AsyncTask<Request, Object, Request> {
@Override
protected Request doInBackground(Request... params) {
boolean cancelled = isCancelled();
diff --git a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java
index b5a94e7..7c812c1 100644
--- a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java
+++ b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java
@@ -17,7 +17,6 @@
package com.example.android.leanback;
import android.graphics.Bitmap;
-import android.os.AsyncTask;
import android.util.Log;
import android.util.SparseArray;
@@ -47,12 +46,12 @@
int mLastRequestedIndex = -1;
protected boolean isCancelled(Object task) {
- return ((AsyncTask) task).isCancelled();
+ return ((android.os.AsyncTask) task).isCancelled();
}
protected abstract Bitmap doInBackground(Object task, int index, long position);
- class LoadBitmapTask extends AsyncTask<Object, Object, Bitmap> {
+ class LoadBitmapTask extends android.os.AsyncTask<Object, Object, Bitmap> {
int mIndex;
ResultCallback mResultCallback;
@@ -101,6 +100,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void getThumbnail(int index, ResultCallback callback) {
Integer key = index;
Bitmap bitmap = mCache.get(key);
@@ -118,7 +118,7 @@
// no normal task or prefetch for the position, create a new task
task = new LoadBitmapTask(index, callback);
mRequests.put(index, task);
- task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ task.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
} else {
// update existing ResultCallback which might be normal task or prefetch
task.mResultCallback = callback;
@@ -133,6 +133,7 @@
}
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
protected void prefetch(int hintIndex, boolean forward) {
for (Iterator<Map.Entry<Integer, Bitmap>> it =
mPrefetchCache.snapshot().entrySet().iterator(); it.hasNext(); ) {
@@ -151,7 +152,7 @@
if (task == null) {
task = new LoadBitmapTask(key, null);
mRequests.put(i, task);
- task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ task.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
}
}
}
diff --git a/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java b/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java
index a0e5313..e6aba68 100644
--- a/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java
+++ b/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java
@@ -16,7 +16,6 @@
package com.example.androidx.preference;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
/**
* Activity that displays and handles launching the demo preference activities with a ListView.
*/
-public class MainActivity extends ListActivity {
+@SuppressWarnings("deprecation")
+public class MainActivity extends android.app.ListActivity {
private static final String INTENT = "intent";
private static final String NAME = "name";
diff --git a/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java b/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java
index b2d7ce3..b78738d 100644
--- a/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java
+++ b/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java
@@ -35,7 +35,6 @@
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
@@ -288,11 +287,12 @@
private static class IconCache {
private final HashMap<String, Drawable> mIcons = new HashMap<>();
+ @SuppressWarnings("deprecation") /* AsyncTask */
private void loadIcon(ImageView iv, ProviderInfo provider, PackageManager pm) {
if (mIcons.containsKey(provider.packageName)) {
iv.setImageDrawable(mIcons.get(provider.packageName));
}
- AsyncTask.execute(() -> {
+ android.os.AsyncTask.execute(() -> {
mIcons.put(provider.packageName, provider.loadIcon(pm));
iv.post(() -> iv.setImageDrawable(mIcons.get(provider.packageName)));
});
diff --git a/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java b/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java
index a2345bf..39b36f5 100644
--- a/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java
+++ b/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java
@@ -16,7 +16,6 @@
package com.example.android.support.transition;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
import java.util.List;
import java.util.Map;
-public class SupportTransitionDemos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class SupportTransitionDemos extends android.app.ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java b/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java
index 959ea75..c07087f 100644
--- a/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java
+++ b/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java
@@ -16,7 +16,6 @@
package com.example.android.support.vectordrawable.app;
-import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -36,7 +35,8 @@
/**
* The root level activity for this demo. Showing a list of sub demos.
*/
-public class SupportVectorDrawableDemos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class SupportVectorDrawableDemos extends android.app.ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
diff --git a/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java b/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java
index 90b91d1..5ed3259 100644
--- a/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java
+++ b/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java
@@ -22,8 +22,6 @@
import android.content.Context;
import android.content.IntentFilter;
import android.os.Bundle;
-import android.service.chooser.ChooserTarget;
-import android.service.chooser.ChooserTargetService;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -48,13 +46,14 @@
*/
@RequiresApi(23)
@RestrictTo(LIBRARY_GROUP_PREFIX)
-public class ChooserTargetServiceCompat extends ChooserTargetService {
+@SuppressWarnings("deprecation")
+public class ChooserTargetServiceCompat extends android.service.chooser.ChooserTargetService {
static final String TAG = "ChooserServiceCompat";
@Override
- public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName,
- IntentFilter matchedFilter) {
+ public List<android.service.chooser.ChooserTarget> onGetChooserTargets(
+ ComponentName targetActivityName, IntentFilter matchedFilter) {
Context context = getApplicationContext();
// Retrieve share targets
@@ -107,7 +106,7 @@
@VisibleForTesting
@NonNull
- static List<ChooserTarget> convertShortcutsToChooserTargets(
+ static List<android.service.chooser.ChooserTarget> convertShortcutsToChooserTargets(
@NonNull ShortcutInfoCompatSaverImpl shortcutSaver,
@NonNull List<ShortcutHolder> matchedShortcuts) {
if (matchedShortcuts.isEmpty()) {
@@ -115,7 +114,7 @@
}
Collections.sort(matchedShortcuts);
- ArrayList<ChooserTarget> chooserTargets = new ArrayList<>();
+ ArrayList<android.service.chooser.ChooserTarget> chooserTargets = new ArrayList<>();
float currentScore = 1.0f;
int lastRank = matchedShortcuts.get(0).getShortcut().getRank();
for (ShortcutHolder holder : matchedShortcuts) {
@@ -135,7 +134,7 @@
currentScore -= 0.01f;
lastRank = shortcut.getRank();
}
- chooserTargets.add(new ChooserTarget(
+ chooserTargets.add(new android.service.chooser.ChooserTarget(
shortcut.getShortLabel(),
shortcutIcon == null ? null : shortcutIcon.toIcon(),
currentScore,
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
index c6f9a6e..9c35fc2 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
@@ -32,7 +32,6 @@
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.os.AsyncTask;
import androidx.lifecycle.Observer;
import androidx.slice.Slice;
@@ -169,7 +168,7 @@
verify(mObserver, times(1)).onChanged(mSlice.capture());
clearInvocations(mObserver);
- AsyncTask.execute(new Runnable() {
+ android.os.AsyncTask.execute(new Runnable() {
@Override
public void run() {
try {
@@ -302,7 +301,7 @@
private void waitForAsync() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
- AsyncTask.execute(new Runnable() {
+ android.os.AsyncTask.execute(new Runnable() {
@Override
public void run() {
latch.countDown();
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
index ae76464..88b0eb6 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
@@ -33,7 +33,6 @@
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.os.AsyncTask;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
@@ -155,7 +154,7 @@
verify(mObserver, times(1)).onChanged(mSlice.capture());
clearInvocations(mObserver);
- AsyncTask.execute(new Runnable() {
+ android.os.AsyncTask.execute(new Runnable() {
@Override
public void run() {
try {
@@ -295,7 +294,7 @@
private void waitForAsync() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
- AsyncTask.execute(new Runnable() {
+ android.os.AsyncTask.execute(new Runnable() {
@Override
public void run() {
latch.countDown();
diff --git a/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java b/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java
index 12c839a..4ab5626 100644
--- a/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java
+++ b/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java
@@ -22,7 +22,6 @@
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Handler;
import android.os.Looper;
import android.util.ArrayMap;
@@ -145,8 +144,9 @@
private final ContentObserver mObserver = new ContentObserver(
new Handler(Looper.getMainLooper())) {
@Override
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void onChange(boolean selfChange) {
- AsyncTask.execute(mUpdateSlice);
+ android.os.AsyncTask.execute(mUpdateSlice);
}
};
}
diff --git a/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java b/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java
index 29248a6..6481272 100644
--- a/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java
+++ b/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java
@@ -22,7 +22,6 @@
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Looper;
import android.util.Log;
@@ -212,6 +211,7 @@
* @hide
*/
@RestrictTo(LIBRARY)
+ @SuppressWarnings("deprecation") /* AsyncTask */
protected synchronized void loadInitialSlice() {
if (mInitialSliceLoaded) {
return;
@@ -247,7 +247,7 @@
mPendingIntent.add(intent);
}
if (mActive && !mSliceCallbackRegistered) {
- AsyncTask.execute(mUpdateSlice);
+ android.os.AsyncTask.execute(mUpdateSlice);
mSliceViewManager.registerSliceCallback(mUri, mSliceCallback);
mSliceCallbackRegistered = true;
}
@@ -257,7 +257,7 @@
protected void onActive() {
mActive = true;
if (!mInitialSliceLoaded) {
- AsyncTask.execute(new Runnable() {
+ android.os.AsyncTask.execute(new Runnable() {
@Override
public void run() {
loadInitialSlice();
@@ -265,7 +265,7 @@
});
}
if (mLive && !mSliceCallbackRegistered) {
- AsyncTask.execute(mUpdateSlice);
+ android.os.AsyncTask.execute(mUpdateSlice);
mSliceViewManager.registerSliceCallback(mUri, mSliceCallback);
mSliceCallbackRegistered = true;
}
@@ -376,8 +376,9 @@
}
@Override
+ @SuppressWarnings("deprecation") /* AsyncTask */
protected void onActive() {
- AsyncTask.execute(mUpdateSlice);
+ android.os.AsyncTask.execute(mUpdateSlice);
if (mUri != null) {
mSliceViewManager.registerSliceCallback(mUri, mSliceCallback);
}
diff --git a/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java b/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
index 78470df..8558cb1 100644
--- a/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
+++ b/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
@@ -240,6 +240,7 @@
}
@Test
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public void ui_dismissOnOutsideClick() throws Exception {
final int toolbarMargin = (int) (mWidget.getY() + 1.5 * mWidget.getResources()
.getDimensionPixelSize(R.dimen.floating_toolbar_height));
@@ -277,6 +278,7 @@
}
@Test
+ @SuppressWarnings("deprecation") /* defaultDisplay */
public void ui_setContentRect_belowToolbar() throws Exception {
final int toolbarMargin = 5 * mWidget.getResources()
.getDimensionPixelSize(R.dimen.floating_toolbar_height);
diff --git a/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt b/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt
index 69212d3..b5e39a5 100644
--- a/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt
+++ b/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt
@@ -16,7 +16,6 @@
package androidx.ui.demos
-import android.app.ListActivity
import android.content.Intent
import android.os.Bundle
import android.view.View
@@ -27,7 +26,8 @@
import java.util.Comparator
import java.util.HashMap
-open class MainActivity : ListActivity() {
+@Suppress("DEPRECATION") /* ListActivity */
+open class MainActivity : android.app.ListActivity() {
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -62,7 +62,7 @@
setPackage(applicationContext.packageName)
}
val myData = ArrayList<Map<String, Any>>()
- val list = pm.queryIntentActivities(mainIntent, 0) ?: return myData
+ val list = pm.queryIntentActivities(mainIntent, 0)
list.forEach {
val label = it.loadLabel(pm)?.toString() ?: it.activityInfo.name
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt b/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt
index d68678c..2cd5ee0 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt
@@ -50,6 +50,7 @@
init {
val displayMetrics = DisplayMetrics()
+ @Suppress("DEPRECATION") /* defaultDisplay + getMetrics() */
activity.windowManager.defaultDisplay.getMetrics(displayMetrics)
val height = displayMetrics.heightPixels
val width = displayMetrics.widthPixels
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
index bd9df27..f33ee90 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
@@ -19,6 +19,7 @@
import android.graphics.Bitmap
import android.os.Build
import android.os.Handler
+import android.os.Looper
import android.view.PixelCopy
import android.view.View
import android.view.ViewGroup
@@ -2622,7 +2623,7 @@
view.getLocationInWindow(offset)
view.viewTreeObserver.addOnPreDrawListener(flushListener)
view.invalidate()
- handler = Handler()
+ handler = Handler(Looper.getMainLooper())
}
assertTrue(flushListener.latch.await(1, TimeUnit.SECONDS))
diff --git a/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt b/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt
index 42cdbfb..a009f5a 100644
--- a/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt
+++ b/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt
@@ -701,6 +701,7 @@
* This function will calculate the convexity of the path from its control
* points, and cache the result.
*/
+ @get:Suppress("DEPRECATION")
val isConvex: Boolean get() = internalPath.isConvex
/**
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
index 2242e5e..3cc3428 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
@@ -18,6 +18,7 @@
import android.app.Activity
import android.os.Handler
+import android.os.Looper
import android.view.View
import android.view.ViewGroup
import android.view.ViewTreeObserver
@@ -73,7 +74,7 @@
// lambda to Runnable, so separate it here
val runnable: Runnable = object : Runnable {
override fun run() {
- handler = Handler()
+ handler = Handler(Looper.getMainLooper())
}
}
activityTestRule.runOnUiThread(runnable)
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt
index 67e21ed..4fd1835 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt
@@ -17,6 +17,7 @@
package androidx.ui.material.demos
import android.os.Handler
+import android.os.Looper
import androidx.compose.Composable
import androidx.compose.Model
import androidx.compose.onActive
@@ -61,7 +62,7 @@
handler.removeCallbacks(updateProgress)
}
- val handler = Handler()
+ val handler = Handler(Looper.getMainLooper())
val updateProgress: Runnable = object : Runnable {
override fun run() {
if (progress == 1f) {
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 6ef813b..b92b9d44 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
@@ -1214,6 +1214,7 @@
}
}
+ @Suppress("DEPRECATION") /* Path.isConvex & Outline.setConvexPath */
private fun updateCacheWithPath(composePath: Path) {
val path = composePath.toFrameworkPath()
if (hasElevation && path.isConvex) {
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt
index 0cd20c0..cc7c99e 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt
@@ -85,6 +85,7 @@
init {
val displayMetrics = DisplayMetrics()
+ @Suppress("DEPRECATION") /* defaultDisplay + getMetrics() */
activity.windowManager.defaultDisplay.getMetrics(displayMetrics)
val height = displayMetrics.heightPixels
val width = displayMetrics.widthPixels
diff --git a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt
index 36ab1f4..30b5c9c 100644
--- a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt
+++ b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt
@@ -17,6 +17,7 @@
package androidx.ui.tooling
import android.os.Handler
+import android.os.Looper
import androidx.compose.Composable
import androidx.test.rule.ActivityTestRule
import androidx.ui.core.OnPositioned
@@ -40,7 +41,7 @@
activity = activityTestRule.activity
activity.hasFocusLatch.await(5, TimeUnit.SECONDS)
- activityTestRule.onUiThread { handler = Handler() }
+ activityTestRule.onUiThread { handler = Handler(Looper.getMainLooper()) }
}
@Composable
diff --git a/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt b/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt
index 5ddbedd..f3f44ec 100644
--- a/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt
+++ b/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt
@@ -16,7 +16,6 @@
package androidx.viewpager2.integration.testapp
-import android.app.ListActivity
import android.content.Intent
import android.os.Bundle
import android.view.View
@@ -26,7 +25,8 @@
/**
* This activity lists all the activities in this application.
*/
-class BrowseActivity : ListActivity() {
+@Suppress("DEPRECATION")
+class BrowseActivity : android.app.ListActivity() {
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
diff --git a/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java b/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
index e43e2bf..79dcc227 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
@@ -128,6 +128,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* getSystemWindowInsetXXXX */
protected void onAttachedToWindow() {
super.onAttachedToWindow();
mIsRound = getResources().getConfiguration().isScreenRound();
diff --git a/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java b/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java
index e20fb1f..07da857 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java
@@ -149,6 +149,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* Display.getSize() */
protected void onAttachedToWindow() {
super.onAttachedToWindow();
Point screenSize = new Point();
diff --git a/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java b/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
index c3ebdc0..292f648 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
@@ -229,6 +229,7 @@
this(context, attrs, defStyleAttr, 0);
}
+ @SuppressWarnings("deprecation") /* getDefaultDisplay */
public WearableDrawerLayout(
Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
@@ -318,6 +319,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* getSystemWindowInsetBottom */
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
mSystemWindowInsetBottom = insets.getSystemWindowInsetBottom();
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java
index 4a0373d..35f53be 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java
@@ -20,7 +20,6 @@
import android.app.Activity;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
@@ -73,6 +72,7 @@
}
@Override
+ @SuppressWarnings("deprecation") /* AsyncTask */
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -117,7 +117,7 @@
}
// Writes to file asynchronously in the background thread.
- private static class WriteFileTask extends AsyncTask<Void, Void, Void> {
+ private static class WriteFileTask extends android.os.AsyncTask<Void, Void, Void> {
@NonNull private final File mFile;
@NonNull private final String mContent;
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java
index 40e3512..1c3aa61 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java
@@ -36,6 +36,7 @@
private static final double SCALE_FACTOR = 1.1;
@Override
+ @SuppressWarnings("deprecation") /* defaultDisplay */
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_giant_interstitial);
diff --git a/webkit/webkit/src/main/java/androidx/webkit/TracingController.java b/webkit/webkit/src/main/java/androidx/webkit/TracingController.java
index 6f1987a..7a484d0 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/TracingController.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/TracingController.java
@@ -17,7 +17,6 @@
package androidx.webkit;
import android.content.Context;
-import android.os.AsyncTask;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -118,7 +117,7 @@
* To dispatch events through the main thread of your application,
* you can use {@link Context#getMainExecutor()}.
* To dispatch events through a shared thread pool,
- * you can use {@link AsyncTask#THREAD_POOL_EXECUTOR}.
+ * you can use {@link android.os.AsyncTask#THREAD_POOL_EXECUTOR}.
*
* @return {@code false} if the WebView framework was not tracing at the time of the call,
* {@code true} otherwise.
diff --git a/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java b/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java
index 8cbb23e..633bf07 100644
--- a/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java
+++ b/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java
@@ -18,7 +18,6 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@@ -56,7 +55,7 @@
private ImageView mImageView;
private TextView mTextView;
private ProgressBar mProgressBar;
- private AsyncTask<Image, Void, Bitmap> mBitmapLoadTask;
+ private android.os.AsyncTask<Image, Void, Bitmap> mBitmapLoadTask;
private boolean mShouldLoad;
ViewHolder(View itemView) {
@@ -66,13 +65,14 @@
mProgressBar = itemView.findViewById(R.id.progressBar);
}
+ @SuppressWarnings("deprecation") /* AsyncTask */
public void load(final Image image) {
if (TextUtils.isEmpty(image.mProcessedFilePath)) {
mTextView.setText(image.mOriginalAssetName);
mProgressBar.setVisibility(View.VISIBLE);
mImageView.setVisibility(View.GONE);
} else {
- mBitmapLoadTask = new AsyncTask<Image, Void, Bitmap>() {
+ mBitmapLoadTask = new android.os.AsyncTask<Image, Void, Bitmap>() {
@Override
protected void onPostExecute(Bitmap bitmap) {
if (mShouldLoad) {