Android Gradle Plugin 4.2.0-alpha15
Updated AGP versions in buildSrc/build_dependencies.gradle
Updated lint baselines
./gradlew lint lintDebug -PupdateLintBaseline
find -name lint-baseline.xml | xargs wc -l | sort -n | grep ' 4 ' | xargs -n 1 rm -f
Exempted new build warnings in development/build_log_simplifier/messages.ignore ; plan to follow up with more investigation and/or opening bugs
Manually added "[^/]*" into the build message exemptions that look like this:
w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-stdlib\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-stdlib\-common\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-stdlib\-jdk[0-9]+\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-reflect\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
Set LintClient.clientName in unit tests that create IssueRegistry objects
Added "analyticsRecordingRelease" to TaskUpToDateValidator
Renamed a couple of parameters in hilt's WorkerGeneratorTest.kt to match their type names
Removed a test stub from startup's InitializerConstructorTest that was conflicting with a test source
Modified LintConfiguration.kt to apply lint.xml even to non-host projects
Bug: 171819109
Test: Treehugger runs ./busytown/androidx.sh
Test: run `ANDROIDX_PROJECTS=ALL gw studio`, click "Build > Make Project", see that it succeeds
Change-Id: I90ee64d5aba7d8ea98a3fbde9d88ac0bf8b1c0ec
diff --git a/activity/activity-lint/lint-baseline.xml b/activity/activity-lint/lint-baseline.xml
new file mode 100644
index 0000000..3ee24e3
--- /dev/null
+++ b/activity/activity-lint/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message=""super.onRequestPermissionsResult()" looks like a call; surround with backtics in string to display as symbol, e.g. \`super.onRequestPermissionsResult()\`"
+ errorLine1=" failed to call super.onRequestPermissionsResult() and used invalid request codes""","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt"
+ line="49"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "Upgrade Fragment version to at least $FRAGMENT_VERSION.""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt"
+ line="202"
+ column="21"/>
+ </issue>
+
+</issues>
diff --git a/activity/activity-lint/src/test/java/androidx/activity/lint/ApiLintVersionsTest.kt b/activity/activity-lint/src/test/java/androidx/activity/lint/ApiLintVersionsTest.kt
index d650cb8..6e3e54a 100644
--- a/activity/activity-lint/src/test/java/androidx/activity/lint/ApiLintVersionsTest.kt
+++ b/activity/activity-lint/src/test/java/androidx/activity/lint/ApiLintVersionsTest.kt
@@ -16,6 +16,7 @@
package androidx.activity.lint
+import com.android.tools.lint.client.api.LintClient
import com.android.tools.lint.detector.api.CURRENT_API
import com.google.common.truth.Truth.assertThat
import org.junit.Test
@@ -27,6 +28,8 @@
@Test
fun versionsCheck() {
+ LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
+
val registry = ActivityIssueRegistry()
// we hardcode version registry.api to the version that is used to run tests
assertThat(registry.api).isEqualTo(CURRENT_API)
diff --git a/activity/activity/lint-baseline.xml b/activity/activity/lint-baseline.xml
index 01461ae..c24e5a4 100644
--- a/activity/activity/lint-baseline.xml
+++ b/activity/activity/lint-baseline.xml
@@ -1,5 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.content.Intent#FLAG_GRANT_PERSISTABLE_URI_PERMISSION`"
+ errorLine1=" FLAG_INCLUDE_STOPPED_PACKAGES, FLAG_GRANT_PERSISTABLE_URI_PERMISSION,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/IntentSenderRequest.java"
+ line="168"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.content.Intent#FLAG_GRANT_PREFIX_URI_PERMISSION`"
+ errorLine1=" FLAG_GRANT_PREFIX_URI_PERMISSION, FLAG_ACTIVITY_MATCH_EXTERNAL,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/IntentSenderRequest.java"
+ line="169"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.content.Intent#FLAG_ACTIVITY_MATCH_EXTERNAL`"
+ errorLine1=" FLAG_GRANT_PREFIX_URI_PERMISSION, FLAG_ACTIVITY_MATCH_EXTERNAL,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/IntentSenderRequest.java"
+ line="169"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT`"
+ errorLine1=" FLAG_ACTIVITY_NEW_DOCUMENT, FLAG_ACTIVITY_NO_USER_ACTION,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/IntentSenderRequest.java"
+ line="175"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.content.Intent#FLAG_ACTIVITY_RETAIN_IN_RECENTS`"
+ errorLine1=" FLAG_ACTIVITY_RETAIN_IN_RECENTS, FLAG_ACTIVITY_LAUNCH_ADJACENT})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/IntentSenderRequest.java"
+ line="178"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.content.Intent#FLAG_ACTIVITY_LAUNCH_ADJACENT`"
+ errorLine1=" FLAG_ACTIVITY_RETAIN_IN_RECENTS, FLAG_ACTIVITY_LAUNCH_ADJACENT})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/IntentSenderRequest.java"
+ line="178"
+ column="50"/>
+ </issue>
<issue
id="BanTargetApiAnnotation"
diff --git a/ads/ads-identifier-common/lint-baseline.xml b/ads/ads-identifier-common/lint-baseline.xml
index 5004ec4..64368d42 100644
--- a/ads/ads-identifier-common/lint-baseline.xml
+++ b/ads/ads-identifier-common/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="PrivateConstructorForUtilityClass"
@@ -12,4 +12,15 @@
column="14"/>
</issue>
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" packageManager.queryIntentServices(intent,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/AdvertisingIdUtils.java"
+ line="74"
+ column="32"/>
+ </issue>
+
</issues>
diff --git a/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml b/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml
index 6c0bb73..9f1823f 100644
--- a/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml
+++ b/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" textView.setText("There are " + allAdIdProviders.size() + " provider(s) on the device.\n");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/provider/testapp/AdsIdentifierProviderActivity.java"
+ line="61"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView.setText("There are " + allAdIdProviders.size() + " provider(s) on the device.\n");"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/provider/testapp/AdsIdentifierProviderActivity.java"
+ line="61"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" textView.setText("Package name: " + providerInfo.getPackageName() + "\n");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/provider/testapp/AdsIdentifierProviderActivity.java"
+ line="105"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView.setText("Package name: " + providerInfo.getPackageName() + "\n");"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/provider/testapp/AdsIdentifierProviderActivity.java"
+ line="105"
+ column="30"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/ads/ads-identifier-provider/lint-baseline.xml b/ads/ads-identifier-provider/lint-baseline.xml
new file mode 100644
index 0000000..e30f9e6
--- /dev/null
+++ b/ads/ads-identifier-provider/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `visibleToInstantApps` is only used in API level 26 and higher (current min is 14)"
+ errorLine1=" android:visibleToInstantApps="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="25"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> settingsResolveInfos = packageManager.queryIntentActivities("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/provider/AdvertisingIdProviderManager.java"
+ line="147"
+ column="65"/>
+ </issue>
+
+</issues>
diff --git a/ads/ads-identifier-testing/lint-baseline.xml b/ads/ads-identifier-testing/lint-baseline.xml
new file mode 100644
index 0000000..da8be51
--- /dev/null
+++ b/ads/ads-identifier-testing/lint-baseline.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.content.pm.PackageManager#MATCH_SYSTEM_ONLY`"
+ errorLine1=" eq(supportMatchSystemOnly ? PackageManager.MATCH_SYSTEM_ONLY : 0)))"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/testing/MockPackageManagerHelper.java"
+ line="70"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" when(mMockPackageManager.queryIntentServices(hasAction(GET_AD_ID_ACTION),"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/testing/MockPackageManagerHelper.java"
+ line="69"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" when(mMockPackageManager.queryIntentActivities(hasAction(OPEN_SETTINGS_ACTION), eq(0)))"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ads/identifier/testing/MockPackageManagerHelper.java"
+ line="89"
+ column="34"/>
+ </issue>
+
+</issues>
diff --git a/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml b/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml
index 4e338fb..7e1d4ae 100644
--- a/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml
+++ b/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="RestrictedApi"
diff --git a/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml b/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
index 9d852ee..84d82f7 100644
--- a/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
+++ b/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeOptInUsageError"
diff --git a/appcompat/appcompat-resources/lint-baseline.xml b/appcompat/appcompat-resources/lint-baseline.xml
index 73b1850..2fcb549c 100644
--- a/appcompat/appcompat-resources/lint-baseline.xml
+++ b/appcompat/appcompat-resources/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
@@ -409,6 +409,17 @@
</issue>
<issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_vector_test.xml"
+ line="23"
+ column="28"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="The getter return type (`Theme`) and setter parameter type (`int`) getter and setter methods for property `theme` should have exactly the same type to allow be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public Resources.Theme getTheme() {"
diff --git a/appcompat/appcompat/lint-baseline.xml b/appcompat/appcompat/lint-baseline.xml
index 7717e2d..59b20bd 100644
--- a/appcompat/appcompat/lint-baseline.xml
+++ b/appcompat/appcompat/lint-baseline.xml
@@ -1,5 +1,390 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SuspiciousImport"
+ message="Don't include `android.R` here; use a fully qualified name for each usage instead"
+ errorLine1="import android.R;"
+ errorLine2="~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/ActionBarDrawerToggleHoneycomb.java"
+ line="20"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`AbsActionBarView`) and the declare-styleable (`ActionBar`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = getContext().obtainStyledAttributes(null, R.styleable.ActionBar,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/AbsActionBarView.java"
+ line="79"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the declare-styleable (`ActionBarLayout`) for a layout parameter class (`LayoutParams`) is expected to be the surrounding class (`ActionBar`) plus "`_Layout`", e.g. `ActionBar_Layout`. (Various editor features rely on this convention.)"
+ errorLine1=" TypedArray a = c.obtainStyledAttributes(attrs, R.styleable.ActionBarLayout);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/ActionBar.java"
+ line="1379"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`ActionBarContainer`) and the declare-styleable (`ActionBar`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" R.styleable.ActionBar);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActionBarContainer.java"
+ line="66"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`DialogTitle`) and the declare-styleable (`TextAppearance`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" R.styleable.TextAppearance,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/DialogTitle.java"
+ line="67"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="DiscouragedPrivateApi"
+ message="Reflective access to setClipToScreenEnabled, which is not part of the public SDK and therefore likely to change in future Android releases"
+ errorLine1=" sSetClipToWindowEnabledMethod = PopupWindow.class.getDeclaredMethod("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ListPopupWindow.java"
+ line="86"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="DiscouragedPrivateApi"
+ message="Reflective access to computeFitSystemWindows, which is not part of the public SDK and therefore likely to change in future Android releases"
+ errorLine1=" sComputeFitSystemWindowsMethod = View.class.getDeclaredMethod("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ViewUtils.java"
+ line="44"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "spacer" in layout "abc_alert_dialog_button_bar_material" is missing from the following layout configurations: layout-watch (present in layout)"
+ errorLine1=" android:id="@+id/spacer""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_alert_dialog_button_bar_material.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_FULLSCREEN`"
+ errorLine1=" final boolean barVisible = (visible & SYSTEM_UI_FLAG_FULLSCREEN) == 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java"
+ line="259"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_LAYOUT_STABLE`"
+ errorLine1=" final boolean stable = (visible & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java"
+ line="260"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_LAYOUT_STABLE`"
+ errorLine1=" final boolean stable = (vis & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java"
+ line="428"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 17 (current min is 14): `android.R.attr#checkedTextViewStyle`"
+ errorLine1=" this(context, attrs, android.R.attr.checkedTextViewStyle);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/AppCompatCheckedTextView.java"
+ line="53"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_LIGHT_STATUS_BAR`"
+ errorLine1=" & SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) != 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="2301"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 17 (current min is 14): `android.content.res.Configuration#SCREENLAYOUT_LAYOUTDIR_MASK`"
+ errorLine1=" delta.screenLayout |= change.screenLayout & Configuration.SCREENLAYOUT_LAYOUTDIR_MASK;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="3424"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.content.res.Configuration#SCREENLAYOUT_ROUND_MASK`"
+ errorLine1=" delta.screenLayout |= change.screenLayout & Configuration.SCREENLAYOUT_ROUND_MASK;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="3434"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" sThemedResourceCacheClazz = Class.forName("android.content.res.ThemedResourceCache");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/ResourcesFlusher.java"
+ line="168"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="locale""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-watch/abc_alert_dialog_button_bar_material.xml"
+ line="23"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `scrollIndicators` is only used in API level 23 and higher (current min is 14)"
+ errorLine1=" android:scrollIndicators="top|bottom">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_alert_dialog_button_bar_material.xml"
+ line="24"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="locale""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_alert_dialog_button_bar_material.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_ab_back_material.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_arrow_drop_right_black_24dp.xml"
+ line="23"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1="<vector android:autoMirrored="true" android:height="24dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_menu_copy_mtrl_am_alpha.xml"
+ line="17"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1="<vector android:autoMirrored="true" android:height="24dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_menu_cut_mtrl_alpha.xml"
+ line="17"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `touchscreenBlocksFocus` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:touchscreenBlocksFocus="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_screen_toolbar.xml"
+ line="33"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="locale">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_view.xml"
+ line="55"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 l 1.0,0.0 l 0.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_0.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 c 0.33333333,0.0 0.0,1.0 1.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_1.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 l 1.0,0.0 l 0.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/btn_checkbox_unchecked_mtrl_animation_interpolator_0.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 c 0.33333333,0.0 0.0,1.0 1.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/btn_checkbox_unchecked_mtrl_animation_interpolator_1.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 c 0.4,0.0 0.4,1.0 1.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/btn_radio_to_off_mtrl_animation_interpolator_0.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 c 0.4,0.0 0.4,1.0 1.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/btn_radio_to_on_mtrl_animation_interpolator_0.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX1="0.4""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/fast_out_slow_in.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY1="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/fast_out_slow_in.xml"
+ line="21"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX2="0.2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/fast_out_slow_in.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY2="1"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/fast_out_slow_in.xml"
+ line="23"
+ column="9"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -255,6 +640,72 @@
</issue>
<issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" R.layout.abc_dialog_title_material, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="874"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.abc_screen_toolbar, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="896"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" R.layout.abc_screen_simple_overlay_action_mode, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="918"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" subDecor = (ViewGroup) inflater.inflate(R.layout.abc_screen_simple, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="920"
+ column="85"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" mContentView = LayoutInflater.from(mContext).inflate(R.layout.abc_tooltip, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/TooltipPopup.java"
+ line="62"
+ column="84"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" .queryIntentActivities(mIntent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActivityChooserModel.java"
+ line="691"
+ column="22"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 21, the call containing class androidx.appcompat.widget.ActionBarBackgroundDrawable is not annotated with @RequiresApi(x) where x is at least 21. Either annotate the containing class with at least @RequiresApi(21) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(21)."
errorLine1=" mContainer.mSplitBackground.getOutline(outline);"
@@ -1113,6 +1564,798 @@
</issue>
<issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:autoMirrored="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_ab_back_material.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_ab_back_material.xml"
+ line="23"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_ab_back_material.xml"
+ line="26"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_arrow_drop_right_black_24dp.xml"
+ line="22"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:autoMirrored="true">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_arrow_drop_right_black_24dp.xml"
+ line="23"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" <path android:fillColor="@android:color/black" android:pathData="M7,14 L12,9 L17,14 L7,14 Z" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_arrow_drop_right_black_24dp.xml"
+ line="30"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_clear_material.xml"
+ line="22"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_clear_material.xml"
+ line="25"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_go_search_api_material.xml"
+ line="21"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_go_search_api_material.xml"
+ line="24"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1="<vector android:autoMirrored="true" android:height="24dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_menu_copy_mtrl_am_alpha.xml"
+ line="17"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1="<vector android:autoMirrored="true" android:height="24dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_menu_cut_mtrl_alpha.xml"
+ line="17"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_menu_overflow_material.xml"
+ line="22"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_menu_overflow_material.xml"
+ line="25"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_search_api_material.xml"
+ line="22"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_search_api_material.xml"
+ line="25"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:tint="?attr/colorControlNormal">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_voice_search_api_material.xml"
+ line="22"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/white"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_voice_search_api_material.xml"
+ line="25"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/black"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_star_black_48dp.xml"
+ line="24"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Resource references will not work correctly in images generated for this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:fillColor="@android:color/black"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_star_half_black_48dp.xml"
+ line="24"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="ParcelClassLoader"
+ message="Passing null here (to use the default class loader) will not work if you are restoring your own classes. Consider using for example `getClass().getClassLoader()` instead."
+ errorLine1=" isIconified = (Boolean) source.readValue(null);"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/SearchView.java"
+ line="1309"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 1 instead"
+ errorLine1=" public static final int SHOW_DIVIDER_MIDDLE = 2;"
+ errorLine2=" ~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
+ line="92"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 2 instead"
+ errorLine1=" public static final int SHOW_DIVIDER_END = 4;"
+ errorLine2=" ~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
+ line="96"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `MODE_NIGHT_UNSPECIFIED`"
+ errorLine1=" switch (mode) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegate.java"
+ line="577"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `MeasureSpec.EXACTLY`"
+ errorLine1=" switch (heightMode) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/SearchView.java"
+ line="816"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ActionBar.NAVIGATION_MODE_LIST`, `ActionBar.NAVIGATION_MODE_STANDARD`"
+ errorLine1=" switch (mode) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/WindowDecorActionBar.java"
+ line="1343"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" mInnerInsets = new WindowInsetsCompat.Builder(mInnerInsets)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java"
+ line="475"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This `TypedArray` should be recycled after use with `#recycle()`"
+ errorLine1=" final TypedArray ta = context.obtainStyledAttributes("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AlertController.java"
+ line="846"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This `TypedArray` should be recycled after use with `#recycle()`"
+ errorLine1=" TypedArray a = mContext.obtainStyledAttributes(R.styleable.AppCompatTheme);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java"
+ line="1521"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (androidx.appcompat.widget.ActivityChooserModel.PersistHistoryAsyncTask)"
+ errorLine1=" private final class PersistHistoryAsyncTask extends android.os.AsyncTask<Object, Void, Void> {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActivityChooserModel.java"
+ line="1038"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `TooltipCompatHandler` which has field `mAnchor` pointing to `View`); this is a memory leak"
+ errorLine1=" private static TooltipCompatHandler sPendingHandler;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/TooltipCompatHandler.java"
+ line="75"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `TooltipCompatHandler` which has field `mAnchor` pointing to `View`); this is a memory leak"
+ errorLine1=" private static TooltipCompatHandler sActiveHandler;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/TooltipCompatHandler.java"
+ line="78"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `TwilightManager` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static TwilightManager sInstance;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/app/TwilightManager.java"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseCompoundDrawables"
+ message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_activity_chooser_view_list_item.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_view.xml"
+ line="49"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_view.xml"
+ line="69"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_view.xml"
+ line="71"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_view.xml"
+ line="79"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?attr/actionBarItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?attr/actionBarItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_action_bar_up_container.xml"
+ line="20"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `LinearLayout` parent is useless; transfer the `background` attribute to the other view"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_activity_chooser_view_list_item.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="abc_search_hint" msgid="7208076849092622260">"Axtarış..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-az/strings.xml"
+ line="25"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="abc_search_hint" msgid="7208076849092622260">"Pretražite..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-bs/strings.xml"
+ line="25"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="abc_search_hint" msgid="7208076849092622260">"Telusuri..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/strings.xml"
+ line="25"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="abc_search_hint" msgid="7208076849092622260">"검색..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/strings.xml"
+ line="25"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="abc_search_hint" msgid="7208076849092622260">"සොයන්න..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-si/strings.xml"
+ line="25"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="IconDuplicatesConfig"
+ message="The `abc_list_divider_mtrl_alpha.9.png` icon has identical contents in the following configuration folders: drawable-hdpi, drawable-mdpi, drawable-xhdpi">
+ <location
+ file="src/main/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png"/>
+ <location
+ file="src/main/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png"/>
+ <location
+ file="src/main/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `DropDownListView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="class DropDownListView extends ListView {"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/DropDownListView.java"
+ line="46"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `CollapsibleActionViewWrapper` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1=" static class CollapsibleActionViewWrapper extends FrameLayout"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/view/menu/MenuItemWrapperICS.java"
+ line="506"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `MenuDropDownListView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1=" public static class MenuDropDownListView extends DropDownListView {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/MenuPopupWindow.java"
+ line="139"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `ActionBarContainer` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActionBarContainer.java"
+ line="213"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `ActionMenuItemView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent e) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/view/menu/ActionMenuItemView.java"
+ line="140"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``FrameLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" expandButton.setOnTouchListener(new ForwardingListener(expandButton) {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ActivityChooserView.java"
+ line="260"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`AppCompatSpinner#onTouchEvent` should call `AppCompatSpinner#performClick` when a click is detected"
+ errorLine1=" public boolean onTouchEvent(MotionEvent event) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
+ line="427"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `DropDownListView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/DropDownListView.java"
+ line="207"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`PopupTouchInterceptor#onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/ListPopupWindow.java"
+ line="1390"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `SwitchCompat` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
+ line="936"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `Toolbar` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appcompat/widget/Toolbar.java"
+ line="1578"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/image""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_activity_chooser_view.xml"
+ line="40"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@id/image""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_activity_chooser_view.xml"
+ line="62"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_activity_chooser_view_list_item.xml"
+ line="32"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-watch/abc_alert_dialog_title_material.xml"
+ line="35"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_alert_dialog_title_material.xml"
+ line="36"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_cascading_menu_item_layout.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_cascading_menu_item_layout.xml"
+ line="69"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_list_menu_item_icon.xml"
+ line="17"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_popup_menu_item_layout.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_popup_menu_item_layout.xml"
+ line="75"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_dropdown_item_icons_2line.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_dropdown_item_icons_2line.xml"
+ line="37"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_dropdown_item_icons_2line.xml"
+ line="48"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_search_view.xml"
+ line="57"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/appcompat/widget/PopupMenuTest.java"
+ line="536"
+ column="5"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="The getter return type (`View`) and setter parameter type (`ScrollingTabContainerView`) getter and setter methods for property `tabContainer` should have exactly the same type to allow be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public View getTabContainer() {"
diff --git a/appsearch/compiler/lint-baseline.xml b/appsearch/compiler/lint-baseline.xml
index 2fdf963..3ba79e1 100644
--- a/appsearch/compiler/lint-baseline.xml
+++ b/appsearch/compiler/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/arch/core-common/lint-baseline.xml b/arch/core-common/lint-baseline.xml
index ff8ca54..8e7356c 100644
--- a/arch/core-common/lint-baseline.xml
+++ b/arch/core-common/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/arch/core-runtime/lint-baseline.xml b/arch/core-runtime/lint-baseline.xml
index dc22b69..f21d8d5 100644
--- a/arch/core-runtime/lint-baseline.xml
+++ b/arch/core-runtime/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" t.setName(String.format(THREAD_NAME_STEM, mThreadId.getAndIncrement()));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/arch/core/executor/DefaultTaskExecutor.java"
+ line="49"
+ column="23"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/arch/core-testing/lint-baseline.xml b/arch/core-testing/lint-baseline.xml
index c35342f..9040c20 100644
--- a/arch/core-testing/lint-baseline.xml
+++ b/arch/core-testing/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/autofill/autofill/lint-baseline.xml b/autofill/autofill/lint-baseline.xml
index 9d14981..f232cfc 100644
--- a/autofill/autofill/lint-baseline.xml
+++ b/autofill/autofill/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" (ViewGroup) inflater.inflate(R.layout.autofill_inline_suggestion, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/autofill/inline/v1/InlineSuggestionUi.java"
+ line="264"
+ column="83"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -353,4 +364,26 @@
column="65"/>
</issue>
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/autofill_inline_suggestion.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/autofill_inline_suggestion.xml"
+ line="50"
+ column="6"/>
+ </issue>
+
</issues>
diff --git a/benchmark/common/lint-baseline.xml b/benchmark/common/lint-baseline.xml
index 2f099a3..ef4caaa 100644
--- a/benchmark/common/lint-baseline.xml
+++ b/benchmark/common/lint-baseline.xml
@@ -1,5 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="23"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" .mapKeys { it.key.toLowerCase() }[name.toLowerCase()]"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/benchmark/Profiler.kt"
+ line="85"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" .mapKeys { it.key.toLowerCase() }[name.toLowerCase()]"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/benchmark/Profiler.kt"
+ line="85"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "`/data/`"; use `Context.getFilesDir().getPath()` instead"
+ errorLine1=" mAppDataDir = "/data/data/" + packageName;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/benchmark/simpleperf/ProfileSession.java"
+ line="116"
+ column="23"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -122,4 +166,26 @@
column="15"/>
</issue>
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/isolation_activity.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "AndroidBenchmarkRunner", should use `@string` resource"
+ errorLine1=" android:text="AndroidBenchmarkRunner""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/isolation_activity.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/benchmark/integration-tests/benchmark-simple-macro-benchmark-target/lint-baseline.xml b/benchmark/integration-tests/benchmark-simple-macro-benchmark-target/lint-baseline.xml
new file mode 100644
index 0000000..8999dee
--- /dev/null
+++ b/benchmark/integration-tests/benchmark-simple-macro-benchmark-target/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+</issues>
diff --git a/benchmark/junit4/lint-baseline.xml b/benchmark/junit4/lint-baseline.xml
new file mode 100644
index 0000000..88076a0
--- /dev/null
+++ b/benchmark/junit4/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" invokeMethodName = invokeMethodName.substring(4, 5).toLowerCase() +"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/benchmark/junit4/BenchmarkRule.kt"
+ line="195"
+ column="69"/>
+ </issue>
+
+</issues>
diff --git a/biometric/biometric/lint-baseline.xml b/biometric/biometric/lint-baseline.xml
index 3eb3abe..3b429d7 100644
--- a/biometric/biometric/lint-baseline.xml
+++ b/biometric/biometric/lint-baseline.xml
@@ -1,5 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.fragment.lint.FragmentIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/e3e8070ff55bdd44622c92131fecd482/fragment-1.2.5/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `accessibilityLiveRegion` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:accessibilityLiveRegion="polite""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fingerprint_dialog_layout.xml"
+ line="69"
+ column="13"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -23,4 +41,59 @@
column="82"/>
</issue>
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 24; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:trimPathEnd="1" android:trimPathOffset="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v23/fingerprint_dialog_error.xml"
+ line="26"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 24; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:trimPathEnd="1" android:trimPathOffset="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v23/fingerprint_dialog_error.xml"
+ line="26"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 24; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:trimPathStart="0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v23/fingerprint_dialog_error.xml"
+ line="27"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="TrulyRandom"
+ message="Potentially insecure random numbers on Android 4.3 and older. Read https://android-developers.blogspot.com/2013/08/some-securerandom-thoughts.html for more info."
+ errorLine1=" KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, KEYSTORE_INSTANCE);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/biometric/CryptoObjectUtils.java"
+ line="253"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fingerprint_dialog_layout.xml"
+ line="51"
+ column="10"/>
+ </issue>
+
</issues>
diff --git a/biometric/integration-tests/testapp/lint-baseline.xml b/biometric/integration-tests/testapp/lint-baseline.xml
index 58808f3..4406249 100644
--- a/biometric/integration-tests/testapp/lint-baseline.xml
+++ b/biometric/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
@@ -68,6 +68,39 @@
</issue>
<issue
+ id="TrulyRandom"
+ message="Potentially insecure random numbers on Android 4.3 and older. Read https://android-developers.blogspot.com/2013/08/some-securerandom-thoughts.html for more info."
+ errorLine1=" val keyGenerator = getInstance(KeyProperties.KEY_ALGORITHM_AES, KEYSTORE_INSTANCE)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/biometric/integration/testapp/BiometricTestActivity.kt"
+ line="227"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.string.biometric_test_app_title` appears to be unused"
errorLine1=" <string name="biometric_test_app_title">Biometric Test App</string>"
@@ -133,4 +166,136 @@
column="13"/>
</issue>
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Authenticator types:", should use `@string` resource"
+ errorLine1=" android:text="Authenticator types:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="32"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "BIOMETRIC_STRONG", should use `@string` resource"
+ errorLine1=" android:text="BIOMETRIC_STRONG""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="46"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "BIOMETRIC_WEAK", should use `@string` resource"
+ errorLine1=" android:text="BIOMETRIC_WEAK""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="62"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "DEVICE_CREDENTIAL", should use `@string` resource"
+ errorLine1=" android:text="DEVICE_CREDENTIAL""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="77"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Other options:", should use `@string` resource"
+ errorLine1=" android:text="Other options:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="84"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Cancel on configuration change", should use `@string` resource"
+ errorLine1=" android:text="Cancel on configuration change""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="98"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Require confirmation", should use `@string` resource"
+ errorLine1=" android:text="Require confirmation""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="114"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Use crypto-based authentication", should use `@string` resource"
+ errorLine1=" android:text="Use crypto-based authentication""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="129"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Can authenticate", should use `@string` resource"
+ errorLine1=" android:text="Can authenticate" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="137"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Authenticate", should use `@string` resource"
+ errorLine1=" android:text="Authenticate" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="143"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Clear log", should use `@string` resource"
+ errorLine1=" android:text="Clear log" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_biometric_test.xml"
+ line="149"
+ column="13"/>
+ </issue>
+
</issues>
diff --git a/browser/browser/lint-baseline.xml b/browser/browser/lint-baseline.xml
index 4b2d182..4c56fbb 100644
--- a/browser/browser/lint-baseline.xml
+++ b/browser/browser/lint-baseline.xml
@@ -1,5 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 16): `android.content.pm.PackageManager#MATCH_ALL`"
+ errorLine1=" return pm.queryIntentActivities(intent, PackageManager.MATCH_ALL);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/browseractions/BrowserActionsIntent.java"
+ line="388"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 16): `android.content.pm.PackageManager#MATCH_ALL`"
+ errorLine1=" PackageManager.MATCH_ALL);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java"
+ line="245"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" R.layout.browser_actions_context_menu_row, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/browser/browseractions/BrowserActionsFallbackMenuAdapter.java"
+ line="76"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" R.layout.browser_actions_context_menu_page, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUi.java"
+ line="142"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" return pm.queryIntentActivities(intent, PackageManager.MATCH_ALL);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/browseractions/BrowserActionsIntent.java"
+ line="388"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" .queryIntentActivities(scopeResolutionIntent, PackageManager.MATCH_DEFAULT_ONLY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java"
+ line="219"
+ column="18"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -111,4 +177,48 @@
column="17"/>
</issue>
+ <issue
+ id="StaticFieldLeak"
+ message="This field leaks a context object"
+ errorLine1=" private final Context mAppContext;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java"
+ line="78"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This field leaks a context object"
+ errorLine1=" private final Context mAppContext;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java"
+ line="134"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This field leaks a context object"
+ errorLine1=" private final Context mAppContext;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java"
+ line="133"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/browser_actions_bg_grey` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@color/browser_actions_bg_grey">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/browser_actions_context_menu_page.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
</issues>
diff --git a/buildSrc/build_dependencies.gradle b/buildSrc/build_dependencies.gradle
index 2a729df..1fa1100 100644
--- a/buildSrc/build_dependencies.gradle
+++ b/buildSrc/build_dependencies.gradle
@@ -17,10 +17,10 @@
def build_versions = [:]
// NOTE: lint versions *must* be kept in sync with agp
-build_versions.agp = '4.2.0-alpha06'
+build_versions.agp = '4.2.0-alpha15'
// NOTE: When updating the lint version we also need to update the `api` version supported
// by `IssueRegistry`'s.' For e.g. aosp/1331903
-build_versions.lint = '27.2.0-alpha06'
+build_versions.lint = '27.2.0-alpha15'
build_versions.kotlin = "1.4.0"
build_versions.kotlin_coroutines = "1.3.9"
diff --git a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
index 95eb4a4..a29179c 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
@@ -107,6 +107,13 @@
disable("KtxExtensionAvailable")
disable("GradleDependency")
+ // Disable a check that's only relevant for real apps. For our test apps we're not
+ // concerned with drawables potentially being a little bit blurry
+ disable("IconMissingDensityFolder")
+
+ // Disable until it works for our projects, b/171986505
+ disable("JavaPluginLanguageLevel")
+
if (extension.type.compilationTarget != CompilationTarget.HOST) {
fatal("Assert")
fatal("NewApi")
@@ -117,13 +124,6 @@
fatal("LambdaLast")
fatal("UnknownNullness")
- // If the project has not overridden the lint config, set the default one.
- if (lintConfig == null) {
- // suppress warnings more specifically than issue-wide severity (regexes)
- // Currently suppresses warnings from baseline files working as intended
- lintConfig = project.rootProject.file("buildSrc/lint.xml")
- }
-
// Only override if not set explicitly.
// Some Kotlin projects may wish to disable this.
if (
@@ -141,6 +141,13 @@
}
}
+ // If the project has not overridden the lint config, set the default one.
+ if (lintConfig == null) {
+ // suppress warnings more specifically than issue-wide severity (regexes)
+ // Currently suppresses warnings from baseline files working as intended
+ lintConfig = project.rootProject.file("buildSrc/lint.xml")
+ }
+
// Teams shouldn't be able to generate new baseline files or add new violations to
// existing files; they should only be able to burn down existing violations. That's
// hard to enforce, though, so we'll just prevent them from creating new ones.
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioVersions.kt b/buildSrc/src/main/kotlin/androidx/build/studio/StudioVersions.kt
index 19a3656..6828aaa 100644
--- a/buildSrc/src/main/kotlin/androidx/build/studio/StudioVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/studio/StudioVersions.kt
@@ -32,7 +32,7 @@
* is the [ideaMajorVersion] and the last number (5721125) is the [studioBuildNumber].
*/
object StudioVersions {
- val studioVersion = "4.2.0.6"
- val ideaMajorVersion = "201"
- val studioBuildNumber = "6712195"
+ val studioVersion = "4.2.0.15"
+ val ideaMajorVersion = "202"
+ val studioBuildNumber = "6922807"
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt b/buildSrc/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
index 12dc471..0f4cc1f 100644
--- a/buildSrc/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
@@ -39,6 +39,7 @@
// Entries in this set may be task names (like assembleDebug) or task paths
// (like :core:core:assembleDebug)
val EXEMPT_TASKS = setOf(
+ "analyticsRecordingRelease",
"buildOnServer",
"checkExternalLicenses",
"createArchive",
diff --git a/camera/camera-camera2-pipe/lint-baseline.xml b/camera/camera-camera2-pipe/lint-baseline.xml
index b0e1679..c8dcd32 100644
--- a/camera/camera-camera2-pipe/lint-baseline.xml
+++ b/camera/camera-camera2-pipe/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/camera/camera-camera2/lint-baseline.xml b/camera/camera-camera2/lint-baseline.xml
index 9c280b7..55421cea 100644
--- a/camera/camera-camera2/lint-baseline.xml
+++ b/camera/camera-camera2/lint-baseline.xml
@@ -1,5 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.annotation.experimental.lint.ExperimentalIssueRegistry`) which did not specify the Lint API version it was compiled with.

**This means that the lint checks are likely not compatible.**

If you are the author of this lint check, make your lint `IssueRegistry` class contain
 override val api: Int = com.android.tools.lint.detector.api.CURRENT_API
or from Java,
 @Override public int getApi() { return com.android.tools.lint.detector.api.ApiKt.CURRENT_API; }

If you are just using lint checks from a third party library you have no control over, you can disable these lint checks (if they misbehave) like this:

 android {
 lintOptions {
 disable "UnsafeExperimentalUsageError",
 "UnsafeExperimentalUsageWarning"
 }
 }
">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/7ae453d98f1dd49cba0e6a30280a6bcf/annotation-experimental-1.0.0-rc01/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("%s (%d): %s", problemString, problem, message);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/CameraAccessExceptionCompat.java"
+ line="255"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return new AutoValue_CameraDeviceId(brand.toLowerCase(), device.toLowerCase(),"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/CameraDeviceId.java"
+ line="39"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return new AutoValue_CameraDeviceId(brand.toLowerCase(), device.toLowerCase(),"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/CameraDeviceId.java"
+ line="39"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" model.toLowerCase(), cameraId.toLowerCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/CameraDeviceId.java"
+ line="40"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" model.toLowerCase(), cameraId.toLowerCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/CameraDeviceId.java"
+ line="40"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return "SAMSUNG".equals(Build.MANUFACTURER.toUpperCase())"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/quirk/CrashWhenTakingPhotoWithAutoFlashAEModeQuirk.java"
+ line="31"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" && android.os.Build.MODEL.toUpperCase().startsWith("SM-A300");"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/quirk/CrashWhenTakingPhotoWithAutoFlashAEModeQuirk.java"
+ line="33"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return "GOOGLE".equals(Build.BRAND.toUpperCase()) && Build.VERSION.SDK_INT < 23"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/quirk/Nexus4AndroidLTargetAspectRatioQuirk.java"
+ line="41"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" && DEVICE_MODELS.contains(android.os.Build.MODEL.toUpperCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/quirk/Nexus4AndroidLTargetAspectRatioQuirk.java"
+ line="42"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return "SAMSUNG".equals(Build.BRAND.toUpperCase())"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/quirk/SamsungPreviewTargetAspectRatioQuirk.java"
+ line="44"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" && DEVICE_MODELS.contains(android.os.Build.MODEL.toUpperCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/quirk/SamsungPreviewTargetAspectRatioQuirk.java"
+ line="45"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" Class<?> legacyCameraDeviceClass = Class.forName(LEGACY_CAMERA_DEVICE_CLASS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatBaseImpl.java"
+ line="232"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" Class<?> legacyCameraDeviceClass = Class.forName(LEGACY_CAMERA_DEVICE_CLASS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatBaseImpl.java"
+ line="249"
+ column="52"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -156,6 +306,39 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ImageCapture.FLASH_MODE_UNKNOWN`"
+ errorLine1=" switch (mFlashMode) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/Camera2CameraControlImpl.java"
+ line="513"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `CameraAccessExceptionCompat.CAMERA_CHARACTERISTICS_CREATION_ERROR`, `CameraAccessExceptionCompat.CAMERA_DISABLED`, `CameraAccessExceptionCompat.CAMERA_DISCONNECTED`, `CameraAccessExceptionCompat.CAMERA_ERROR`, `CameraAccessExceptionCompat.CAMERA_IN_USE`, `CameraAccessExceptionCompat.MAX_CAMERAS_IN_USE`"
+ errorLine1=" switch (e.getReason()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/Camera2CameraImpl.java"
+ line="910"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `CameraAccessExceptionCompat.CAMERA_CHARACTERISTICS_CREATION_ERROR`"
+ errorLine1=" switch (e.getReason()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/camera2/internal/CameraUnavailableExceptionHelper.java"
+ line="39"
+ column="9"/>
+ </issue>
+
+ <issue
id="ObsoleteSdkInt"
message="This folder configuration (`v21`) is unnecessary; `minSdkVersion` is 21. Merge all the resources in this folder into `values`.">
<location
diff --git a/camera/camera-core/lint-baseline.xml b/camera/camera-core/lint-baseline.xml
index d717cfa..ecd79d5d 100644
--- a/camera/camera-core/lint-baseline.xml
+++ b/camera/camera-core/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return "HUAWEI".equals(Build.BRAND.toUpperCase())"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/core/internal/compat/quirk/HuaweiMediaStoreLocationValidationQuirk.java"
+ line="40"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" || "HONOR".equals(Build.BRAND.toUpperCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/core/internal/compat/quirk/HuaweiMediaStoreLocationValidationQuirk.java"
+ line="41"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return KNOWN_AFFECTED_DEVICES.contains(Build.DEVICE.toLowerCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/core/impl/quirk/IncompleteCameraListQuirk.java"
+ line="51"
+ column="61"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -475,6 +508,39 @@
</issue>
<issue
+ id="UnsupportedChromeOsCameraSystemFeature"
+ message="You should look for any camera available on the device, not just the rear"
+ errorLine1=" if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/core/impl/CameraValidator.java"
+ line="56"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `FLASH_MODE_UNKNOWN`"
+ errorLine1=" switch (getFlashMode()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/core/ImageCapture.java"
+ line="1274"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED`"
+ errorLine1=" switch (outputBufferId) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/core/VideoCapture.java"
+ line="745"
+ column="13"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="This getter should be public such that `useRepeatingSurface` can be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" boolean isUseRepeatingSurface() {"
diff --git a/camera/camera-extensions-stub/lint-baseline.xml b/camera/camera-extensions-stub/lint-baseline.xml
index e75f740..d7d854d 100644
--- a/camera/camera-extensions-stub/lint-baseline.xml
+++ b/camera/camera-extensions-stub/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/camera/camera-extensions/lint-baseline.xml b/camera/camera-extensions/lint-baseline.xml
index 9151302..d6e8ebb 100644
--- a/camera/camera-extensions/lint-baseline.xml
+++ b/camera/camera-extensions/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/camera/camera-testing/lint-baseline.xml b/camera/camera-testing/lint-baseline.xml
index 24adcb2..95ce3dd 100644
--- a/camera/camera-testing/lint-baseline.xml
+++ b/camera/camera-testing/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/camera/camera-view/lint-baseline.xml b/camera/camera-view/lint-baseline.xml
index 1e56e2d..ac497c0a 100644
--- a/camera/camera-view/lint-baseline.xml
+++ b/camera/camera-view/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanTargetApiAnnotation"
@@ -34,4 +34,15 @@
column="19"/>
</issue>
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ImageCapture.FLASH_MODE_UNKNOWN`"
+ errorLine1=" switch (flashMode) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/view/FlashModeConverter.java"
+ line="67"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/camera/integration-tests/camerapipetestapp/lint-baseline.xml b/camera/integration-tests/camerapipetestapp/lint-baseline.xml
index 5d58f1b..049cfa4 100644
--- a/camera/integration-tests/camerapipetestapp/lint-baseline.xml
+++ b/camera/integration-tests/camerapipetestapp/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" is Boolean -> keyData.toString().toUpperCase()"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/transformations/DataTransformationsKeyValue.kt"
+ line="72"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoSizeTextType` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:autoSizeTextType="uniform""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/key_value_layout.xml"
+ line="42"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoSizeMinTextSize` is only used in API level 26 and higher (current min is 21)"
+ errorLine1=" android:autoSizeMinTextSize="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/key_value_layout.xml"
+ line="43"
+ column="13"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -57,6 +90,83 @@
</issue>
<issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="8dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/key_value_layout.xml"
+ line="41"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `ResourcesCompat.getDrawable()`"
+ errorLine1=" private val recordBackground: Drawable = activity.resources.getDrawable("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/CameraPipeUi.kt"
+ line="47"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `ResourcesCompat.getDrawable()`"
+ errorLine1=" private val defaultBackground: Drawable = activity.resources.getDrawable("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/CameraPipeUi.kt"
+ line="52"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" layoutState = LayoutState("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/visualizations/GraphView.kt"
+ line="64"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" val bounds = Rect()"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/visualizations/KeyValueView.kt"
+ line="52"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/cameraPipeThemeBgDark100` with a theme that also paints a background (inferred theme is `@android:style/Theme.NoTitleBar.Fullscreen`)"
+ errorLine1=" android:background="@color/cameraPipeThemeBgDark100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.color.colorPrimary` appears to be unused"
errorLine1=" <color name="colorPrimary">#6200EE</color>"
@@ -188,4 +298,114 @@
column="12"/>
</issue>
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <item xmlns:android="http://schemas.android.com/apk/res/android">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/theme_info_panel.xml"
+ line="21"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="SmallSp"
+ message="Avoid using sizes smaller than `12sp`: `10sp`"
+ errorLine1=" android:textSize="10sp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="142"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `KeyValueView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="class KeyValueView("
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/visualizations/KeyValueView.kt"
+ line="27"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `StateGraphView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="class StateGraphView("
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/visualizations/StateGraphView.kt"
+ line="26"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `ValueGraphView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="class ValueGraphView("
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/camera2/pipe/visualizations/ValueGraphView.kt"
+ line="26"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="73"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="89"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="99"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/key_value_layout.xml"
+ line="38"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="top|right""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/key_value_layout.xml"
+ line="50"
+ column="37"/>
+ </issue>
+
</issues>
diff --git a/camera/integration-tests/coretestapp/lint-baseline.xml b/camera/integration-tests/coretestapp/lint-baseline.xml
index 0fa66bb..78d63ea 100644
--- a/camera/integration-tests/coretestapp/lint-baseline.xml
+++ b/camera/integration-tests/coretestapp/lint-baseline.xml
@@ -1,5 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" Toast.makeText(getApplicationContext(), String.format("EV: %.2f", ev),"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="200"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" Toast.makeText(getApplicationContext(), String.format("EV: %.2f","
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="463"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" Toast.makeText(getApplicationContext(), String.format("EV: %.2f","
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="484"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" String str = String.format("%.2fx", state.getZoomRatio());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="958"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.provider.MediaStore.MediaColumns#DATE_TAKEN`"
+ errorLine1=" contentValues.put(MediaStore.Video.Media.DATE_TAKEN, System.currentTimeMillis());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/VideoFileSaver.java"
+ line="73"
+ column="27"/>
+ </issue>
<issue
id="RestrictedApi"
@@ -8,7 +74,7 @@
errorLine2=" ~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="334"
+ line="335"
column="35"/>
</issue>
@@ -19,18 +85,73 @@
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="342"
+ line="343"
column="35"/>
</issue>
<issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="11dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="216"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="20dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="270"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ImageCapture.FLASH_MODE_UNKNOWN`"
+ errorLine1=" switch (getImageCapture().getFlashMode()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="501"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
id="SyntheticAccessor"
message="Access to `private` field `mImageAnalysisResult` of class `CameraXActivity` requires synthetic accessor"
errorLine1=" mImageAnalysisResult.setValue("
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="176"
+ line="177"
column="13"/>
</issue>
@@ -41,7 +162,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="179"
+ line="180"
column="22"/>
</issue>
@@ -52,7 +173,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="180"
+ line="181"
column="21"/>
</issue>
@@ -63,7 +184,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="359"
+ line="360"
column="25"/>
</issue>
@@ -74,7 +195,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="362"
+ line="363"
column="25"/>
</issue>
@@ -85,7 +206,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="371"
+ line="372"
column="33"/>
</issue>
@@ -96,7 +217,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="380"
+ line="381"
column="45"/>
</issue>
@@ -107,7 +228,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="402"
+ line="403"
column="45"/>
</issue>
@@ -118,7 +239,7 @@
errorLine2=" ~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="588"
+ line="589"
column="45"/>
</issue>
@@ -129,7 +250,7 @@
errorLine2=" ~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="858"
+ line="864"
column="25"/>
</issue>
@@ -140,7 +261,7 @@
errorLine2=" ~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="862"
+ line="868"
column="45"/>
</issue>
@@ -151,7 +272,7 @@
errorLine2=" ~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
- line="863"
+ line="869"
column="51"/>
</issue>
@@ -162,7 +283,7 @@
errorLine2=" ~~~~~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/OpenGLActivity.java"
- line="248"
+ line="261"
column="33"/>
</issue>
@@ -173,18 +294,304 @@
errorLine2=" ~~~~~~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/OpenGLActivity.java"
- line="249"
+ line="262"
column="33"/>
</issue>
<issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SmallSp"
+ message="Avoid using sizes smaller than `12sp`: `10sp`"
+ errorLine1=" android:textSize="10sp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="230"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SmallSp"
+ message="Avoid using sizes smaller than `12sp`: `10sp`"
+ errorLine1=" android:textSize="10sp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="244"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View view, MotionEvent motionEvent) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="901"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="168"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="181"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="194"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mRecord.setText("Stop");"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="340"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mRecord.setText("Record");"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="342"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mRecord.setText("Stop");"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="345"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mRecord.setText("Record");"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="348"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" "ImgCount: " + mImageAnalysisFrameCount.get() + " @ts: ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="571"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" "ImgCount: " + mImageAnalysisFrameCount.get() + " @ts: ""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="571"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" "ImgCount: " + mImageAnalysisFrameCount.get() + " @ts: ""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
+ line="571"
+ column="81"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Picture", should use `@string` resource"
+ errorLine1=" android:text="Picture""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="80"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Record", should use `@string` resource"
+ errorLine1=" android:text="Record""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="93"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "1x", should use `@string` resource"
+ errorLine1=" android:text="1x""
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="269"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "--- fps", should use `@string` resource"
+ errorLine1=" android:text="--- fps""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/opengl_activity.xml"
+ line="41"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "--- fps", should use `@string` resource"
+ errorLine1=" android:text="--- fps""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/opengl_activity.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="172"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="185"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="198"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="211"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="225"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="239"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd="10dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginRight="10dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_xmain.xml"
+ line="272"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
<location
file="src/main/java/androidx/camera/integration/core/OpenGLActivity.java"
- line="92"
+ line="97"
column="26"/>
</issue>
@@ -195,7 +602,7 @@
errorLine2=" ~~~~">
<location
file="src/main/java/androidx/camera/integration/core/OpenGLActivity.java"
- line="189"
+ line="202"
column="19"/>
</issue>
diff --git a/camera/integration-tests/extensionstestapp/lint-baseline.xml b/camera/integration-tests/extensionstestapp/lint-baseline.xml
index 2efc14d..76c27b1 100644
--- a/camera/integration-tests/extensionstestapp/lint-baseline.xml
+++ b/camera/integration-tests/extensionstestapp/lint-baseline.xml
@@ -1,5 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Take Picture", should use `@string` resource"
+ errorLine1=" android:text="Take Picture""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_extensions.xml"
+ line="57"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "DEFAULT", should use `@string` resource"
+ errorLine1=" android:text="DEFAULT""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_camera_extensions.xml"
+ line="70"
+ column="9"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/camera/integration-tests/extensionstestlib/lint-baseline.xml b/camera/integration-tests/extensionstestlib/lint-baseline.xml
index b073621..34e2342 100644
--- a/camera/integration-tests/extensionstestlib/lint-baseline.xml
+++ b/camera/integration-tests/extensionstestlib/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.graphics.ImageFormat#PRIVATE`"
+ errorLine1=" Size[] outputSizes = map.getOutputSizes(ImageFormat.PRIVATE);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/extensions/impl/BeautyPreviewExtenderImpl.java"
+ line="97"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.graphics.ImageFormat#PRIVATE`"
+ errorLine1=" formatResolutionsPairList.add(Pair.create(ImageFormat.PRIVATE, outputSizes));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/extensions/impl/BeautyPreviewExtenderImpl.java"
+ line="100"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 21): `android.opengl.EGLExt#EGL_RECORDABLE_ANDROID`"
+ errorLine1=" EGL_RECORDABLE_ANDROID,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/extensions/impl/GLImage2SurfaceRenderer.java"
+ line="127"
+ column="17"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/camera/integration-tests/timingtestapp/lint-baseline.xml b/camera/integration-tests/timingtestapp/lint-baseline.xml
index 1fddb04..1575ddf 100644
--- a/camera/integration-tests/timingtestapp/lint-baseline.xml
+++ b/camera/integration-tests/timingtestapp/lint-baseline.xml
@@ -1,5 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="35"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" api = CameraAPI.valueOf(PrefHelper.getSingleTestApi(activity).toUpperCase())"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestUtils.kt"
+ line="114"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" focusMode = FocusMode.valueOf(PrefHelper.getSingleTestFocus(activity).toUpperCase())"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestUtils.kt"
+ line="115"
+ column="79"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" ImageCaptureSize.valueOf(PrefHelper.getSingleTestImageSize(activity).toUpperCase())"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestUtils.kt"
+ line="117"
+ column="82"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" val dateFormatter = SimpleDateFormat("d MMM yyyy - kk'h'mm")"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestResults.kt"
+ line="97"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" val dateFormatter = SimpleDateFormat("d MMM yyyy - kk'h'mm")"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestResults.kt"
+ line="170"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" val dateFormatter = SimpleDateFormat("d MMM yyyy - kk'h'mm")"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestUtils.kt"
+ line="354"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" val dateFormatter = SimpleDateFormat("d MMM yyyy - kk'h'mm")"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/TestUtils.kt"
+ line="465"
+ column="25"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -24,6 +112,61 @@
</issue>
<issue
+ id="SourceLockedOrientationActivity"
+ message="You should not lock orientation of your activities, so that you can support a good user experience for any device or orientation"
+ errorLine1=" requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/antelope/MainActivity.kt"
+ line="354"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "Camera!" instead of "Camera1" ?"
+ errorLine1=" <item>Camera1</item>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/arrays.xml"
+ line="41"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "Camera!" instead of "Camera1" ?"
+ errorLine1=" <item>Camera1</item>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/arrays.xml"
+ line="48"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "Camera!" instead of "Camera1" ?"
+ errorLine1=" <string name="label_camera1">Camera1</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="21"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="38"
+ column="6"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.color.ic_launcher_background` appears to be unused"
errorLine1=" <color name="ic_launcher_background">#A617A1</color>"
diff --git a/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml b/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml
index 1c82182..e72697e 100644
--- a/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml
+++ b/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml
@@ -1,5 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.fragment.testing.lint.FragmentTestingIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/7d3871e5b26932ff3c93b3a8e0699529/fragment-testing-1.2.5/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="57"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="ManifestOrder"
+ message="`<uses-permission>` tag appears after `<application>` tag"
+ errorLine1=" <uses-permission android:name="android.permission.CAMERA" />"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="56"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LockedOrientationActivity"
+ message="Expecting `android:screenOrientation="unspecified"` or `"fullSensor"` for this activity so the user can use the application in any orientation and provide a great experience on Chrome OS devices"
+ errorLine1=" android:screenOrientation="portrait" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
<issue
id="SyntheticAccessor"
@@ -12,4 +74,26 @@
column="31"/>
</issue>
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Blank textview fragment.", should use `@string` resource"
+ errorLine1=" android:text="Blank textview fragment." />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_textview.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/camera/integration-tests/viewtestapp/lint-baseline.xml b/camera/integration-tests/viewtestapp/lint-baseline.xml
index 32ca7f0..7c07dea 100644
--- a/camera/integration-tests/viewtestapp/lint-baseline.xml
+++ b/camera/integration-tests/viewtestapp/lint-baseline.xml
@@ -1,5 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.fragment.lint.FragmentIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/0fb1dd8bbeedc8c68a82b59d7323ab90/fragment-1.2.3/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.fragment.testing.lint.FragmentTestingIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/a2a294247f89fd5339b38ec4d63066da/fragment-testing-1.2.3/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 11+, even when using `requestLegacyExternalStorage`"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" CaptureMode captureMode = CaptureMode.valueOf(captureModeString.toUpperCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraViewFragment.java"
+ line="148"
+ column="81"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.camera_view:"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/MainActivity.java"
+ line="106"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.preview_view:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/MainActivity.java"
+ line="109"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.camera_controller:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/MainActivity.java"
+ line="112"
+ column="18"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -79,6 +148,94 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ImageCapture.FLASH_MODE_UNKNOWN`"
+ errorLine1=" switch (mCameraController.getImageCaptureFlashMode()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraControllerFragment.java"
+ line="178"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ImageCapture.FLASH_MODE_UNKNOWN`"
+ errorLine1=" switch (mCameraController.getImageCaptureFlashMode()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraControllerFragment.java"
+ line="394"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CaptureViewOnTouchListener.java"
+ line="73"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="16"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/camera_controller_view.xml"
+ line="16"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_preview_view.xml"
+ line="16"
+ column="2"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.string.preview` appears to be unused"
errorLine1=" <string name="preview">Preview</string>"
@@ -178,6 +335,182 @@
</issue>
<issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is possibly useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_main.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is possibly useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_main.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`CaptureViewOnTouchListener#onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View view, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CaptureViewOnTouchListener.java"
+ line="179"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` lambda should call `View#performClick` when a click is detected"
+ errorLine1=" mPreviewView.setOnTouchListener((view, motionEvent) -> {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/camera/integration/view/PreviewViewFragment.java"
+ line="334"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_preview_view.xml"
+ line="32"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_preview_view.xml"
+ line="33"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mZoomStateText.setText("Null");"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraControllerFragment.java"
+ line="356"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mTorchStateText.setText("Torch state null");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraControllerFragment.java"
+ line="364"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mTorchStateText.setText("Torch state: " + torchState);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraControllerFragment.java"
+ line="366"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mTorchStateText.setText("Torch state: " + torchState);"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/CameraControllerFragment.java"
+ line="366"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" rotationButton.setText("ROTATION_0");"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/PreviewViewFragment.java"
+ line="188"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" rotationButton.setText("ROTATION_90");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/PreviewViewFragment.java"
+ line="191"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" rotationButton.setText("ROTATION_180");"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/PreviewViewFragment.java"
+ line="194"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" rotationButton.setText("ROTATION_270");"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/camera/integration/view/PreviewViewFragment.java"
+ line="197"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd="15dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginRight="15dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_main.xml"
+ line="60"
+ column="17"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/car/app/app/lint-baseline.xml b/car/app/app/lint-baseline.xml
index 8e8956b..0dcf35d 100644
--- a/car/app/app/lint-baseline.xml
+++ b/car/app/app/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanUncheckedReflection"
@@ -34,4 +34,15 @@
column="20"/>
</issue>
+ <issue
+ id="ParcelClassLoader"
+ message="Using the default class loader will not work if you are restoring your own classes. Consider using for example `readBundle(getClass().getClassLoader())` instead."
+ errorLine1=" return new Bundleable(requireNonNull(source.readBundle()));"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/car/app/serialization/Bundleable.java"
+ line="78"
+ column="65"/>
+ </issue>
+
</issues>
diff --git a/collection/collection/lint-baseline.xml b/collection/collection/lint-baseline.xml
index e149a32..9ab582a 100644
--- a/collection/collection/lint-baseline.xml
+++ b/collection/collection/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/compose/androidview/androidview/integration-tests/androidview-demos/lint-baseline.xml b/compose/androidview/androidview/integration-tests/androidview-demos/lint-baseline.xml
new file mode 100644
index 0000000..6bd98fa
--- /dev/null
+++ b/compose/androidview/androidview/integration-tests/androidview-demos/lint-baseline.xml
@@ -0,0 +1,675 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.android_4_buttons_in_compose, null).let { view ->"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="87"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.android_tap_in_compose_tap, null).let { view ->"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="137"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.android_tap_in_compose_scroll, null).let { view ->"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="167"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" null"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="216"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.android_scroll_in_compose_scroll_same_orientation, null)"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="248"
+ column="94"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.android_scrollview, null)"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="267"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.android_scrollview, null)"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/demos/PointerInputInteropAndroidInCompose.kt"
+ line="274"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="22"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="32"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="37"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_tap.xml"
+ line="21"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="22"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="32"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="37"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_tap.xml"
+ line="21"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="32"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="37"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Red", should use `@string` resource"
+ errorLine1=" android:text="Red" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_4_buttons_in_compose.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Blue", should use `@string` resource"
+ errorLine1=" android:text="Blue" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_4_buttons_in_compose.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Green", should use `@string` resource"
+ errorLine1=" android:text="Green" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_4_buttons_in_compose.xml"
+ line="44"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Yellow", should use `@string` resource"
+ errorLine1=" android:text="Yellow" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_4_buttons_in_compose.xml"
+ line="52"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "1", should use `@string` resource"
+ errorLine1=" android:text="1" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="29"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "2", should use `@string` resource"
+ errorLine1=" android:text="2" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="34"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "3", should use `@string` resource"
+ errorLine1=" android:text="3" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "4", should use `@string` resource"
+ errorLine1=" android:text="4" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "5", should use `@string` resource"
+ errorLine1=" android:text="5" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="49"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "6", should use `@string` resource"
+ errorLine1=" android:text="6" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="54"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "7", should use `@string` resource"
+ errorLine1=" android:text="7" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="59"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "8", should use `@string` resource"
+ errorLine1=" android:text="8" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="64"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "9", should use `@string` resource"
+ errorLine1=" android:text="9" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="69"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "10", should use `@string` resource"
+ errorLine1=" android:text="10" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_different_orientation.xml"
+ line="74"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "1", should use `@string` resource"
+ errorLine1=" android:text="1" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="29"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "2", should use `@string` resource"
+ errorLine1=" android:text="2" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="34"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "3", should use `@string` resource"
+ errorLine1=" android:text="3" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "4", should use `@string` resource"
+ errorLine1=" android:text="4" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "5", should use `@string` resource"
+ errorLine1=" android:text="5" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="49"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "6", should use `@string` resource"
+ errorLine1=" android:text="6" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="54"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "7", should use `@string` resource"
+ errorLine1=" android:text="7" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="59"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "8", should use `@string` resource"
+ errorLine1=" android:text="8" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="64"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "9", should use `@string` resource"
+ errorLine1=" android:text="9" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="69"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "10", should use `@string` resource"
+ errorLine1=" android:text="10" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scroll_in_compose_scroll_same_orientation.xml"
+ line="74"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "1", should use `@string` resource"
+ errorLine1=" android:text="1" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="30"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "2", should use `@string` resource"
+ errorLine1=" android:text="2" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "3", should use `@string` resource"
+ errorLine1=" android:text="3" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "4", should use `@string` resource"
+ errorLine1=" android:text="4" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="45"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "5", should use `@string` resource"
+ errorLine1=" android:text="5" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "6", should use `@string` resource"
+ errorLine1=" android:text="6" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="55"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "7", should use `@string` resource"
+ errorLine1=" android:text="7" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="60"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "8", should use `@string` resource"
+ errorLine1=" android:text="8" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="65"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "9", should use `@string` resource"
+ errorLine1=" android:text="9" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="70"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "10", should use `@string` resource"
+ errorLine1=" android:text="10" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_scrollview.xml"
+ line="75"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Red", should use `@string` resource"
+ errorLine1=" android:text="Red" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Green", should use `@string` resource"
+ errorLine1=" android:text="Green" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Blue", should use `@string` resource"
+ errorLine1=" android:text="Blue" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Yellow", should use `@string` resource"
+ errorLine1=" android:text="Yellow" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_scroll.xml"
+ line="41"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Red", should use `@string` resource"
+ errorLine1=" android:text="Red" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_tap_in_compose_tap.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show Dialog", should use `@string` resource"
+ errorLine1=" android:text="Show Dialog"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/compose_in_android_dialog_dismiss_dialog_during_dispatch.xml"
+ line="33"
+ column="9"/>
+ </issue>
+
+</issues>
diff --git a/compose/androidview/androidview/lint-baseline.xml b/compose/androidview/androidview/lint-baseline.xml
index b6c08b1..9313815 100644
--- a/compose/androidview/androidview/lint-baseline.xml
+++ b/compose/androidview/androidview/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SuspiciousImport"
+ message="Don't include `android.R` here; use a fully qualified name for each usage instead"
+ errorLine1="import android.R"
+ errorLine2="~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/LayoutAdapter.kt"
+ line="19"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" val prefixString = prefix.toString().toLowerCase()"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/ArrayAdapter.kt"
+ line="149"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" val valueText = value.toString().toLowerCase()"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/ArrayAdapter.kt"
+ line="158"
+ column="54"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -12,4 +45,59 @@
column="26"/>
</issue>
+ <issue
+ id="UseSwitchCompatOrMaterialCode"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1="fun Switch.setSwitchMinWidth(switchMinWidth: Dimension) ="
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/SwitchAttributeAdapter.kt"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialCode"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1="fun Switch.setSwitchPadding(switchPadding: Dimension) ="
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/SwitchAttributeAdapter.kt"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialCode"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1="fun Switch.setThumbTextPadding(thumbTextPadding: Dimension) ="
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/SwitchAttributeAdapter.kt"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnknownNullness"
+ message="Should explicitly declare type here since implicit type does not specify nullness"
+ errorLine1=" override fun getValue() = view.isChecked"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/CompoundButtonInputController.kt"
+ line="28"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="UnknownNullness"
+ message="Should explicitly declare type here since implicit type does not specify nullness"
+ errorLine1=" override fun getValue() = view.checkedRadioButtonId"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/androidview/adapters/RadioGroupInputController.kt"
+ line="24"
+ column="18"/>
+ </issue>
+
</issues>
diff --git a/compose/compiler/compiler-hosted/integration-tests/lint-baseline.xml b/compose/compiler/compiler-hosted/integration-tests/lint-baseline.xml
new file mode 100644
index 0000000..db82975
--- /dev/null
+++ b/compose/compiler/compiler-hosted/integration-tests/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/test/java/androidx/compose/compiler/plugins/kotlin/LiveLiteralCodegenTests.kt"
+ line="41"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/test/java/androidx/compose/compiler/plugins/kotlin/LiveLiteralCodegenTests.kt"
+ line="63"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/compose/foundation/foundation-layout/lint-baseline.xml b/compose/foundation/foundation-layout/lint-baseline.xml
index cf10878..7ee29fa 100644
--- a/compose/foundation/foundation-layout/lint-baseline.xml
+++ b/compose/foundation/foundation-layout/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="ModifierInspectorInfo"
diff --git a/compose/foundation/foundation-text/lint-baseline.xml b/compose/foundation/foundation-text/lint-baseline.xml
index ee6011f..dcff3ff 100644
--- a/compose/foundation/foundation-text/lint-baseline.xml
+++ b/compose/foundation/foundation-text/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="ModifierInspectorInfo"
diff --git a/compose/integration-tests/benchmark/lint-baseline.xml b/compose/integration-tests/benchmark/lint-baseline.xml
new file mode 100644
index 0000000..e59729b
--- /dev/null
+++ b/compose/integration-tests/benchmark/lint-baseline.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/compose/ui/TextFieldToggleTextBenchmark.kt"
+ line="81"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/compose/ui/TextFieldToggleTextBenchmark.kt"
+ line="92"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/compose/ui/TextFieldToggleTextBenchmark.kt"
+ line="102"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/compose/ui/TextFieldToggleTextBenchmark.kt"
+ line="112"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/compose/ui/TextFieldToggleTextBenchmark.kt"
+ line="122"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/compose/ui/TextFieldToggleTextBenchmark.kt"
+ line="131"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/compose/integration-tests/demos/lint-baseline.xml b/compose/integration-tests/demos/lint-baseline.xml
new file mode 100644
index 0000000..08f1cf1
--- /dev/null
+++ b/compose/integration-tests/demos/lint-baseline.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.lifecycle.lint.LifecycleRuntimeIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/02dcda78691438fc76cdfd012889a28d/lifecycle-runtime-ktx-2.2.0/jars/lint.jar"/>
+ </issue>
+
+</issues>
diff --git a/compose/integration-tests/lint-baseline.xml b/compose/integration-tests/lint-baseline.xml
index 6355478..beade19 100644
--- a/compose/integration-tests/lint-baseline.xml
+++ b/compose/integration-tests/lint-baseline.xml
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DiscouragedPrivateApi"
+ message="Reflective access to freeTextLayoutCaches, which is not part of the public SDK and therefore likely to change in future Android releases"
+ errorLine1=" val freeCaches = Canvas::class.java.getDeclaredMethod("freeTextLayoutCaches")"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ui/integration/test/TextBenchmarkTestRule.kt"
+ line="80"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fillType` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:fillType="evenOdd""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_pathfill_sample.xml"
+ line="29"
+ column="9"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -12,4 +34,125 @@
column="13"/>
</issue>
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(androidx.ui.integration.test.R.layout.simple_store, null) as ViewGroup"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/ui/integration/test/view/AndroidNestedScrollViewTestCase.kt"
+ line="38"
+ column="74"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" android:layout_width="350px""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="9"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" android:layout_height="350px""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="10"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" android:textSize="60px"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="15"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" android:text="3.5 ★" android:textSize="40px"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="22"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" <View android:layout_width="40px""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="23"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" android:layout_height="40px""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="24"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" text.text = "Check Me!""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ui/integration/test/view/AndroidCheckboxesInLinearLayoutTestCase.kt"
+ line="52"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" text.text = "Hello World Hello World Hello W""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ui/integration/test/view/AndroidTextViewsInLinearLayoutTestCase.kt"
+ line="45"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Some title", should use `@string` resource"
+ errorLine1=" android:text="Some title""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="14"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "3.5 ★", should use `@string` resource"
+ errorLine1=" android:text="3.5 ★" android:textSize="40px"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/store_item.xml"
+ line="22"
+ column="19"/>
+ </issue>
+
</issues>
diff --git a/compose/internal-lint-checks/lint-baseline.xml b/compose/internal-lint-checks/lint-baseline.xml
new file mode 100644
index 0000000..097b21d
--- /dev/null
+++ b/compose/internal-lint-checks/lint-baseline.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = "Modifiers should include inspectorInfo for the Layout Inspector","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/lint/ModifierInspectorInfoDetector.kt"
+ line="655"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "The package name '$packageName' has been migrated to '$newPackageName', " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/compose/lint/PackageNameMigrationDetector.kt"
+ line="51"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" "Using an old package name that has recently been migrated to androidx.compose","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/lint/PackageNameMigrationDetector.kt"
+ line="92"
+ column="14"/>
+ </issue>
+
+</issues>
diff --git a/compose/runtime/runtime/lint-baseline.xml b/compose/runtime/runtime/lint-baseline.xml
new file mode 100644
index 0000000..76c954a
--- /dev/null
+++ b/compose/runtime/runtime/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="UnknownNullness"
+ message="Should explicitly declare type here since implicit type does not specify nullness"
+ errorLine1=" override fun removeAt(index: Int) = get(index).also { update { it.removeAt(index) } }"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotStateList.kt"
+ line="91"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="UnknownNullness"
+ message="Should explicitly declare type here since implicit type does not specify nullness"
+ errorLine1=" override fun set(index: Int, element: T) = get(index).also { update { it.set(index, element) } }"
+ errorLine2=" ~~~">
+ <location
+ file="src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotStateList.kt"
+ line="93"
+ column="18"/>
+ </issue>
+
+</issues>
diff --git a/compose/test-utils/lint-baseline.xml b/compose/test-utils/lint-baseline.xml
index e7b573b..4671ecc 100644
--- a/compose/test-utils/lint-baseline.xml
+++ b/compose/test-utils/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SuspiciousImport"
+ message="Don't include `android.R` here; use a fully qualified name for each usage instead"
+ errorLine1="import android.R"
+ errorLine2="~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/testutils/benchmark/android/AndroidTestCaseRunner.kt"
+ line="19"
+ column="1"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
diff --git a/compose/ui/ui-graphics/lint-baseline.xml b/compose/ui/ui-graphics/lint-baseline.xml
index 5bdf126..ada17b4 100644
--- a/compose/ui/ui-graphics/lint-baseline.xml
+++ b/compose/ui/ui-graphics/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/compose/ui/ui-test/lint-baseline.xml b/compose/ui/ui-test/lint-baseline.xml
index ad8b38c..b10225b 100644
--- a/compose/ui/ui-test/lint-baseline.xml
+++ b/compose/ui/ui-test/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="IllegalExperimentalApiUsage"
diff --git a/compose/ui/ui-text/lint-baseline.xml b/compose/ui/ui-text/lint-baseline.xml
index 27327af..44ad194 100644
--- a/compose/ui/ui-text/lint-baseline.xml
+++ b/compose/ui/ui-text/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/compose/ui/ui/integration-tests/ui-demos/lint-baseline.xml b/compose/ui/ui/integration-tests/ui-demos/lint-baseline.xml
index d20265e..a3129e5 100644
--- a/compose/ui/ui/integration-tests/ui-demos/lint-baseline.xml
+++ b/compose/ui/ui/integration-tests/ui-demos/lint-baseline.xml
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:viewportWidth="144" android:width="480dp" xmlns:android="http://schemas.android.com/apk/res/android">"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/ic_crane.xml"
+ line="18"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#ffffff` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="#ffffff""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/test_layout.xml"
+ line="22"
+ column="5"/>
+ </issue>
<issue
id="ModifierInspectorInfo"
@@ -12,4 +34,70 @@
column="5"/>
</issue>
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" text1.text = "Text updated""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/demos/viewinterop/ViewInterop.kt"
+ line="52"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" AndroidView({ context -> TextView(context).apply { text = "This is a TextView" } })"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/demos/viewinterop/ViewInterop.kt"
+ line="56"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" it.text = "This is a text in a TextView""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/demos/viewinterop/ViewInterop.kt"
+ line="65"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "This is text 1", should use `@string` resource"
+ errorLine1=" android:text="This is text 1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/test_layout.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "This is text 2", should use `@string` resource"
+ errorLine1=" android:text="This is text 2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/test_layout.xml"
+ line="33"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_alignParentRight` with `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/test_layout.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/compose/ui/ui/lint-baseline.xml b/compose/ui/ui/lint-baseline.xml
index d20c93e..aad399c 100644
--- a/compose/ui/ui/lint-baseline.xml
+++ b/compose/ui/ui/lint-baseline.xml
@@ -1,5 +1,368 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DiscouragedPrivateApi"
+ message="Reflective access to updateDisplayListIfDirty, which is not part of the public SDK and therefore likely to change in future Android releases"
+ errorLine1=" View::class.java.getDeclaredMethod("updateDisplayListIfDirty")"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/platform/ViewLayer.kt"
+ line="261"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 21): `android.view.accessibility.AccessibilityNodeInfo#EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX`"
+ errorLine1=" EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX, -1"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.kt"
+ line="928"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 21): `android.view.accessibility.AccessibilityNodeInfo#EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH`"
+ errorLine1=" EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH, -1"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.kt"
+ line="931"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 27 (current min is 21): `android.view.HapticFeedbackConstants#TEXT_HANDLE_MOVE`"
+ errorLine1=" view.performHapticFeedback(HapticFeedbackConstants.TEXT_HANDLE_MOVE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/hapticfeedback/AndroidHapticFeedback.kt"
+ line="35"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_NAVIGATE_PREVIOUS`"
+ errorLine1=" actual val NavigatePrevious = Key(KeyEvent.KEYCODE_NAVIGATE_PREVIOUS)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="34"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_NAVIGATE_NEXT`"
+ errorLine1=" actual val NavigateNext = Key(KeyEvent.KEYCODE_NAVIGATE_NEXT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="35"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_NAVIGATE_IN`"
+ errorLine1=" actual val NavigateIn = Key(KeyEvent.KEYCODE_NAVIGATE_IN)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="36"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_NAVIGATE_OUT`"
+ errorLine1=" actual val NavigateOut = Key(KeyEvent.KEYCODE_NAVIGATE_OUT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="37"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 25 (current min is 21): `android.view.KeyEvent#KEYCODE_SYSTEM_NAVIGATION_UP`"
+ errorLine1=" actual val SystemNavigationUp = Key(KeyEvent.KEYCODE_SYSTEM_NAVIGATION_UP)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="38"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 25 (current min is 21): `android.view.KeyEvent#KEYCODE_SYSTEM_NAVIGATION_DOWN`"
+ errorLine1=" actual val SystemNavigationDown = Key(KeyEvent.KEYCODE_SYSTEM_NAVIGATION_DOWN)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="39"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 25 (current min is 21): `android.view.KeyEvent#KEYCODE_SYSTEM_NAVIGATION_LEFT`"
+ errorLine1=" actual val SystemNavigationLeft = Key(KeyEvent.KEYCODE_SYSTEM_NAVIGATION_LEFT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="40"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 25 (current min is 21): `android.view.KeyEvent#KEYCODE_SYSTEM_NAVIGATION_RIGHT`"
+ errorLine1=" actual val SystemNavigationRight = Key(KeyEvent.KEYCODE_SYSTEM_NAVIGATION_RIGHT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="41"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_DPAD_UP_LEFT`"
+ errorLine1=" actual val DPadUpLeft = Key(KeyEvent.KEYCODE_DPAD_UP_LEFT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="49"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_DPAD_DOWN_LEFT`"
+ errorLine1=" actual val DPadDownLeft = Key(KeyEvent.KEYCODE_DPAD_DOWN_LEFT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="50"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_DPAD_UP_RIGHT`"
+ errorLine1=" actual val DPadUpRight = Key(KeyEvent.KEYCODE_DPAD_UP_RIGHT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="51"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_DPAD_DOWN_RIGHT`"
+ errorLine1=" actual val DPadDownRight = Key(KeyEvent.KEYCODE_DPAD_DOWN_RIGHT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="52"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_CUT`"
+ errorLine1=" actual val Cut = Key(KeyEvent.KEYCODE_CUT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="128"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_COPY`"
+ errorLine1=" actual val Copy = Key(KeyEvent.KEYCODE_COPY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="129"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_PASTE`"
+ errorLine1=" actual val Paste = Key(KeyEvent.KEYCODE_PASTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="130"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_MEDIA_SKIP_FORWARD`"
+ errorLine1=" actual val MediaSkipForward = Key(KeyEvent.KEYCODE_MEDIA_SKIP_FORWARD)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="227"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_MEDIA_SKIP_BACKWARD`"
+ errorLine1=" actual val MediaSkipBackward = Key(KeyEvent.KEYCODE_MEDIA_SKIP_BACKWARD)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="228"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_MEDIA_STEP_FORWARD`"
+ errorLine1=" actual val MediaStepForward = Key(KeyEvent.KEYCODE_MEDIA_STEP_FORWARD)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="229"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.view.KeyEvent#KEYCODE_MEDIA_STEP_BACKWARD`"
+ errorLine1=" actual val MediaStepBackward = Key(KeyEvent.KEYCODE_MEDIA_STEP_BACKWARD)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="230"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_SOFT_SLEEP`"
+ errorLine1=" actual val SoftSleep = Key(KeyEvent.KEYCODE_SOFT_SLEEP)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="276"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_STEM_PRIMARY`"
+ errorLine1=" actual val StemPrimary = Key(KeyEvent.KEYCODE_STEM_PRIMARY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="310"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_STEM_1`"
+ errorLine1=" actual val Stem1 = Key(KeyEvent.KEYCODE_STEM_1)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="311"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_STEM_2`"
+ errorLine1=" actual val Stem2 = Key(KeyEvent.KEYCODE_STEM_2)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="312"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `android.view.KeyEvent#KEYCODE_STEM_3`"
+ errorLine1=" actual val Stem3 = Key(KeyEvent.KEYCODE_STEM_3)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="313"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 21): `android.view.KeyEvent#KEYCODE_ALL_APPS`"
+ errorLine1=" actual val AllApps = Key(KeyEvent.KEYCODE_ALL_APPS)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="314"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 21): `android.view.KeyEvent#KEYCODE_REFRESH`"
+ errorLine1=" actual val Refresh = Key(KeyEvent.KEYCODE_REFRESH)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="315"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.view.KeyEvent#KEYCODE_THUMBS_UP`"
+ errorLine1=" actual val ThumbsUp = Key(KeyEvent.KEYCODE_THUMBS_UP)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="316"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.view.KeyEvent#KEYCODE_THUMBS_DOWN`"
+ errorLine1=" actual val ThumbsDown = Key(KeyEvent.KEYCODE_THUMBS_DOWN)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="317"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.view.KeyEvent#KEYCODE_PROFILE_SWITCH`"
+ errorLine1=" actual val ProfileSwitch = Key(KeyEvent.KEYCODE_PROFILE_SWITCH)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/input/key/Key.kt"
+ line="318"
+ column="40"/>
+ </issue>
<issue
id="BanTargetApiAnnotation"
@@ -288,6 +651,39 @@
</issue>
<issue
+ id="Recycle"
+ message="This `TypedArray` should be recycled after use with `#recycle()`"
+ errorLine1=" ) ?: res.obtainAttributes(attrs, AndroidVectorResources.STYLEABLE_VECTOR_DRAWABLE_CLIP_PATH)"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/graphics/vector/compat/XmlVectorParser.kt"
+ line="349"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `DialogLayout` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="private class DialogLayout("
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/window/AndroidDialog.kt"
+ line="116"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `ViewLayer` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="internal class ViewLayer("
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/platform/ViewLayer.kt"
+ line="40"
+ column="16"/>
+ </issue>
+
+ <issue
id="ModifierInspectorInfo"
message="Modifier missing inspectorInfo"
errorLine1=") = if (elevation > 0.dp || clip) {"
@@ -518,4 +914,37 @@
column="15"/>
</issue>
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `PopupLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" override fun onTouchEvent(event: MotionEvent?): Boolean {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/androidMain/kotlin/androidx/compose/ui/window/AndroidPopup.kt"
+ line="330"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/AndroidPointerInputTest.kt"
+ line="240"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidAndroidTest/kotlin/androidx/compose/ui/window/DialogUiTest.kt"
+ line="176"
+ column="5"/>
+ </issue>
+
</issues>
diff --git a/compose/ui/ui/samples/lint-baseline.xml b/compose/ui/ui/samples/lint-baseline.xml
new file mode 100644
index 0000000..f5e899b
--- /dev/null
+++ b/compose/ui/ui/samples/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" AndroidView({ context -> TextView(context).apply { text = "This is a TextView" } })"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/samples/AndroidViewSample.kt"
+ line="38"
+ column="64"/>
+ </issue>
+
+</issues>
diff --git a/concurrent/futures/lint-baseline.xml b/concurrent/futures/lint-baseline.xml
index d61f0dd..cd9cf2d 100644
--- a/concurrent/futures/lint-baseline.xml
+++ b/concurrent/futures/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/contentaccess/contentaccess-entities/lint-baseline.xml b/contentaccess/contentaccess-entities/lint-baseline.xml
new file mode 100644
index 0000000..cac8848
--- /dev/null
+++ b/contentaccess/contentaccess-entities/lint-baseline.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DATE_TAKEN`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.DATE_TAKEN)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="204"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_ID`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_ID)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="208"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_DISPLAY_NAME`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_DISPLAY_NAME)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="212"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#ORIENTATION`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.ORIENTATION)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="216"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DATE_TAKEN`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.DATE_TAKEN)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="403"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_ID`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_ID)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="407"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_DISPLAY_NAME`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_DISPLAY_NAME)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="411"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DURATION`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.DURATION)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="420"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DURATION`"
+ errorLine1=" @ContentColumn(android.provider.MediaStore.MediaColumns.DURATION)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
+ line="581"
+ column="24"/>
+ </issue>
+
+</issues>
diff --git a/contentaccess/integration-tests/testapp/lint-baseline.xml b/contentaccess/integration-tests/testapp/lint-baseline.xml
new file mode 100644
index 0000000..f4519bf
--- /dev/null
+++ b/contentaccess/integration-tests/testapp/lint-baseline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+</issues>
diff --git a/contentpager/contentpager/lint-baseline.xml b/contentpager/contentpager/lint-baseline.xml
index 8595188..1710352 100644
--- a/contentpager/contentpager/lint-baseline.xml
+++ b/contentpager/contentpager/lint-baseline.xml
@@ -1,5 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.content.ContentResolver#EXTRA_HONORED_ARGS`"
+ errorLine1=" public static final String EXTRA_HONORED_ARGS = ContentResolver.EXTRA_HONORED_ARGS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/contentpager/content/ContentPager.java"
+ line="180"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.content.ContentResolver#EXTRA_TOTAL_COUNT`"
+ errorLine1=" public static final String EXTRA_TOTAL_COUNT = ContentResolver.EXTRA_TOTAL_COUNT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/contentpager/content/ContentPager.java"
+ line="183"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.content.ContentResolver#QUERY_ARG_OFFSET`"
+ errorLine1=" public static final String QUERY_ARG_OFFSET = ContentResolver.QUERY_ARG_OFFSET;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/contentpager/content/ContentPager.java"
+ line="186"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.content.ContentResolver#QUERY_ARG_LIMIT`"
+ errorLine1=" public static final String QUERY_ARG_LIMIT = ContentResolver.QUERY_ARG_LIMIT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/contentpager/content/ContentPager.java"
+ line="189"
+ column="50"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -57,6 +101,17 @@
</issue>
<issue
+ id="StaticFieldLeak"
+ message="This `Loader` class should be static or leaks might occur (anonymous android.content.CursorLoader)"
+ errorLine1=" return new android.content.CursorLoader(mContext) {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/contentpager/content/LoaderQueryRunner.java"
+ line="61"
+ column="24"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public ContentPager(ContentResolver resolver, QueryRunner queryRunner) {"
diff --git a/coordinatorlayout/coordinatorlayout/lint-baseline.xml b/coordinatorlayout/coordinatorlayout/lint-baseline.xml
index 664ec78..6443904 100644
--- a/coordinatorlayout/coordinatorlayout/lint-baseline.xml
+++ b/coordinatorlayout/coordinatorlayout/lint-baseline.xml
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `EVENT_NESTED_SCROLL`, `EVENT_PRE_DRAW`"
+ errorLine1=" switch (type) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java"
+ line="1420"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `CoordinatorLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java"
+ line="585"
+ column="20"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/core/core-animation/lint-baseline.xml b/core/core-animation/lint-baseline.xml
index 4303df1..087bb1e 100644
--- a/core/core-animation/lint-baseline.xml
+++ b/core/core-animation/lint-baseline.xml
@@ -1,5 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.attr#fraction`"
+ errorLine1=" android.R.attr.valueType, android.R.attr.fraction"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="79"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#pathData`"
+ errorLine1=" android.R.attr.propertyName, android.R.attr.pathData,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="86"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#propertyXName`"
+ errorLine1=" android.R.attr.propertyXName, android.R.attr.propertyYName,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="87"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#propertyYName`"
+ errorLine1=" android.R.attr.propertyXName, android.R.attr.propertyYName,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="87"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#controlX1`"
+ errorLine1=" android.R.attr.controlX1, android.R.attr.controlY1,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="94"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#controlY1`"
+ errorLine1=" android.R.attr.controlX1, android.R.attr.controlY1,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="94"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#controlX2`"
+ errorLine1=" android.R.attr.controlX2, android.R.attr.controlY2,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="95"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#controlY2`"
+ errorLine1=" android.R.attr.controlX2, android.R.attr.controlY2,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="95"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#pathData`"
+ errorLine1=" android.R.attr.pathData"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/AndroidResources.java"
+ line="96"
+ column="13"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -90,6 +189,94 @@
</issue>
<issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" keyframes[0] = (IntKeyframe) Keyframe.ofInt(0f);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="73"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" keyframes[1] = (IntKeyframe) Keyframe.ofInt(1f, values[0]);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="74"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" keyframes[0] = (IntKeyframe) Keyframe.ofInt(0f, values[0]);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="76"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" (IntKeyframe) Keyframe.ofInt((float) i / (numKeyframes - 1), values[i]);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="79"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f);"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="90"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" keyframes[1] = (FloatKeyframe) Keyframe.ofFloat(1f, values[0]);"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="91"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f, values[0]);"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="96"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" Keyframe.ofFloat((float) i / (numKeyframes - 1), values[i]);"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/animation/KeyframeSet.java"
+ line="99"
+ column="34"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="The getter return type (`PropertyValuesHolder[]`) and setter parameter type (`PropertyValuesHolder...`) getter and setter methods for property `values` should have exactly the same type to allow be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public PropertyValuesHolder[] getValues() {"
diff --git a/core/core-appdigest/lint-baseline.xml b/core/core-appdigest/lint-baseline.xml
new file mode 100644
index 0000000..1241524
--- /dev/null
+++ b/core/core-appdigest/lint-baseline.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 1 instead"
+ errorLine1=" public static final int TYPE_WHOLE_MD5 = 0x00000002;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/appdigest/Checksum.java"
+ line="65"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 2 instead"
+ errorLine1=" public static final int TYPE_WHOLE_SHA1 = 0x00000004;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/appdigest/Checksum.java"
+ line="76"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 3 instead"
+ errorLine1=" public static final int TYPE_WHOLE_SHA256 = 0x00000008;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/appdigest/Checksum.java"
+ line="86"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 4 instead"
+ errorLine1=" public static final int TYPE_WHOLE_SHA512 = 0x00000010;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/appdigest/Checksum.java"
+ line="96"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 5 instead"
+ errorLine1=" public static final int TYPE_PARTIAL_MERKLE_ROOT_1M_SHA256 = 0x00000020;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/appdigest/Checksum.java"
+ line="105"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 6 instead"
+ errorLine1=" public static final int TYPE_PARTIAL_MERKLE_ROOT_1M_SHA512 = 0x00000040;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/appdigest/Checksum.java"
+ line="114"
+ column="66"/>
+ </issue>
+
+</issues>
diff --git a/core/core-ktx/lint-baseline.xml b/core/core-ktx/lint-baseline.xml
index 205b7fa..7f0d200 100644
--- a/core/core-ktx/lint-baseline.xml
+++ b/core/core-ktx/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/core/core/lint-baseline.xml b/core/core/lint-baseline.xml
index d97d370..7f2ea99 100644
--- a/core/core/lint-baseline.xml
+++ b/core/core/lint-baseline.xml
@@ -1,5 +1,1177 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" if (file.toLowerCase().endsWith(".xml")) {"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/res/ResourcesCompat.java"
+ line="445"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="DiscouragedPrivateApi"
+ message="Reflective access to getScaledScrollFactor, which is not part of the public SDK and therefore likely to change in future Android releases"
+ errorLine1=" ViewConfiguration.class.getDeclaredMethod("getScaledScrollFactor");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewConfigurationCompat.java"
+ line="42"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="DiscouragedPrivateApi"
+ message="Reflective access to getViewRootImpl, which is not part of the public SDK and therefore likely to change in future Android releases"
+ errorLine1=" sGetViewRootImplMethod = View.class.getDeclaredMethod("getViewRootImpl");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/WindowInsetsCompat.java"
+ line="1151"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "notification_background" in layout "notification_template_custom_big" is missing from the following layout configurations: layout (present in layout-v16, layout-v21)"
+ errorLine1=" android:id="@+id/notification_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="19"
+ column="5"/>
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "icon" in layout "notification_template_custom_big" is missing from the following layout configurations: layout-v21 (present in layout, layout-v16)"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="26"
+ column="16"/>
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="22"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "time" in layout "notification_template_custom_big" is missing from the following layout configurations: layout (present in layout-v16, layout-v21)"
+ errorLine1=" <ViewStub android:id="@+id/time""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="58"
+ column="27"/>
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="51"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "chronometer" in layout "notification_template_custom_big" is missing from the following layout configurations: layout (present in layout-v16, layout-v21)"
+ errorLine1=" <ViewStub android:id="@+id/chronometer""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="64"
+ column="27"/>
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="57"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "right_icon" in layout "notification_template_custom_big" is missing from the following layout configurations: layout-v21 (present in layout, layout-v16)"
+ errorLine1=" <ImageView android:id="@+id/right_icon""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="65"
+ column="24"/>
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="82"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "action_divider" in layout "notification_template_custom_big" is missing from the following layout configurations: layout (present in layout-v16, layout-v21)"
+ errorLine1=" android:id="@+id/action_divider""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="98"
+ column="13"/>
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="76"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "actions" in layout "notification_template_custom_big" is missing from the following layout configurations: layout (present in layout-v16, layout-v21)"
+ errorLine1=" android:id="@+id/actions""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="104"
+ column="13"/>
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="80"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "right_icon" in layout "notification_template_icon_group" is missing from the following layout configurations: layout (present in layout-v21)"
+ errorLine1=" <ImageView android:id="@+id/right_icon""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_template_icon_group.xml"
+ line="33"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionShowOnScreen`"
+ errorLine1=" android.R.id.accessibilityActionShowOnScreen, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="408"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionScrollToPosition`"
+ errorLine1=" : null, android.R.id.accessibilityActionScrollToPosition, null, null,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="425"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionScrollUp`"
+ errorLine1=" android.R.id.accessibilityActionScrollUp, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="434"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionScrollLeft`"
+ errorLine1=" android.R.id.accessibilityActionScrollLeft, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="441"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionScrollDown`"
+ errorLine1=" android.R.id.accessibilityActionScrollDown, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="449"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionScrollRight`"
+ errorLine1=" android.R.id.accessibilityActionScrollRight, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="457"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.R.id#accessibilityActionPageUp`"
+ errorLine1=" android.R.id.accessibilityActionPageUp, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="466"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.R.id#accessibilityActionPageDown`"
+ errorLine1=" android.R.id.accessibilityActionPageDown, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="475"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.R.id#accessibilityActionPageLeft`"
+ errorLine1=" android.R.id.accessibilityActionPageLeft, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="484"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.R.id#accessibilityActionPageRight`"
+ errorLine1=" android.R.id.accessibilityActionPageRight, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="493"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.R.id#accessibilityActionContextClick`"
+ errorLine1=" android.R.id.accessibilityActionContextClick, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="501"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.R.id#accessibilityActionSetProgress`"
+ errorLine1=" android.R.id.accessibilityActionSetProgress, null, null,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="516"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.R.id#accessibilityActionMoveWindow`"
+ errorLine1=" android.R.id.accessibilityActionMoveWindow, null, null,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="529"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.R.id#accessibilityActionShowTooltip`"
+ errorLine1=" android.R.id.accessibilityActionShowTooltip, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="538"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.R.id#accessibilityActionHideTooltip`"
+ errorLine1=" android.R.id.accessibilityActionHideTooltip, null, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="547"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.app.AppOpsManager#MODE_ALLOWED`"
+ errorLine1=" public static final int MODE_ALLOWED = AppOpsManager.MODE_ALLOWED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/AppOpsManagerCompat.java"
+ line="36"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.app.AppOpsManager#MODE_IGNORED`"
+ errorLine1=" public static final int MODE_IGNORED = AppOpsManager.MODE_IGNORED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/AppOpsManagerCompat.java"
+ line="43"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.app.AppOpsManager#MODE_ERRORED`"
+ errorLine1=" public static final int MODE_ERRORED = AppOpsManager.MODE_ERRORED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/AppOpsManagerCompat.java"
+ line="50"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.AppOpsManager#MODE_DEFAULT`"
+ errorLine1=" public static final int MODE_DEFAULT = AppOpsManager.MODE_DEFAULT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/AppOpsManagerCompat.java"
+ line="58"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.Manifest.permission#USE_FINGERPRINT`"
+ errorLine1=" @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/hardware/fingerprint/FingerprintManagerCompat.java"
+ line="64"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.Manifest.permission#USE_FINGERPRINT`"
+ errorLine1=" @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/hardware/fingerprint/FingerprintManagerCompat.java"
+ line="79"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.Manifest.permission#USE_FINGERPRINT`"
+ errorLine1=" @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/hardware/fingerprint/FingerprintManagerCompat.java"
+ line="103"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#TTC_INDEX`"
+ errorLine1=" public static final String TTC_INDEX = android.provider.FontsContract.Columns.TTC_INDEX;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="96"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#VARIATION_SETTINGS`"
+ errorLine1=" android.provider.FontsContract.Columns.VARIATION_SETTINGS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="103"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#WEIGHT`"
+ errorLine1=" public static final String WEIGHT = android.provider.FontsContract.Columns.WEIGHT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="110"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#ITALIC`"
+ errorLine1=" public static final String ITALIC = android.provider.FontsContract.Columns.ITALIC;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="116"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#RESULT_CODE`"
+ errorLine1=" public static final String RESULT_CODE = android.provider.FontsContract.Columns.RESULT_CODE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="125"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#RESULT_CODE_OK`"
+ errorLine1=" android.provider.FontsContract.Columns.RESULT_CODE_OK;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="133"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#RESULT_CODE_FONT_NOT_FOUND`"
+ errorLine1=" android.provider.FontsContract.Columns.RESULT_CODE_FONT_NOT_FOUND;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="138"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#RESULT_CODE_FONT_UNAVAILABLE`"
+ errorLine1=" android.provider.FontsContract.Columns.RESULT_CODE_FONT_UNAVAILABLE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="145"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.provider.FontsContract.Columns#RESULT_CODE_MALFORMED_QUERY`"
+ errorLine1=" android.provider.FontsContract.Columns.RESULT_CODE_MALFORMED_QUERY;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="151"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.graphics.drawable.Icon#TYPE_BITMAP`"
+ errorLine1=" public static final int TYPE_BITMAP = Icon.TYPE_BITMAP;"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="94"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.graphics.drawable.Icon#TYPE_RESOURCE`"
+ errorLine1=" public static final int TYPE_RESOURCE = Icon.TYPE_RESOURCE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="98"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.graphics.drawable.Icon#TYPE_DATA`"
+ errorLine1=" public static final int TYPE_DATA = Icon.TYPE_DATA;"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="102"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.graphics.drawable.Icon#TYPE_URI`"
+ errorLine1=" public static final int TYPE_URI = Icon.TYPE_URI;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="106"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.graphics.drawable.Icon#TYPE_ADAPTIVE_BITMAP`"
+ errorLine1=" public static final int TYPE_ADAPTIVE_BITMAP = Icon.TYPE_ADAPTIVE_BITMAP;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="110"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.content.pm.PackageManager#MATCH_UNINSTALLED_PACKAGES`"
+ errorLine1=" resPackage, PackageManager.MATCH_UNINSTALLED_PACKAGES);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="742"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.view.View#SCROLL_AXIS_NONE`"
+ errorLine1=" mNestedScrollAxesNonTouch = ViewGroup.SCROLL_AXIS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/NestedScrollingParentHelper.java"
+ line="115"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.view.View#SCROLL_AXIS_NONE`"
+ errorLine1=" mNestedScrollAxesTouch = ViewGroup.SCROLL_AXIS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/NestedScrollingParentHelper.java"
+ line="117"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.media.AudioManager#STREAM_ACCESSIBILITY`"
+ errorLine1=" AudioManager.STREAM_DTMF, AudioManager.STREAM_ACCESSIBILITY})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="597"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#VISIBILITY_PUBLIC`"
+ errorLine1=" public static final int VISIBILITY_PUBLIC = Notification.VISIBILITY_PUBLIC;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="611"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#VISIBILITY_PRIVATE`"
+ errorLine1=" public static final int VISIBILITY_PRIVATE = Notification.VISIBILITY_PRIVATE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="619"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#VISIBILITY_SECRET`"
+ errorLine1=" public static final int VISIBILITY_SECRET = Notification.VISIBILITY_SECRET;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="626"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_CALL`"
+ errorLine1=" public static final String CATEGORY_CALL = Notification.CATEGORY_CALL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="631"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.app.Notification#CATEGORY_NAVIGATION`"
+ errorLine1=" public static final String CATEGORY_NAVIGATION = Notification.CATEGORY_NAVIGATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="636"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_MESSAGE`"
+ errorLine1=" public static final String CATEGORY_MESSAGE = Notification.CATEGORY_MESSAGE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="641"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_EMAIL`"
+ errorLine1=" public static final String CATEGORY_EMAIL = Notification.CATEGORY_EMAIL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="646"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_EVENT`"
+ errorLine1=" public static final String CATEGORY_EVENT = Notification.CATEGORY_EVENT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="651"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_PROMO`"
+ errorLine1=" public static final String CATEGORY_PROMO = Notification.CATEGORY_PROMO;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="656"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_ALARM`"
+ errorLine1=" public static final String CATEGORY_ALARM = Notification.CATEGORY_ALARM;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="661"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_PROGRESS`"
+ errorLine1=" public static final String CATEGORY_PROGRESS = Notification.CATEGORY_PROGRESS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="666"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_SOCIAL`"
+ errorLine1=" public static final String CATEGORY_SOCIAL = Notification.CATEGORY_SOCIAL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="671"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_ERROR`"
+ errorLine1=" public static final String CATEGORY_ERROR = Notification.CATEGORY_ERROR;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="676"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_TRANSPORT`"
+ errorLine1=" public static final String CATEGORY_TRANSPORT = Notification.CATEGORY_TRANSPORT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="681"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_SYSTEM`"
+ errorLine1=" public static final String CATEGORY_SYSTEM = Notification.CATEGORY_SYSTEM;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="686"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_SERVICE`"
+ errorLine1=" public static final String CATEGORY_SERVICE = Notification.CATEGORY_SERVICE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="691"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.app.Notification#CATEGORY_REMINDER`"
+ errorLine1=" public static final String CATEGORY_REMINDER = Notification.CATEGORY_REMINDER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="696"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_RECOMMENDATION`"
+ errorLine1=" Notification.CATEGORY_RECOMMENDATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="704"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.app.Notification#CATEGORY_STATUS`"
+ errorLine1=" public static final String CATEGORY_STATUS = Notification.CATEGORY_STATUS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="709"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.app.Notification#BADGE_ICON_NONE`"
+ errorLine1=" public static final int BADGE_ICON_NONE = Notification.BADGE_ICON_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="734"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.app.Notification#BADGE_ICON_SMALL`"
+ errorLine1=" public static final int BADGE_ICON_SMALL = Notification.BADGE_ICON_SMALL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="740"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.app.Notification#BADGE_ICON_LARGE`"
+ errorLine1=" public static final int BADGE_ICON_LARGE = Notification.BADGE_ICON_LARGE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="746"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.app.Notification#GROUP_ALERT_ALL`"
+ errorLine1=" public static final int GROUP_ALERT_ALL = Notification.GROUP_ALERT_ALL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="759"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.app.Notification#GROUP_ALERT_SUMMARY`"
+ errorLine1=" public static final int GROUP_ALERT_SUMMARY = Notification.GROUP_ALERT_SUMMARY;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="772"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.app.Notification#GROUP_ALERT_CHILDREN`"
+ errorLine1=" public static final int GROUP_ALERT_CHILDREN = Notification.GROUP_ALERT_CHILDREN;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="784"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_PRIVILEGED`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_PRIVILEGED,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="51"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_SYSTEM`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_SYSTEM,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="52"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_DEVELOPMENT`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_DEVELOPMENT,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="53"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_APPOP`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_APPOP,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="54"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_PRE23`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_PRE23,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="55"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_INSTALLER`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_INSTALLER,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_VERIFIER`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_VERIFIER,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_PREINSTALLED`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_PREINSTALLED,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="58"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_SETUP`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_SETUP,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="59"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 27 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_INSTANT`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_INSTANT,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="60"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_FLAG_RUNTIME_ONLY`"
+ errorLine1=" PermissionInfo.PROTECTION_FLAG_RUNTIME_ONLY,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="61"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_MASK_BASE`"
+ errorLine1=" return permissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="77"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.content.pm.PermissionInfo#PROTECTION_MASK_BASE`"
+ errorLine1=" return permissionInfo.protectionLevel & ~PermissionInfo.PROTECTION_MASK_BASE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/PermissionInfoCompat.java"
+ line="91"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 25): `android.content.pm.ShortcutInfo#DISABLED_REASON_NOT_DISABLED`"
+ errorLine1=" ? ShortcutInfo.DISABLED_REASON_NOT_DISABLED"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
+ line="560"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 25): `android.content.pm.ShortcutInfo#DISABLED_REASON_UNKNOWN`"
+ errorLine1=" : ShortcutInfo.DISABLED_REASON_UNKNOWN;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
+ line="561"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.widget.TextView#AUTO_SIZE_TEXT_TYPE_NONE`"
+ errorLine1=" public static final int AUTO_SIZE_TEXT_TYPE_NONE = TextView.AUTO_SIZE_TEXT_TYPE_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/TextViewCompat.java"
+ line="84"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.widget.TextView#AUTO_SIZE_TEXT_TYPE_UNIFORM`"
+ errorLine1=" public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/TextViewCompat.java"
+ line="90"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 18): `android.view.View#TEXT_DIRECTION_FIRST_STRONG_LTR`"
+ errorLine1=" return TEXT_DIRECTION_FIRST_STRONG_LTR;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/TextViewCompat.java"
+ line="976"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 18): `android.view.View#TEXT_DIRECTION_FIRST_STRONG_RTL`"
+ errorLine1=" return TEXT_DIRECTION_FIRST_STRONG_RTL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/TextViewCompat.java"
+ line="978"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.accessibility.AccessibilityEvent#CONTENT_CHANGE_TYPE_PANE_TITLE`"
+ errorLine1=" CharSequence.class, AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_TITLE, 28) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="4087"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.view.accessibility.AccessibilityEvent#CONTENT_CHANGE_TYPE_UNDEFINED`"
+ errorLine1=" AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED, frameworkMinimumSdk);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="4197"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.view.accessibility.AccessibilityEvent#CONTENT_CHANGE_TYPE_PANE_APPEARED`"
+ errorLine1=" ? AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_APPEARED"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="4367"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.view.accessibility.AccessibilityEvent#CONTENT_CHANGE_TYPE_PANE_DISAPPEARED`"
+ errorLine1=" : AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_DISAPPEARED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="4368"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" Class.forName("com.android.internal.view.menu.MenuBuilder");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/TextViewCompat.java"
+ line="584"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" fontFamilyClass = Class.forName(FONT_FAMILY_CLASS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/TypefaceCompatApi21Impl.java"
+ line="78"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" fontFamilyClass = Class.forName(FONT_FAMILY_CLASS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/TypefaceCompatApi24Impl.java"
+ line="69"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" return Class.forName(FONT_FAMILY_CLASS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/TypefaceCompatApi26Impl.java"
+ line="316"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `appComponentFactory` is only used in API level 28 and higher (current min is 14)"
+ errorLine1=" android:appComponentFactory="androidx.core.app.CoreComponentFactory" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="18"
+ column="9"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -486,6 +1658,61 @@
</issue>
<issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> resolveInfos = mContext.getPackageManager().queryIntentServices("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationManagerCompat.java"
+ line="802"
+ column="75"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" for (ResolveInfo info : context.getPackageManager().queryBroadcastReceivers("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/content/pm/ShortcutManagerCompat.java"
+ line="144"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" target = nextIntent.resolveActivity(mSourceContext.getPackageManager());"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/TaskStackBuilder.java"
+ line="141"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" target = parent.resolveActivity(mSourceContext.getPackageManager());"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/TaskStackBuilder.java"
+ line="172"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" packageManager.queryIntentActivities(createProcessTextIntent(), 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/TextViewCompat.java"
+ line="636"
+ column="36"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 16, the call containing class androidx.core.view.AccessibilityDelegateCompat is not annotated with @RequiresApi(x) where x is at least 16. Either annotate the containing class with at least @RequiresApi(16) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(16)."
errorLine1=" Object provider = mOriginalDelegate.getAccessibilityNodeProvider(host);"
@@ -11992,6 +13219,728 @@
</issue>
<issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 1 instead"
+ errorLine1=" public static final int CONTENT_CHANGE_TYPE_TEXT = 0x00000002;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java"
+ line="160"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 2 instead"
+ errorLine1=" public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 0x00000004;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java"
+ line="166"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 6 instead"
+ errorLine1=" public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 0x00000040;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java"
+ line="197"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 1 instead"
+ errorLine1=" public static final int SCROLL_INDICATOR_BOTTOM = 0x2;"
+ errorLine2=" ~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="427"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 2 instead"
+ errorLine1=" public static final int SCROLL_INDICATOR_LEFT = 0x4;"
+ errorLine2=" ~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="436"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 3 instead"
+ errorLine1=" public static final int SCROLL_INDICATOR_RIGHT = 0x8;"
+ errorLine2=" ~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="445"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 4 instead"
+ errorLine1=" public static final int SCROLL_INDICATOR_START = 0x10;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="454"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 5 instead"
+ errorLine1=" public static final int SCROLL_INDICATOR_END = 0x20;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/core/view/ViewCompat.java"
+ line="463"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `FontFamilyResult.STATUS_OK`"
+ errorLine1=" switch (result.getStatusCode()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/provider/FontsContractCompat.java"
+ line="561"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `TYPE_ADAPTIVE_BITMAP`, `TYPE_BITMAP`, `TYPE_DATA`, `TYPE_UNKNOWN`"
+ errorLine1=" switch (getType(icon)) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="1034"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `TYPE_ADAPTIVE_BITMAP`, `TYPE_BITMAP`, `TYPE_DATA`, `TYPE_UNKNOWN`"
+ errorLine1=" switch (getType(icon)) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/graphics/drawable/IconCompat.java"
+ line="1062"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `Protocol.PlatformApi`, `Protocol.Unknown`"
+ errorLine1=" switch (protocol) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/inputmethod/InputConnectionCompat.java"
+ line="150"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `Type.CAPTION_BAR`, `Type.WINDOW_DECOR`"
+ errorLine1=" switch (type) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/WindowInsetsCompat.java"
+ line="944"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `Type.MANDATORY_SYSTEM_GESTURES`, `Type.SYSTEM_GESTURES`, `Type.TAPPABLE_ELEMENT`, `Type.WINDOW_DECOR`"
+ errorLine1=" switch (type) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/WindowInsetsCompat.java"
+ line="1033"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="PxUsage"
+ message="Avoid using "`px`" as units; use "`dp`" instead"
+ errorLine1=" android:layout_width="100px""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/custom_dialog.xml"
+ line="8"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (androidx.core.app.JobIntentService.CommandProcessor)"
+ errorLine1=" final class CommandProcessor extends android.os.AsyncTask<Void, Void, Void> {"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/JobIntentService.java"
+ line="382"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `SideChannelManager` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static SideChannelManager sSideChannelManager;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationManagerCompat.java"
+ line="114"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImplBase.GestureHandler)"
+ errorLine1=" private class GestureHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/GestureDetectorCompat.java"
+ line="102"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout-v21/notification_template_icon_group.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="32"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="32"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="40"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="43"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <inset xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable-v21/notification_action_background.xml"
+ line="21"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="IconDipSize"
+ message="The image `notify_panel_notification_icon_bg.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-hdpi/notify_panel_notification_icon_bg.png: 9x9 dp (14x14 px), drawable-mdpi/notify_panel_notification_icon_bg.png: 15x15 dp (15x15 px), drawable-xhdpi/notify_panel_notification_icon_bg.png: 15x15 dp (30x30 px)">
+ <location
+ file="src/main/res/drawable-hdpi/notify_panel_notification_icon_bg.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/notify_panel_notification_icon_bg.png"/>
+ <location
+ file="src/main/res/drawable-mdpi/notify_panel_notification_icon_bg.png"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/DragStartHelper.java"
+ line="190"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `NestedScrollView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/NestedScrollView.java"
+ line="827"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_action.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_action_tombstone.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action_tombstone.xml"
+ line="29"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/right_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="65"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_template_custom_big.xml"
+ line="73"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/right_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="82"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v16/notification_template_custom_big.xml"
+ line="95"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_icon_group.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_template_icon_group.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/right_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_template_icon_group.xml"
+ line="33"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string " Ok ", should use `@string` resource"
+ errorLine1=" android:text=" Ok " />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/custom_dialog.xml"
+ line="12"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_action.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_action.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action.xml"
+ line="39"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action_tombstone.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_action_tombstone.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action_tombstone.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v21/notification_action_tombstone.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action_tombstone.xml"
+ line="44"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="4dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_action_tombstone.xml"
+ line="45"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
+ errorLine1=" android:paddingRight="12dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
+ errorLine1=" android:paddingEnd="12dp">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="12dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="12dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="12dp">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="45"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" public static final int START = RELATIVE_LAYOUT_DIRECTION | Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/core/view/GravityCompat.java"
+ line="35"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" public static final int END = RELATIVE_LAYOUT_DIRECTION | Gravity.RIGHT;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/GravityCompat.java"
+ line="38"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (hgrav == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/core/widget/PopupWindowCompat.java"
+ line="74"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_marginEnd="5dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginRight="5dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/custom_dialog.xml"
+ line="10"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:paddingStart="12dp"` to better support right-to-left layouts"
+ errorLine1=" android:paddingLeft="12dp">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="45"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_marginStart="8dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="8dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_custom_big.xml"
+ line="69"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlEnabled"
+ message="The project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest">
+ <location
+ file="src/main/AndroidManifest.xml"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="The getter return type (`AccessibilityNodeInfoCompat`) and setter parameter type (`View`) getter and setter methods for property `parent` should have exactly the same type to allow be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public AccessibilityNodeInfoCompat getParent() {"
diff --git a/cursoradapter/cursoradapter/lint-baseline.xml b/cursoradapter/cursoradapter/lint-baseline.xml
index b95803b..19b2768 100644
--- a/cursoradapter/cursoradapter/lint-baseline.xml
+++ b/cursoradapter/cursoradapter/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/customview/customview/lint-baseline.xml b/customview/customview/lint-baseline.xml
index 147ca6c..d7e0aaa 100644
--- a/customview/customview/lint-baseline.xml
+++ b/customview/customview/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/datastore/datastore-sampleapp/lint-baseline.xml b/datastore/datastore-sampleapp/lint-baseline.xml
index 344e6a2..9c1e1c4 100644
--- a/datastore/datastore-sampleapp/lint-baseline.xml
+++ b/datastore/datastore-sampleapp/lint-baseline.xml
@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.fragment.lint.FragmentIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/0dacc848ffb6bae850db5f3c8bbdbe6e/fragment-1.2.4/jars/lint.jar"/>
+ </issue>
<issue
id="EnforceSampledAnnotation"
@@ -8,7 +15,7 @@
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt"
- line="53"
+ line="52"
column="18"/>
</issue>
@@ -19,7 +26,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt"
- line="70"
+ line="69"
column="17"/>
</issue>
@@ -30,7 +37,7 @@
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/com/example/datastoresampleapp/ProtoDataStoreActivity.kt"
- line="56"
+ line="55"
column="18"/>
</issue>
@@ -41,11 +48,33 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/com/example/datastoresampleapp/ProtoDataStoreActivity.kt"
- line="73"
+ line="72"
column="17"/>
</issue>
<issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/settings_fragment.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.layout.settings_fragment` appears to be unused"
errorLine1="<androidx.constraintlayout.widget.ConstraintLayout"
@@ -56,4 +85,48 @@
column="1"/>
</issue>
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Counter++", should use `@string` resource"
+ errorLine1=" android:text="Counter++""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="32"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Counter--", should use `@string` resource"
+ errorLine1=" android:text="Counter--""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="43"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Loading Counter", should use `@string` resource"
+ errorLine1=" android:text="Loading Counter""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="53"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/development/build_log_simplifier/messages.ignore b/development/build_log_simplifier/messages.ignore
index 5513fe1..499eb40 100644
--- a/development/build_log_simplifier/messages.ignore
+++ b/development/build_log_simplifier/messages.ignore
@@ -2,7 +2,6 @@
# Comments and blank lines are ignored.
# Before adding a suppression to this file, please attempt to suppress the output inside the generating tool instead.
# Messages that only sometimes appear in stdout/stderr should be exempted in message-flakes.ignore, because this file (messages.ignore) may be automatically garbage collected whereas that one will not be.
-
# > Task :docs-runner:dokkaJavaPublicDocs
(logging: loading modules: \[java\.se.*)|(.*No file found when processing Java @sample.*)
# > Task :contentaccess:integration-tests:testapp:kaptDebugAndroidTestKotlin
@@ -101,6 +100,7 @@
# > Task :compose:runtime:runtime:benchmark:processReleaseAndroidTestManifest
\$OUT_DIR/androidx/compose/runtime/runtime/benchmark/build/intermediates/tmp/manifest/androidTest/release/manifestMerger[0-9]+\.xml:[0-9]+:[0-9]+\-[0-9]+:[0-9]+ Warning:
# > Task :compose:material:material-icons-extended:processDebugAndroidTestManifest
+\[:compose:material:material\-icons\-extended\] \$OUT_DIR/androidx/compose/material/material\-icons\-extended/build/intermediates/merged_manifest/debug/AndroidManifest\.xml Warning:
\[:compose:material:material\-icons\-extended\] \$OUT_DIR/androidx/compose/material/material\-icons\-extended/build/intermediates/library_manifest/debug/AndroidManifest\.xml Warning:
Package name 'androidx\.compose\.material\.icons' used in: :compose:material:material\-icons\-extended, :compose:material:material\-icons\-core\.
# > Task :compose:ui:ui:compileKotlinMetadata
@@ -123,6 +123,21 @@
\$SUPPORT/benchmark/common/src/main/java/androidx/benchmark/simpleperf/RecordOptions\.java:[0-9]+: warning: \[JavaTimeDefaultTimeZone\] LocalDateTime\.now\(\) is not allowed because it silently uses the system default time\-zone\. You must pass an explicit time\-zone \(e\.g\., ZoneId\.of\("America/Los_Angeles"\)\) to this method\.
LocalDateTime time = LocalDateTime\.now\(\);
\^
+\$SUPPORT\/lint\-checks\/src\/main\/java\/androidx\/build\/lint\/BanInappropriateExperimentalUsage\.kt\:[0-9]+\: Warning\: \"RequiresOptIn\" looks like a code reference\; surround with backtics in string to display as symbol\, e\.g\. \`RequiresOptIn\` \[LintImplTextFormat\]
+\"\@RequiresOptIn and \@Experimental APIs are considered alpha\, and we do not allow \" \+
+\~\~\~\~\~\~\~\~\~\~\~\~\~
+Explanation for issues of type \"LintImplTextFormat\"\:
+Lint supports various markdown like formatting directives in all of its
+strings \(issue explanations\, reported error messages\, etc\)\.
+This lint check looks for strings that look like they may benefit from
+additional formatting\. For example\, if a snippet looks like code it should
+be surrounded with backticks\.
+Note\: Be careful changing existing strings\; this may stop baseline file
+matching from working\, so consider suppressing existing violations of this
+check if this is an error many users may be filtering in baselines\. \(This
+is only an issue for strings used in report calls\; for issue registration
+strings like summaries and explanations there\'s no risk changing the text
+contents\.\)
\$OUT_DIR\/androidx\/docs\-fake\/build\/tmp\/expandedArchives\/media[0-9]+\-player\-[0-9]+\.[0-9]+\.[0-9]+\-rc[0-9]+\-sources\.jar_[0-9a-f]{32}\/androidx\/media[0-9]+\/player\/ByteArrayFrame\.java\:[0-9]+\: error\: package androidx\.media[0-9]+\.exoplayer\.external\.util does not exist
\$OUT_DIR\/androidx\/docs\-fake\/build\/tmp\/expandedArchives\/media[0-9]+\-player\-[0-9]+\.[0-9]+\.[0-9]+\-rc[0-9]+\-sources\.jar_[0-9a-f]{32}\/androidx\/media[0-9]+\/player\/ByteArrayFrame\.java\:[0-9]+\: error\: package Metadata does not exist
\$OUT_DIR\/androidx\/docs\-fake\/build\/tmp\/expandedArchives\/media[0-9]+\-player\-[0-9]+\.[0-9]+\.[0-9]+\-rc[0-9]+\-sources\.jar_[0-9a-f]{32}\/androidx\/media[0-9]+\/player\/ExoPlayerWrapper\.java\:[0-9]+\: error\: package androidx\.media[0-9]+\.exoplayer\.external\.decoder does not exist
@@ -602,7 +617,8 @@
# > Task :appsearch:appsearch-compiler:lint
\$SUPPORT/appsearch/compiler/lint\-baseline\.xml: Information: [0-9]+ error was filtered out because it is listed in the baseline file, lint\-baseline\.xml
\[LintBaseline\]
-[0-9]+ errors, [0-9]+ warnings \([0-9]+ errors filtered by baseline lint\-baseline\.xml\)
+[0-9]+ errors, [0-9]+ warnings \([0-9]+ warnings filtered by baseline lint\-baseline\.xml\)
+[0-9]+ errors, [0-9]+ warnings \([0-9]+ warning filtered by baseline lint\-baseline\.xml\)
[0-9]+ errors, [0-9]+ warnings \([0-9]+ error filtered by baseline lint\-baseline\.xml\)
# > Task :slice-view:generateApi
src/main/java/androidx/slice/widget/ListContent\.java:[0-9]+: warning: Parameter of hidden type SliceContent in androidx\.slice\.widget\.ListContent\.getListHeight\(\) \[UnavailableSymbol\]
@@ -685,11 +701,15 @@
# b/166471969
.*androidTest.*AndroidManifest.*xml Warning.*:
Package name.*test' used in: .*AndroidManifest.*xml.*
+\[:internal\-testutils\-runtime\] \$OUT_DIR/androidx/internal\-testutils\-runtime/build/intermediates/merged_manifest/debug/AndroidManifest\.xml Warning:
# > Task :room:integration-tests:room-testapp-autovalue:compileDebugAndroidTestJavaWithJavac
Stream closed
-# > Task :compose:internal-lint-checks:lint
# > Task :leanback:leanback-paging:generateApi
w\: Runtime JAR files in the classpath have the version [0-9]+\.[0-9]+\, which is older than the API version [0-9]+\.[0-9]+\. Consider using the runtime of version [0-9]+\.[0-9]+\, or pass \'\-api\-version [0-9]+\.[0-9]+\' explicitly to restrict the available APIs to the runtime of version [0-9]+\.[0-9]+\. You can also pass \'\-language\-version [0-9]+\.[0-9]+\' instead\, which will restrict not only the APIs to the specified version\, but also the language features
+w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-stdlib\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
+w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-stdlib\-common\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
+w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-stdlib\-jdk[0-9]+\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
+w: \$GRADLE_USER_HOME/wrapper/dists/gradle\-[0-9]+\.[0-9]+\-bin/[^/]*/gradle\-[0-9]+\.[0-9]+/lib/kotlin\-reflect\-[0-9]+\.[0-9]+\.[0-9]+\.jar: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
w\: \$CHECKOUT\/prebuilts\/androidx\/external\/org\/jetbrains\/kotlin\/kotlin\-stdlib\/[0-9]+\.[0-9]+\.[0-9]+\/kotlin\-stdlib\-[0-9]+\.[0-9]+\.[0-9]+\.jar\: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
w\: \$CHECKOUT\/prebuilts\/androidx\/external\/org\/jetbrains\/kotlin\/kotlin\-stdlib\-common\/[0-9]+\.[0-9]+\.[0-9]+\/kotlin\-stdlib\-common\-[0-9]+\.[0-9]+\.[0-9]+\.jar\: Runtime JAR file has version [0-9]+\.[0-9]+ which is older than required for API version [0-9]+\.[0-9]+
# > Task :compose:material:material:icons:generator:zipHtmlResultsOfTest
@@ -750,6 +770,9 @@
More than one file was found with OS independent path '.*'\. This version of the Android Gradle Plugin chooses the file from the app or dynamic\-feature module, but this can cause unexpected behavior or errors at runtime\. Future versions of the Android Gradle Plugin will throw an error in this case\.
# > Task :docs-runner:dokkaJavaTipOfTreeDocs
\$CHECKOUT\/prebuilts\/androidx\/external\/org\/jetbrains\/kotlin\/kotlin\-reflect\/[0-9]+\.[0-9]+\.[0-9]+\/kotlin\-reflect\-[0-9]+\.[0-9]+\.[0-9]+\.jar \(version [0-9]+\.[0-9]+\)
+\$CHECKOUT/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin\-stdlib\-jdk[0-9]+/[0-9]+\.[0-9]+\.[0-9]+/kotlin\-stdlib\-jdk[0-9]+\-[0-9]+\.[0-9]+\.[0-9]+\.jar \(version [0-9]+\.[0-9]+\)
+\$CHECKOUT/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin\-stdlib/[0-9]+\.[0-9]+\.[0-9]+\-rc/kotlin\-stdlib\-[0-9]+\.[0-9]+\.[0-9]+\-rc\.jar \(version [0-9]+\.[0-9]+\)
+\$CHECKOUT/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin\-stdlib\-common/[0-9]+\.[0-9]+\.[0-9]+\-rc/kotlin\-stdlib\-common\-[0-9]+\.[0-9]+\.[0-9]+\-rc\.jar \(version [0-9]+\.[0-9]+\)
# > Task :benchmark:benchmark-common:mergeDebugAndroidTestJavaResource UP-TO-DATE
[0-9]+ actionable tasks: [0-9]+ up\-to\-date
# > Task :browser:browser:processDebugAndroidTestManifest
@@ -781,5 +804,140 @@
# > Task :docs-public:lintDebug
Wrote HTML report to file://\$OUT_DIR/androidx/docs\-public/build/reports/lint\-results\-debug\.html
Wrote XML report to file://\$OUT_DIR/androidx/docs\-public/build/reports/lint\-results\-debug\.xml
-# > Task :compose:compiler:compiler-hosted:lint
-\$SUPPORT/compose/compiler/compiler\-hosted/lint\-baseline\.xml: Information: [0-9]+ errors were filtered out because they are listed in the baseline file, lint\-baseline\.xml
+# > Task :internal-testutils-appcompat:processDebugAndroidTestManifest
+\[:internal\-testutils\-appcompat\] \$OUT_DIR/androidx/internal\-testutils\-appcompat/build/intermediates/merged_manifest/debug/AndroidManifest\.xml Warning:
+# > Task :support-wear-demos:packageDebugAndroidTest
+PackagingOptions\.jniLibs\.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest\.xml\.
+# > Task :camera:integration-tests:camera-testapp-camera2-pipe:dexBuilderDebug
+\$OUT_DIR/androidx/camera/integration\-tests/camera\-testapp\-camera[0-9]+\-pipe/build/intermediates/jacoco_instrumented_classes/debug/out/androidx/camera/integration/camera[0-9]+/pipe/DebugKt\.class: D[0-9]+: Invalid stack map table at [0-9]+: aload [0-9]+, error: The expected type Initialized\(double\) is not assignable to java\.lang\.Object\.
+# > Task :support-remotecallback-demos:lintDebug
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/annotation\-experimental\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.annotation\.experimental\.lint\.ExperimentalIssueRegistry\) which did not specify the Lint API version it was compiled with\.
+This means that the lint checks are likely not compatible\.
+If you are the author of this lint check, make your lint IssueRegistry class contain
+override val api: Int = com\.android\.tools\.lint\.detector\.api\.CURRENT_API
+or from Java,
+@Override public int getApi\(\) \{ return com\.android\.tools\.lint\.detector\.api\.ApiKt\.CURRENT_API; \}
+If you are just using lint checks from a third party library you have no control over, you can disable these lint checks \(if they misbehave\) like this:
+android \{
+lintOptions \{
+disable "UnsafeExperimentalUsageError",
+"UnsafeExperimentalUsageWarning"
+\}
+\[ObsoleteLintCustomCheck\]
+Explanation for issues of type "ObsoleteLintCustomCheck":
+Lint can be extended with "custom checks": additional checks implemented by
+developers and libraries to for example enforce specific API usages
+required by a library or a company coding style guideline\.
+The Lint APIs are not yet stable, so these checks may either cause a
+performance degradation, or stop working, or provide wrong results\.
+This warning flags custom lint checks that are found to be using obsolete
+APIs and will need to be updated to run in the current lint environment\.
+It may also flag issues found to be using a newer version of the API,
+meaning that you need to use a newer version of lint \(or Android Studio or
+Gradle plugin etc\) to work with these checks\.
+[0-9]+ errors\, [0-9]+ warnings \([0-9]+ errors\, [0-9]+ warning filtered by baseline lint\-baseline\.xml\)
+[0-9]+ errors\, [0-9]+ warnings \([0-9]+ errors filtered by baseline lint\-baseline\.xml\)
+[0-9]+ errors, [0-9]+ warnings \([0-9]+ errors, [0-9]+ warnings filtered by baseline lint\-baseline\.xml\)
+# > Task :camera:camera-camera2-pipe-integration:lintDebug
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/annotation\-experimental\-[0-9]+\.[0-9]+\.[0-9]+\-rc[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.annotation\.experimental\.lint\.ExperimentalIssueRegistry\) which did not specify the Lint API version it was compiled with\.
+[0-9]+ errors, [0-9]+ warnings
+# > Task :support-leanback-demos:lintDebug
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/appcompat\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.appcompat\.AppCompatIssueRegistry\) which is older than the current API level; these checks may not work correctly\.
+Recompile the checks against the latest version\. Custom check API version is [0-9]+ \([0-9]+\.[0-9]+\), current lint API level is [0-9]+ \([0-9]+\.[0-9]+\) \[ObsoleteLintCustomCheck\]
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/fragment\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.fragment\.lint\.FragmentIssueRegistry\) which is older than the current API level; these checks may not work correctly\.
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/lifecycle\-runtime\-ktx\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.lifecycle\.lint\.LifecycleRuntimeIssueRegistry\) which is older than the current API level; these checks may not work correctly\.
+# > Task :hilt:hilt-lifecycle-viewmodel:lintDebug
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/dagger\-lint\-aar\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(dagger\.lint\.DaggerIssueRegistry\) which is older than the current API level; these checks may not work correctly\.
+# > Task :hilt:hilt-work:lintDebug
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/work\-runtime\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.work\.lint\.WorkManagerIssueRegistry\) which is older than the current API level; these checks may not work correctly\.
+# > Task :lifecycle:lifecycle-livedata-core-ktx-lint:lint
+\$SUPPORT/lifecycle/lifecycle\-livedata\-core\-ktx\-lint/lint\-baseline\.xml: Information: [0-9]+ warning was filtered out because it is listed in the baseline file, lint\-baseline\.xml
+# > Task :lifecycle:lifecycle-runtime-ktx-lint:lint
+\$SUPPORT/lifecycle/lifecycle\-runtime\-ktx\-lint/lint\-baseline\.xml: Information: [0-9]+ warning was filtered out because it is listed in the baseline file, lint\-baseline\.xml
+# > Task :room:room-compiler-processing:lint
+\$SUPPORT/room/compiler\-processing/lint\-baseline\.xml: Information: [0-9]+ error was filtered out because it is listed in the baseline file, lint\-baseline\.xml
+# > Task :camera:integration-tests:camera-testapp-view:lintDebug
+\$GRADLE_USER_HOME/caches/transforms\-[0-9]+/files\-[0-9]+\.[0-9]+/[0-9a-f]{32}/fragment\-testing\-[0-9]+\.[0-9]+\.[0-9]+/jars/lint\.jar: Warning: Lint found an issue registry \(androidx\.fragment\.testing\.lint\.FragmentTestingIssueRegistry\) which is older than the current API level; these checks may not work correctly\.
+# > Task :camera:integration-tests:camera-testapp-uiwidgets:lintDebug
+[0-9]+ errors, [0-9]+ warnings \([0-9]+ error, [0-9]+ warnings filtered by baseline lint\-baseline\.xml\)
+# > Task :lint-checks:lint
+\$SUPPORT\/lint\-checks\/src\/main\/java\/androidx\/build\/lint\/BanInappropriateExperimentalUsage\.kt\:[0-9]+\: Warning\: \"OptIn\" looks like a code reference\; surround with backtics in string to display as symbol\, e\.g\. \`OptIn\` \[LintImplTextFormat\]
+\"Experimental\/OptIn APIs should only be used from within the same library or \" \+
+\~\~\~\~\~
+\$SUPPORT\/lint\-checks\/src\/main\/java\/androidx\/build\/lint\/BanInappropriateExperimentalUsage\.kt\:[0-9]+\: Warning\: The issue summary should be shorter\; typically just a [0-9]+\-[0-9]+ words\; it\'s used as a topic header in HTML reports and in the IDE inspections window \[LintImplTextFormat\]
+\"Experimental apis can only be used from within the same library or from libraries \" \+
+# > Task :compose:ui:ui-text:lintDebug
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/style\/FontSpan\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.fonts\.FontStyle\#FONT_WEIGHT_NORMAL \[InlinedApi\]
+textPaint\.typeface \= getTypeface\(FontStyle\.FONT_WEIGHT_NORMAL\, false\)
+\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/style\/FontSpan\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.fonts\.FontStyle\#FONT_WEIGHT_BOLD \[InlinedApi\]
+FontStyle\.FONT_WEIGHT_BOLD
+\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
+FontStyle\.FONT_WEIGHT_NORMAL
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/style\/FontWeightStyleSpan\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.fonts\.FontStyle\#FONT_WEIGHT_NORMAL \[InlinedApi\]
+oldTypeface\?\.weight \?\: FontStyle\.FONT_WEIGHT_NORMAL
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.text\.LineBreaker\#JUSTIFICATION_MODE_NONE \[InlinedApi\]
+const val JUSTIFICATION_MODE_NONE \= LineBreaker\.JUSTIFICATION_MODE_NONE
+\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.text\.LineBreaker\#JUSTIFICATION_MODE_INTER_WORD \[InlinedApi\]
+const val JUSTIFICATION_MODE_INTER_WORD \= LineBreaker\.JUSTIFICATION_MODE_INTER_WORD
+\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.text\.Layout\#HYPHENATION_FREQUENCY_NORMAL \[InlinedApi\]
+const val HYPHENATION_FREQUENCY_NORMAL \= Layout\.HYPHENATION_FREQUENCY_NORMAL
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.text\.Layout\#HYPHENATION_FREQUENCY_FULL \[InlinedApi\]
+const val HYPHENATION_FREQUENCY_FULL \= Layout\.HYPHENATION_FREQUENCY_FULL
+\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.text\.Layout\#HYPHENATION_FREQUENCY_NONE \[InlinedApi\]
+const val HYPHENATION_FREQUENCY_NONE \= Layout\.HYPHENATION_FREQUENCY_NONE
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.text\.LineBreaker\#BREAK_STRATEGY_SIMPLE \[InlinedApi\]
+const val BREAK_STRATEGY_SIMPLE \= LineBreaker\.BREAK_STRATEGY_SIMPLE
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.text\.LineBreaker\#BREAK_STRATEGY_HIGH_QUALITY \[InlinedApi\]
+const val BREAK_STRATEGY_HIGH_QUALITY \= LineBreaker\.BREAK_STRATEGY_HIGH_QUALITY
+\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
+\$SUPPORT\/text\/text\/src\/main\/java\/androidx\/compose\/ui\/text\/android\/LayoutCompat\.kt\:[0-9]+\: Warning\: Field requires API level [0-9]+ \(current min is [0-9]+\)\: android\.graphics\.text\.LineBreaker\#BREAK_STRATEGY_BALANCED \[InlinedApi\]
+const val BREAK_STRATEGY_BALANCED \= LineBreaker\.BREAK_STRATEGY_BALANCED
+Explanation for issues of type \"InlinedApi\"\:
+This check scans through all the Android API field references in the
+application and flags certain constants\, such as static final integers and
+Strings\, which were introduced in later versions\. These will actually be
+copied into the class files rather than being referenced\, which means that
+the value is available even when running on older devices\. In some cases
+that\'s fine\, and in other cases it can result in a runtime crash or
+incorrect behavior\. It depends on the context\, so consider the code
+carefully and decide whether it\'s safe and can be suppressed or whether the
+code needs to be guarded\.
+If you really want to use this API and don\'t need to support older devices
+just set the minSdkVersion in your build\.gradle or AndroidManifest\.xml
+files\.
+If your code is deliberately accessing newer APIs\, and you have ensured
+\(e\.g\. with conditional execution\) that this code will only ever be called
+on a supported platform\, then you can annotate your class or method with
+the \@TargetApi annotation specifying the local minimum SDK to apply\, such
+as \@TargetApi\([0-9]+\)\, such that this check considers [0-9]+ rather than your
+manifest file\'s minimum SDK as the required API level\.
+# > Task :camera:camera-video:lintDebug
+\$SUPPORT\/camera\/camera\-video\/src\/main\/java\/androidx\/camera\/video\/VideoCaptureLegacy\.java\:[0-9]+\: Warning\: Switch statement on an int with known associated constant missing case MediaCodec\.INFO_OUTPUT_BUFFERS_CHANGED \[SwitchIntDef\]
+switch \(outputBufferId\) \{
+\~\~\~\~\~\~
+Explanation for issues of type \"SwitchIntDef\"\:
+This check warns if a switch statement does not explicitly include all the
+values declared by the typedef \@IntDef declaration\.
+# > Task :camera:camera-core:lintDebug
+\$SUPPORT\/camera\/camera\-core\/src\/main\/java\/androidx\/camera\/core\/internal\/compat\/quirk\/IncompleteCameraListQuirk\.java\:[0-9]+\: Warning\: Implicitly using the default locale is a common source of bugs\: Use toLowerCase\(Locale\) instead\. For strings meant to be internal use Locale\.ROOT\, otherwise Locale\.getDefault\(\)\. \[DefaultLocale\]
+return KNOWN_AFFECTED_DEVICES\.contains\(Build\.DEVICE\.toLowerCase\(\)\)\;
+\~\~\~\~\~\~\~\~\~\~\~
+Explanation for issues of type \"DefaultLocale\"\:
+Calling String\#toLowerCase\(\) or \#toUpperCase\(\) without specifying an
+explicit locale is a common source of bugs\. The reason for that is that
+those methods will use the current locale on the user\'s device\, and even
+though the code appears to work correctly when you are developing the app\,
+it will fail in some locales\. For example\, in the Turkish locale\, the
+uppercase replacement for i is not I\.
+If you want the methods to just perform ASCII replacement\, for example to
+convert an enum name\, call String\#toUpperCase\(Locale\.US\) instead\. If you
+really want to use the current locale\, call
+String\#toUpperCase\(Locale\.getDefault\(\)\) instead\.
+https\:\/\/developer\.android\.com\/reference\/java\/util\/Locale\.html\#default_locale
+# > Task :car:app:app:lintDebug
+\$SUPPORT\/car\/app\/app\/src\/main\/java\/androidx\/car\/app\/model\/Action\.java\:[0-9]+\: Warning\: Switch statement on an int with known associated constant missing case TYPE_UNKNOWN \[SwitchIntDef\]
+switch \(type\) \{
\ No newline at end of file
diff --git a/documentfile/documentfile/lint-baseline.xml b/documentfile/documentfile/lint-baseline.xml
index b52accf8..dbd08a7 100644
--- a/documentfile/documentfile/lint-baseline.xml
+++ b/documentfile/documentfile/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" final String extension = name.substring(lastDot + 1).toLowerCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/documentfile/provider/RawDocumentFile.java"
+ line="158"
+ column="66"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/drawerlayout/drawerlayout/lint-baseline.xml b/drawerlayout/drawerlayout/lint-baseline.xml
index 48d5753..3602ca8 100644
--- a/drawerlayout/drawerlayout/lint-baseline.xml
+++ b/drawerlayout/drawerlayout/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#colorPrimaryDark`"
+ errorLine1=" android.R.attr.colorPrimaryDark"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="111"
+ column="13"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -13,6 +24,611 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `Gravity.NO_GRAVITY`"
+ errorLine1=" switch (edgeGravity) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="614"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `LOCK_MODE_UNDEFINED`, `LOCK_MODE_UNLOCKED`"
+ errorLine1=" switch (lockMode) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="634"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `Gravity.NO_GRAVITY`"
+ errorLine1=" switch (edgeGravity) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="689"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `DrawerLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1620"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" @IntDef(value = {Gravity.LEFT, Gravity.RIGHT, GravityCompat.START, GravityCompat.END,"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="160"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" @IntDef(value = {Gravity.LEFT, Gravity.RIGHT, GravityCompat.START, GravityCompat.END,"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="160"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" mLeftCallback = new ViewDragCallback(Gravity.LEFT);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="342"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" mRightCallback = new ViewDragCallback(Gravity.RIGHT);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="343"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if ((gravity & Gravity.LEFT) == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="474"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if ((gravity & Gravity.LEFT) == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="474"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if ((gravity & Gravity.RIGHT) == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="476"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if ((gravity & Gravity.RIGHT) == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="476"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" setDrawerLockMode(lockMode, Gravity.LEFT);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="587"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" setDrawerLockMode(lockMode, Gravity.RIGHT);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="588"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.LEFT:"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="615"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.RIGHT:"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="618"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" final ViewDragHelper helper = absGravity == Gravity.LEFT ? mLeftDragger : mRightDragger;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="631"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.LEFT:"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="690"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.RIGHT:"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="700"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (absGravity == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="764"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if (absGravity == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="766"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (absGravity == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="783"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if (absGravity == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="785"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT) ? dx : -dx);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1018"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if ((gravity & Gravity.LEFT) == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1049"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if ((gravity & Gravity.LEFT) == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1049"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if ((gravity & Gravity.RIGHT) == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1052"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if ((gravity & Gravity.RIGHT) == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1052"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (cgrav == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1122"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if (cgrav == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1126"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (cgrav == Gravity.LEFT) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1136"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" } else if (cgrav == Gravity.RIGHT) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1140"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" boolean isLeftEdgeDrawer = (childGravity == Gravity.LEFT);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1170"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1275"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(v, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1470"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" && checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1491"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" && checkDrawerViewAbsoluteGravity(child, Gravity.RIGHT)) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1502"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if ((absGravity & Gravity.LEFT) != 0) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1525"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if ((absGravity & Gravity.RIGHT) != 0) {"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1529"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1700"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1757"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="1832"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" setDrawerLockMode(ss.lockModeLeft, Gravity.LEFT);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2090"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" setDrawerLockMode(ss.lockModeRight, Gravity.RIGHT);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2093"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(changedView, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2260"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" final int otherGrav = mAbsGravity == Gravity.LEFT ? Gravity.RIGHT : Gravity.LEFT;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2280"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" final int otherGrav = mAbsGravity == Gravity.LEFT ? Gravity.RIGHT : Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2280"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" final int otherGrav = mAbsGravity == Gravity.LEFT ? Gravity.RIGHT : Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2280"
+ column="89"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(releasedChild, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2295"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" final boolean leftEdge = mAbsGravity == Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2315"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" toCapture = findDrawerWithGravity(Gravity.LEFT);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2317"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" toCapture = findDrawerWithGravity(Gravity.RIGHT);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2320"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" toCapture = findDrawerWithGravity(Gravity.LEFT);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2354"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" toCapture = findDrawerWithGravity(Gravity.RIGHT);"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2356"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" if (checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) {"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/drawerlayout/widget/DrawerLayout.java"
+ line="2371"
+ column="63"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onDrawerSlide(View drawerView, float slideOffset) {"
diff --git a/dynamic-animation/dynamic-animation/lint-baseline.xml b/dynamic-animation/dynamic-animation/lint-baseline.xml
index 81b5021..f6ca851 100644
--- a/dynamic-animation/dynamic-animation/lint-baseline.xml
+++ b/dynamic-animation/dynamic-animation/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/emoji/appcompat/lint-baseline.xml b/emoji/appcompat/lint-baseline.xml
index 54b755b..faf4636 100644
--- a/emoji/appcompat/lint-baseline.xml
+++ b/emoji/appcompat/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/emoji/core/lint-baseline.xml b/emoji/core/lint-baseline.xml
index 5ebe9a9..235eece 100644
--- a/emoji/core/lint-baseline.xml
+++ b/emoji/core/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="CheckResult"
+ message="The result of `process` is not used"
+ errorLine1=" EmojiCompat.get().process(text);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/emoji/widget/EmojiTextWatcher.java"
+ line="127"
+ column="17"/>
+ </issue>
<issue
id="PrivateConstructorForUtilityClass"
diff --git a/exifinterface/exifinterface/lint-baseline.xml b/exifinterface/exifinterface/lint-baseline.xml
index 99dbed9..17cec7c 100644
--- a/exifinterface/exifinterface/lint-baseline.xml
+++ b/exifinterface/exifinterface/lint-baseline.xml
@@ -1,5 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("%02d:%02d:%02d","
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="4143"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_EXIF_OFFSET`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_EXIF_OFFSET);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5889"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_EXIF_LENGTH`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_EXIF_LENGTH);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5891"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_HAS_IMAGE`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_HAS_IMAGE);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5893"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_IMAGE_WIDTH`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_IMAGE_WIDTH);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5906"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_IMAGE_HEIGHT`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_IMAGE_HEIGHT);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5908"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_IMAGE_ROTATION`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_IMAGE_ROTATION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5910"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 17 (current min is 14): `android.media.MediaMetadataRetriever#METADATA_KEY_VIDEO_ROTATION`"
+ errorLine1=" MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/exifinterface/media/ExifInterface.java"
+ line="5917"
+ column="25"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
diff --git a/fragment/fragment-lint/lint-baseline.xml b/fragment/fragment-lint/lint-baseline.xml
new file mode 100644
index 0000000..c7eb548
--- /dev/null
+++ b/fragment/fragment-lint/lint-baseline.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message=""<fragment>" looks like an XML reference; surround with backtics in string to display as symbol, e.g. \`<fragment>\`"
+ errorLine1=" "Replace the <fragment> tag with FragmentContainerView.","
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/lint/FragmentTagDetector.kt"
+ line="68"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "Replace the <fragment> tag with FragmentContainerView.","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/lint/FragmentTagDetector.kt"
+ line="68"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = "Use getViewLifecycleOwner() as the LifecycleOwner instead of " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt"
+ line="53"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""getViewLifecycleOwner()" looks like a call; surround with backtics in string to display as symbol, e.g. \`getViewLifecycleOwner()\`"
+ errorLine1=" getViewLifecycleOwner() should be used as the LifecycleOwner rather than the \"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt"
+ line="57"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = "Use getViewLifecycleOwner() as the LifecycleOwner instead of " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt"
+ line="71"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""getViewLifecycleOwner()" looks like a call; surround with backtics in string to display as symbol, e.g. \`getViewLifecycleOwner()\`"
+ errorLine1=" getViewLifecycleOwner() should be used as a LifecycleOwner rather than the \"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt"
+ line="76"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" "Use the 'require_____()' API rather than 'get____()' API for more " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/fragment/lint/UseRequireInsteadOfGet.kt"
+ line="58"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""requireNotNull()" looks like a call; surround with backtics in string to display as symbol, e.g. \`requireNotNull()\`"
+ errorLine1=" requireNotNull(), using these APIs will allow the underlying component to try \"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/lint/UseRequireInsteadOfGet.kt"
+ line="63"
+ column="13"/>
+ </issue>
+
+</issues>
diff --git a/fragment/fragment-lint/src/test/java/androidx/fragment/lint/ApiLintVersionsTest.kt b/fragment/fragment-lint/src/test/java/androidx/fragment/lint/ApiLintVersionsTest.kt
index 5d37dad..1843af7 100644
--- a/fragment/fragment-lint/src/test/java/androidx/fragment/lint/ApiLintVersionsTest.kt
+++ b/fragment/fragment-lint/src/test/java/androidx/fragment/lint/ApiLintVersionsTest.kt
@@ -16,6 +16,7 @@
package androidx.fragment.lint
+import com.android.tools.lint.client.api.LintClient
import com.android.tools.lint.detector.api.CURRENT_API
import com.google.common.truth.Truth.assertThat
import org.junit.Test
@@ -27,6 +28,8 @@
@Test
fun versionsCheck() {
+ LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
+
val registry = FragmentIssueRegistry()
// we hardcode version registry.api to the version that is used to run tests
assertThat(registry.api).isEqualTo(CURRENT_API)
diff --git a/fragment/fragment-testing-lint/lint-baseline.xml b/fragment/fragment-testing-lint/lint-baseline.xml
new file mode 100644
index 0000000..acd99b9
--- /dev/null
+++ b/fragment/fragment-testing-lint/lint-baseline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = "Include the fragment-testing library using the " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/fragment/testing/lint/GradleConfigurationDetector.kt"
+ line="36"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""FragmentScenario" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`FragmentScenario\`"
+ errorLine1=" explanation = """The fragment-testing library contains a FragmentScenario class that \"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/testing/lint/GradleConfigurationDetector.kt"
+ line="38"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""debugImplementation" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`debugImplementation\`"
+ errorLine1=" "Replace with debugImplementation.","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/testing/lint/GradleConfigurationDetector.kt"
+ line="70"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "Replace with debugImplementation.","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/testing/lint/GradleConfigurationDetector.kt"
+ line="70"
+ column="18"/>
+ </issue>
+
+</issues>
diff --git a/fragment/fragment-testing-lint/src/test/java/androidx/fragment/testing/lint/ApiLintVersionsTest.kt b/fragment/fragment-testing-lint/src/test/java/androidx/fragment/testing/lint/ApiLintVersionsTest.kt
index bfeb803..3b3e222 100644
--- a/fragment/fragment-testing-lint/src/test/java/androidx/fragment/testing/lint/ApiLintVersionsTest.kt
+++ b/fragment/fragment-testing-lint/src/test/java/androidx/fragment/testing/lint/ApiLintVersionsTest.kt
@@ -17,6 +17,7 @@
package androidx.fragment.lint
import androidx.fragment.testing.lint.FragmentTestingIssueRegistry
+import com.android.tools.lint.client.api.LintClient
import com.android.tools.lint.detector.api.CURRENT_API
import com.google.common.truth.Truth.assertThat
import org.junit.Test
@@ -28,6 +29,8 @@
@Test
fun versionsCheck() {
+ LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
+
val registry = FragmentTestingIssueRegistry()
// we hardcode version registry.api to the version that is used to run tests
assertThat(registry.api).isEqualTo(CURRENT_API)
diff --git a/fragment/fragment/lint-baseline.xml b/fragment/fragment/lint-baseline.xml
index 8526c0b..8c53cf5 100644
--- a/fragment/fragment/lint-baseline.xml
+++ b/fragment/fragment/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
@@ -78,4 +78,26 @@
column="28"/>
</issue>
+ <issue
+ id="ParcelClassLoader"
+ message="Using the default class loader will not work if you are restoring your own classes. Consider using for example `readBundle(getClass().getClassLoader())` instead."
+ errorLine1=" mArguments = in.readBundle();"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/app/FragmentState.java"
+ line="68"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="ParcelClassLoader"
+ message="Using the default class loader will not work if you are restoring your own classes. Consider using for example `readBundle(getClass().getClassLoader())` instead."
+ errorLine1=" mSavedFragmentState = in.readBundle();"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/fragment/app/FragmentState.java"
+ line="70"
+ column="34"/>
+ </issue>
+
</issues>
diff --git a/fragment/integration-tests/testapp/lint-baseline.xml b/fragment/integration-tests/testapp/lint-baseline.xml
index dc789257..bae2c6a 100644
--- a/fragment/integration-tests/testapp/lint-baseline.xml
+++ b/fragment/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanTargetApiAnnotation"
@@ -13,6 +13,17 @@
</issue>
<issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorAccent` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@color/colorAccent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_first.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.color.colorPrimary` appears to be unused"
errorLine1=" <color name="colorPrimary">#3F51B5</color>"
@@ -78,4 +89,136 @@
column="1"/>
</issue>
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/kittenFragmentTransitions/layout/kitten_activity_main.xml"
+ line="47"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "SWITCH!", should use `@string` resource"
+ errorLine1=" android:text="SWITCH!" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_activity_main.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button 1", should use `@string` resource"
+ errorLine1=" android:text="Button 1" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_first.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button 2", should use `@string` resource"
+ errorLine1=" android:text="Button 2" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_first.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button 3", should use `@string` resource"
+ errorLine1=" android:text="Button 3" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_first.xml"
+ line="41"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button 1", should use `@string` resource"
+ errorLine1=" android:text="Button 1" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_second.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button 2", should use `@string` resource"
+ errorLine1=" android:text="Button 2" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_second.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button 3", should use `@string` resource"
+ errorLine1=" android:text="Button 3" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/doubleTransitionBug/layout/double_transition_bug_fragment_second.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Replace", should use `@string` resource"
+ errorLine1=" android:text="Replace" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/kittenFragmentTransitions/layout/kitten_activity_main.xml"
+ line="37"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "add/show/hide", should use `@string` resource"
+ errorLine1=" android:text="add/show/hide" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/kittenFragmentTransitions/layout/kitten_activity_main.xml"
+ line="43"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="@dimen/screen_padding_sides""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/kittenFragmentTransitions/layout/kitten_activity_main.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="@dimen/screen_padding_sides">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layouts/kittenFragmentTransitions/layout/kitten_activity_main.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
</issues>
diff --git a/gridlayout/gridlayout/lint-baseline.xml b/gridlayout/gridlayout/lint-baseline.xml
index ee30517..64c6ce6 100644
--- a/gridlayout/gridlayout/lint-baseline.xml
+++ b/gridlayout/gridlayout/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/heifwriter/heifwriter/lint-baseline.xml b/heifwriter/heifwriter/lint-baseline.xml
index b26aa9e..20bfe46 100644
--- a/heifwriter/heifwriter/lint-baseline.xml
+++ b/heifwriter/heifwriter/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 28): `android.media.MediaFormat#KEY_MAX_PTS_GAP_TO_ENCODER`"
+ errorLine1=" codecFormat.setLong(MediaFormat.KEY_MAX_PTS_GAP_TO_ENCODER, -1000000);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/heifwriter/HeifEncoder.java"
+ line="306"
+ column="33"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
diff --git a/hilt/hilt-compiler/src/test/kotlin/androidx/hilt/work/WorkerGeneratorTest.kt b/hilt/hilt-compiler/src/test/kotlin/androidx/hilt/work/WorkerGeneratorTest.kt
index b7e8cdad..9d87edb 100644
--- a/hilt/hilt-compiler/src/test/kotlin/androidx/hilt/work/WorkerGeneratorTest.kt
+++ b/hilt/hilt-compiler/src/test/kotlin/androidx/hilt/work/WorkerGeneratorTest.kt
@@ -87,8 +87,8 @@
@Override
@NonNull
- public MyWorker create(Context arg0, WorkerParameters arg1) {
- return new MyWorker(arg0, arg1, s.get(), f.get(), l.get());
+ public MyWorker create(Context context, WorkerParameters parameters) {
+ return new MyWorker(context, parameters, s.get(), f.get(), l.get());
}
}
""".toJFO("androidx.hilt.work.test.MyWorker_AssistedFactory")
@@ -158,4 +158,4 @@
.hasSourceEquivalentTo(expected)
}
}
-}
\ No newline at end of file
+}
diff --git a/hilt/hilt-lifecycle-viewmodel/lint-baseline.xml b/hilt/hilt-lifecycle-viewmodel/lint-baseline.xml
new file mode 100644
index 0000000..4c4edaa
--- /dev/null
+++ b/hilt/hilt-lifecycle-viewmodel/lint-baseline.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`dagger.lint.DaggerIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/a7dba44eee3af19fac116246d58b5d15/dagger-lint-aar-2.29.1/jars/lint.jar"/>
+ </issue>
+
+</issues>
diff --git a/hilt/hilt-work/lint-baseline.xml b/hilt/hilt-work/lint-baseline.xml
new file mode 100644
index 0000000..736f124
--- /dev/null
+++ b/hilt/hilt-work/lint-baseline.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.work.lint.WorkManagerIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 3 (3.3), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/a31e1aca7ac5a5d5acc3bfa8c1982802/work-runtime-2.3.4/jars/lint.jar"/>
+ </issue>
+
+</issues>
diff --git a/hilt/integration-tests/viewmodelapp/lint-baseline.xml b/hilt/integration-tests/viewmodelapp/lint-baseline.xml
new file mode 100644
index 0000000..b29b133
--- /dev/null
+++ b/hilt/integration-tests/viewmodelapp/lint-baseline.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/debug/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/debug/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@android:color/background_light` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@android:color/background_light">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="22"
+ column="3"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/debug/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+</issues>
diff --git a/hilt/integration-tests/workerapp/lint-baseline.xml b/hilt/integration-tests/workerapp/lint-baseline.xml
new file mode 100644
index 0000000..4b979c6
--- /dev/null
+++ b/hilt/integration-tests/workerapp/lint-baseline.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@android:color/background_light` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@android:color/background_light">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Do Work!", should use `@string` resource"
+ errorLine1=" android:text="Do Work!"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+</issues>
diff --git a/inspection/inspection/lint-baseline.xml b/inspection/inspection/lint-baseline.xml
index bbe4d00..273c142 100644
--- a/inspection/inspection/lint-baseline.xml
+++ b/inspection/inspection/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/leanback/leanback-preference/lint-baseline.xml b/leanback/leanback-preference/lint-baseline.xml
index 96a39fa..1cb7827 100644
--- a/leanback/leanback-preference/lint-baseline.xml
+++ b/leanback/leanback-preference/lint-baseline.xml
@@ -1,5 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference_information.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference_widget_seekbar.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/windowBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/windowBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_edit_preference_fragment.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/windowBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/windowBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference_fragment.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference_information.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_edit_preference_fragment.xml"
+ line="50"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference.xml"
+ line="36"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_preference_widget_seekbar.xml"
+ line="30"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/leanback_edit_preference_fragment.xml"
+ line="50"
+ column="6"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/leanback/leanback-tab/lint-baseline.xml b/leanback/leanback-tab/lint-baseline.xml
new file mode 100644
index 0000000..ce8b5c9
--- /dev/null
+++ b/leanback/leanback-tab/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `LeanbackViewPager` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(@NonNull MotionEvent event) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/tab/LeanbackViewPager.java"
+ line="60"
+ column="20"/>
+ </issue>
+
+</issues>
diff --git a/leanback/leanback/lint-baseline.xml b/leanback/leanback/lint-baseline.xml
index 6d0b2b5..05b53f7 100644
--- a/leanback/leanback/lint-baseline.xml
+++ b/leanback/leanback/lint-baseline.xml
@@ -1,5 +1,533 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`BaseCardView`) and the declare-styleable (`lbBaseCardView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbBaseCardView,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/BaseCardView.java"
+ line="159"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the declare-styleable (`lbBaseCardView_Layout`) for a layout parameter class (`LayoutParams`) is expected to be the surrounding class (`BaseCardView`) plus "`_Layout`", e.g. `BaseCardView_Layout`. (Various editor features rely on this convention.)"
+ errorLine1=" TypedArray a = c.obtainStyledAttributes(attrs, R.styleable.lbBaseCardView_Layout);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/BaseCardView.java"
+ line="866"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`BaseGridView`) and the declare-styleable (`lbBaseGridView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbBaseGridView);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/BaseGridView.java"
+ line="285"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`DatePicker`) and the declare-styleable (`lbDatePicker`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" R.styleable.lbDatePicker);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/DatePicker.java"
+ line="78"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`HorizontalGridView`) and the declare-styleable (`lbHorizontalGridView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbHorizontalGridView);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/HorizontalGridView.java"
+ line="84"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`ImageCardView`) and the declare-styleable (`lbImageCardView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" R.styleable.lbImageCardView, defStyleAttr, defStyle);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/ImageCardView.java"
+ line="173"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`Picker`) and the declare-styleable (`lbPicker`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" attrs, R.styleable.lbPicker, defStyleAttr, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/Picker.java"
+ line="196"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`PinPicker`) and the declare-styleable (`lbPinPicker`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" attrs, R.styleable.lbPinPicker, defStyleAttr, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/PinPicker.java"
+ line="47"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`ResizingTextView`) and the declare-styleable (`lbResizingTextView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.lbResizingTextView,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/ResizingTextView.java"
+ line="58"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`SearchOrbView`) and the declare-styleable (`lbSearchOrbView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbSearchOrbView,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/SearchOrbView.java"
+ line="185"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`TimePicker`) and the declare-styleable (`lbTimePicker`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" R.styleable.lbTimePicker);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/TimePicker.java"
+ line="110"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="CustomViewStyleable"
+ message="By convention, the custom view (`VerticalGridView`) and the declare-styleable (`lbVerticalGridView`) should have the same name (various editor features rely on this convention)"
+ errorLine1=" TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbVerticalGridView);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/VerticalGridView.java"
+ line="60"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" String dateFieldsPattern = datePickerFormat.toUpperCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/DatePicker.java"
+ line="244"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" timeFieldsPattern = timeFieldsPattern.toUpperCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/TimePicker.java"
+ line="281"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 17): `android.view.View#AUTOFILL_TYPE_TEXT`"
+ errorLine1=" return AUTOFILL_TYPE_TEXT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/GuidedActionEditText.java"
+ line="133"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" private final DateFormat mDateFormat = new SimpleDateFormat(DATE_FORMAT);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/picker/DatePicker.java"
+ line="60"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:elevation="@dimen/lb_details_overview_z""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_details_overview.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:elevation="@dimen/lb_details_overview_z""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_fullwidth_details_overview.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:elevation="@dimen/lb_details_overview_z""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_fullwidth_details_overview_logo.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_root""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_list_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="39"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="43"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_sub_list_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="48"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedactions.xml"
+ line="58"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_root2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedbuttonactions.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedbuttonactions.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_list_background2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedbuttonactions.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedactions_content2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedbuttonactions.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedbuttonactions.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedbuttonactions.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="guidedstep_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_background.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="action_fragment_root""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="48"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="49"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="action_fragment_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="60"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `outlineProvider` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:outlineProvider="paddedBounds""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="62"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:elevation="?attr/guidedActionsElevation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="66"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionName` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionName="action_fragment""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="72"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="73"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:elevation="?attr/guidedActionsElevation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="77"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_headers_fragment.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:elevation="@dimen/lb_browse_headers_z""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_headers_fragment.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_fragment.xml"
+ line="21"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_fragment.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_fragment.xml"
+ line="32"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `transitionGroup` is only used in API level 21 and higher (current min is 17)"
+ errorLine1=" android:transitionGroup="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_title_view.xml"
+ line="41"
+ column="9"/>
+ </issue>
<issue
id="PrivateConstructorForUtilityClass"
@@ -13,6 +541,17 @@
</issue>
<issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" for (ResolveInfo info : pm.queryBroadcastReceivers(intent, 0)) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/system/Settings.java"
+ line="169"
+ column="36"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 19, the call containing class androidx.leanback.widget.BackgroundHelper is not annotated with @RequiresApi(x) where x is at least 19. Either annotate the containing class with at least @RequiresApi(19) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(19)."
errorLine1=" drawable.setAlpha(view.getBackground().getAlpha());"
@@ -904,6 +1443,577 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `PLAYBACK_SPEED_FAST_L4`, `PLAYBACK_SPEED_INVALID`, `PLAYBACK_SPEED_NORMAL`, `PLAYBACK_SPEED_PAUSED`"
+ errorLine1=" switch (mPlaybackSpeed) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/media/PlaybackBannerControlGlue.java"
+ line="407"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `PLAYBACK_SPEED_FAST_L0`, `PLAYBACK_SPEED_FAST_L1`, `PLAYBACK_SPEED_FAST_L2`, `PLAYBACK_SPEED_FAST_L3`, `PLAYBACK_SPEED_FAST_L4`, `PLAYBACK_SPEED_INVALID`, `PLAYBACK_SPEED_NORMAL`, `PLAYBACK_SPEED_PAUSED`"
+ errorLine1=" switch (mPlaybackSpeed) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/media/PlaybackBannerControlGlue.java"
+ line="423"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="Deprecated"
+ message="`android:editable` is deprecated: Use an `<EditText>` to make it editable"
+ errorLine1=" android:editable="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_search_bar.xml"
+ line="62"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="PluralsCandidate"
+ message="Formatting %d followed by words ("extra"): This should probably be a plural rather than a string"
+ errorLine1=" <string name="lb_media_player_error" msgid="3228326776757666747">"MediaPlayer error code %1$d extra %2$d"</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-en-rAU/strings.xml"
+ line="56"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="PluralsCandidate"
+ message="Formatting %d followed by words ("extra"): This should probably be a plural rather than a string"
+ errorLine1=" <string name="lb_media_player_error" msgid="3228326776757666747">"MediaPlayer error code %1$d extra %2$d"</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-en-rCA/strings.xml"
+ line="56"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="PluralsCandidate"
+ message="Formatting %d followed by words ("extra"): This should probably be a plural rather than a string"
+ errorLine1=" <string name="lb_media_player_error" msgid="3228326776757666747">"MediaPlayer error code %1$d extra %2$d"</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-en-rGB/strings.xml"
+ line="56"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="PluralsCandidate"
+ message="Formatting %d followed by words ("extra"): This should probably be a plural rather than a string"
+ errorLine1=" <string name="lb_media_player_error" msgid="3228326776757666747">"MediaPlayer error code %1$d extra %2$d"</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-en-rIN/strings.xml"
+ line="56"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="PluralsCandidate"
+ message="Formatting %d followed by words ("extra"): This should probably be a plural rather than a string"
+ errorLine1=" <string name="lb_media_player_error" msgid="3228326776757666747">"MediaPlayer error code %1$d extra %2$d"</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-en-rXC/strings.xml"
+ line="56"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="PluralsCandidate"
+ message="Formatting %d followed by words ("extra"): This should probably be a plural rather than a string"
+ errorLine1=" <string name="lb_media_player_error">MediaPlayer error code %1$d extra %2$d</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="96"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" mSortedAvailableViews.add(new ArrayList<>());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/NonOverlappingLinearLayout.java"
+ line="73"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" layoutAnimator = ValueAnimator.ofFloat(0f, 1f);"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/AbstractMediaItemPresenter.java"
+ line="643"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" AnimatorSet logoAnimator = new AnimatorSet();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/app/OnboardingFragment.java"
+ line="615"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" AnimatorSet logoAnimator = new AnimatorSet();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/app/OnboardingSupportFragment.java"
+ line="610"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" private final Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/leanback/app/PlaybackFragment.java"
+ line="304"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" private final Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/leanback/app/PlaybackSupportFragment.java"
+ line="300"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/listDivider` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/listDivider" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_divider.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?attr/guidedStepBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?attr/guidedStepBackground" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_background.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `FrameLayout` layout or its `FrameLayout` parent is possibly useless"
+ errorLine1=" <FrameLayout"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_details_overview.xml"
+ line="32"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is possibly useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_details_overview.xml"
+ line="41"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_error_fragment.xml"
+ line="29"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `FrameLayout` layout or its `FrameLayout` parent is possibly useless; transfer the `background` attribute to the other view"
+ errorLine1=" <FrameLayout"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_fullwidth_details_overview.xml"
+ line="31"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is useless; transfer the `background` attribute to the other view"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_fullwidth_details_overview.xml"
+ line="41"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is possibly useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_guidedstep_fragment.xml"
+ line="33"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `FrameLayout` layout or its `LinearLayout` parent is possibly useless"
+ errorLine1=" <FrameLayout"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_transport_controls.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-hdpi`: lb_card_shadow_focused.9.png, lb_card_shadow_normal.9.png, lb_ic_cc.png, lb_ic_fast_forward.png, lb_ic_fast_rewind.png... (24 more)">
+ <location
+ file="src/main/res/drawable-hdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-mdpi`: lb_card_shadow_focused.9.png, lb_card_shadow_normal.9.png, lb_ic_cc.png, lb_ic_fast_forward.png, lb_ic_fast_rewind.png... (24 more)">
+ <location
+ file="src/main/res/drawable-mdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: lb_card_shadow_focused.9.png, lb_card_shadow_normal.9.png, lb_ic_cc.png, lb_ic_fast_forward.png, lb_ic_fast_rewind.png... (24 more)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `GuidedActionEditText` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(@NonNull MotionEvent event) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/GuidedActionEditText.java"
+ line="160"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_control_button_primary.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_control_button_primary.xml"
+ line="30"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_control_button_secondary.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_control_button_secondary.xml"
+ line="30"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_details_overview.xml"
+ line="48"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_error_fragment.xml"
+ line="35"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_fullwidth_details_overview_logo.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_image_card_view.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_image_card_view_themed_badge_left.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_image_card_view_themed_badge_right.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_media_item_number_view_flipper.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_onboarding_fragment.xml"
+ line="31"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_onboarding_fragment.xml"
+ line="77"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_controls_row.xml"
+ line="40"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_now_playing_bars.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_now_playing_bars.xml"
+ line="31"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_now_playing_bars.xml"
+ line="40"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_transport_controls_row.xml"
+ line="44"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_row_media_item.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_row_media_item_action.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_search_bar.xml"
+ line="42"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_title_view.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" vh.mButton.setText(line1 + "\n" + line2);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/leanback/widget/ActionPresenterSelector.java"
+ line="131"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="RelativeOverlap"
+ message="`@id/current_time` can overlap `@id/secondary_controls_dock` if @id/current_time grows due to localized text expansion"
+ errorLine1=" <TextView"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_playback_transport_controls_row.xml"
+ line="105"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
+ errorLine1=" android:paddingEnd="50dp" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/lb_browse_fragment.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="This method should be called `getHasMediaRowSeparator` such that `hasMediaRowSeparator` can be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public boolean hasMediaRowSeparator() {"
diff --git a/legacy/core-utils/lint-baseline.xml b/legacy/core-utils/lint-baseline.xml
index 407d740..9ee0140 100644
--- a/legacy/core-utils/lint-baseline.xml
+++ b/legacy/core-utils/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/lifecycle/integration-tests/kotlintestapp/lint-baseline.xml b/lifecycle/integration-tests/kotlintestapp/lint-baseline.xml
new file mode 100644
index 0000000..4c4992b
--- /dev/null
+++ b/lifecycle/integration-tests/kotlintestapp/lint-baseline.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+</issues>
diff --git a/lifecycle/integration-tests/testapp/lint-baseline.xml b/lifecycle/integration-tests/testapp/lint-baseline.xml
index d4ff8dc..2408ea4 100644
--- a/lifecycle/integration-tests/testapp/lint-baseline.xml
+++ b/lifecycle/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnusedResources"
diff --git a/lifecycle/lifecycle-common/lint-baseline.xml b/lifecycle/lifecycle-common/lint-baseline.xml
index 6917259..f0e79d1 100644
--- a/lifecycle/lifecycle-common/lint-baseline.xml
+++ b/lifecycle/lifecycle-common/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="BanUncheckedReflection"
+ message="Calling Method.invoke without an SDK check"
+ errorLine1=" mMethod.invoke(target);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/lifecycle/ClassesInfoCache.java"
+ line="216"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="BanUncheckedReflection"
+ message="Calling Method.invoke without an SDK check"
+ errorLine1=" mMethod.invoke(target, source);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/lifecycle/ClassesInfoCache.java"
+ line="219"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="BanUncheckedReflection"
+ message="Calling Method.invoke without an SDK check"
+ errorLine1=" mMethod.invoke(target, source, event);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/lifecycle/ClassesInfoCache.java"
+ line="222"
+ column="25"/>
+ </issue>
<issue
id="LambdaLast"
diff --git a/lifecycle/lifecycle-extensions/lint-baseline.xml b/lifecycle/lifecycle-extensions/lint-baseline.xml
index 31eaa5d..46012b0 100644
--- a/lifecycle/lifecycle-extensions/lint-baseline.xml
+++ b/lifecycle/lifecycle-extensions/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="PrivateConstructorForUtilityClass"
diff --git a/lifecycle/lifecycle-livedata-core-ktx-lint/lint-baseline.xml b/lifecycle/lifecycle-livedata-core-ktx-lint/lint-baseline.xml
new file mode 100644
index 0000000..c24e9ea
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core-ktx-lint/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message=""LiveData" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`LiveData\`"
+ errorLine1=" explanation = """This check ensures that LiveData values are not null when explicitly \"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/lifecycle/lint/NonNullableMutableLiveDataDetector.kt"
+ line="59"
+ column="54"/>
+ </issue>
+
+</issues>
diff --git a/lifecycle/lifecycle-livedata-core/lint-baseline.xml b/lifecycle/lifecycle-livedata-core/lint-baseline.xml
index ed64b0a..3378404 100644
--- a/lifecycle/lifecycle-livedata-core/lint-baseline.xml
+++ b/lifecycle/lifecycle-livedata-core/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="RestrictedApi"
diff --git a/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml b/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml
index bc06ad2..1cad5378 100644
--- a/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml
+++ b/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/lifecycle/lifecycle-livedata/lint-baseline.xml b/lifecycle/lifecycle-livedata/lint-baseline.xml
index 7673309..d1e85b8 100644
--- a/lifecycle/lifecycle-livedata/lint-baseline.xml
+++ b/lifecycle/lifecycle-livedata/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="RestrictedApi"
diff --git a/lifecycle/lifecycle-process/lint-baseline.xml b/lifecycle/lifecycle-process/lint-baseline.xml
index 27e81c9..ff0253b 100644
--- a/lifecycle/lifecycle-process/lint-baseline.xml
+++ b/lifecycle/lifecycle-process/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/lifecycle/lifecycle-reactivestreams/lint-baseline.xml b/lifecycle/lifecycle-reactivestreams/lint-baseline.xml
index 63f8055..e2c2dca 100644
--- a/lifecycle/lifecycle-reactivestreams/lint-baseline.xml
+++ b/lifecycle/lifecycle-reactivestreams/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="RestrictedApi"
diff --git a/lifecycle/lifecycle-runtime-ktx-lint/lint-baseline.xml b/lifecycle/lifecycle-runtime-ktx-lint/lint-baseline.xml
new file mode 100644
index 0000000..671f69b
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-ktx-lint/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = "Unsafe UI operation in finally/catch of " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/lifecycle/lint/LifecycleWhenChecks.kt"
+ line="81"
+ column="32"/>
+ </issue>
+
+</issues>
diff --git a/lifecycle/lifecycle-runtime-ktx-lint/src/test/java/androidx/lifecycle/lint/ApiLintVersionsTest.kt b/lifecycle/lifecycle-runtime-ktx-lint/src/test/java/androidx/lifecycle/lint/ApiLintVersionsTest.kt
index 6ca53c4..07406d5 100644
--- a/lifecycle/lifecycle-runtime-ktx-lint/src/test/java/androidx/lifecycle/lint/ApiLintVersionsTest.kt
+++ b/lifecycle/lifecycle-runtime-ktx-lint/src/test/java/androidx/lifecycle/lint/ApiLintVersionsTest.kt
@@ -16,6 +16,7 @@
package androidx.lifecycle.lint
+import com.android.tools.lint.client.api.LintClient
import com.android.tools.lint.detector.api.CURRENT_API
import org.junit.Assert
import org.junit.Test
@@ -27,6 +28,8 @@
@Test
fun versionsCheck() {
+ LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
+
val registry = LifecycleRuntimeIssueRegistry()
// we hardcode version registry.api to the version that is used to run tests
Assert.assertEquals(CURRENT_API, registry.api)
@@ -34,4 +37,4 @@
// studio and command line
Assert.assertEquals(3, registry.minApi)
}
-}
\ No newline at end of file
+}
diff --git a/lifecycle/lifecycle-runtime/lint-baseline.xml b/lifecycle/lifecycle-runtime/lint-baseline.xml
index 4da5f56..f49d07b 100644
--- a/lifecycle/lifecycle-runtime/lint-baseline.xml
+++ b/lifecycle/lifecycle-runtime/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="RestrictedApi"
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml b/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml
index 0576d40..5a2d1b1 100644
--- a/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml
+++ b/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="LambdaLast"
diff --git a/lint-checks/lint-baseline.xml b/lint-checks/lint-baseline.xml
new file mode 100644
index 0000000..65cbbd6
--- /dev/null
+++ b/lint-checks/lint-baseline.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "Detected " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/BanConcurrentHashMap.kt"
+ line="51"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""ConcurrentHashMap" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`ConcurrentHashMap\`"
+ errorLine1=" "ConcurrentHashMap usage.""
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanConcurrentHashMap.kt"
+ line="52"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "Detected " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/BanConcurrentHashMap.kt"
+ line="72"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""ConcurrentHashMap" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`ConcurrentHashMap\`"
+ errorLine1=" "ConcurrentHashMap usage.""
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanConcurrentHashMap.kt"
+ line="73"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""ConcurrentHashMap" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`ConcurrentHashMap\`"
+ errorLine1=" "ConcurrentHashMap has an issue on Android’s Lollipop release that can lead to lost" +"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanConcurrentHashMap.kt"
+ line="84"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""VersionedParcelable" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`VersionedParcelable\`"
+ errorLine1=" " please use VersionedParcelable instead.","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanParcelableUsage.kt"
+ line="63"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""TargetApi" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`TargetApi\`"
+ errorLine1=" "Uses @TargetApi annotation""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanTargetApiAnnotation.kt"
+ line="43"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""TargetApi" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`TargetApi\`"
+ errorLine1=" "Use of @TargetApi annotation is not allowed, please consider " +"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanTargetApiAnnotation.kt"
+ line="53"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""isAtLeast" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`isAtLeast\`"
+ errorLine1=" "methods such as isAtLeastP etc...)" +"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/BanUncheckedReflection.kt"
+ line="60"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "Detected " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/MetadataTagInsideApplicationTagDetector.kt"
+ line="40"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""<application>" looks like an XML reference; surround with backtics in string to display as symbol, e.g. \`<application>\`"
+ errorLine1=" "<application>-level meta-data tag.""
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/MetadataTagInsideApplicationTagDetector.kt"
+ line="41"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" "Detected <application>-level <meta-data> tag in library manifest","
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/MetadataTagInsideApplicationTagDetector.kt"
+ line="49"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""<application>-level <meta-data> tags to library manifests because doing so may inadvertently cause denial-of-service attacks against other apps. Instead, developers may consider adding <metadata> nested inside of placeholder <service>" looks like an XML reference; surround with backtics in string to display as symbol, e.g. \`<application>-level <meta-data> tags to library manifests because doing so may inadvertently cause denial-of-service attacks against other apps. Instead, developers may consider adding <metadata> nested inside of placeholder <service>\`"
+ errorLine1=" "Developers should not add <application>-level <meta-data> tags to library manifests" +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/MetadataTagInsideApplicationTagDetector.kt"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""BuildCompat" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`BuildCompat\`"
+ errorLine1=" "Using deprecated BuildCompat methods", fix"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/ObsoleteBuildCompatUsageDetector.kt"
+ line="58"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""BuildConfig" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`BuildConfig\`"
+ errorLine1=" "BuildConfig methods should only be used prior to an API level's finalization. " +"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/ObsoleteBuildCompatUsageDetector.kt"
+ line="66"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "${function.name} is annotated with @$SAMPLED_ANNOTATION" +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/SampledAnnotationEnforcer.kt"
+ line="348"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" "${function.name} is annotated with @$SAMPLED_ANNOTATION, but is not " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/SampledAnnotationEnforcer.kt"
+ line="364"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""SmallTest" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`SmallTest\`"
+ errorLine1=" "\nYou must use at least one of: @SmallTest, @MediumTest or @LargeTest." +"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/TestSizeAnnotationEnforcer.kt"
+ line="199"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""RequiresApi(x) where x is at least . Either annotate the containing class with at least @RequiresApi() or move the call to a static method in a wrapper class annotated with at least @RequiresApi()" looks like a call; surround with backtics in string to display as symbol, e.g. \`RequiresApi(x) where x is at least . Either annotate the containing class with at least @RequiresApi() or move the call to a static method in a wrapper class annotated with at least @RequiresApi()\`"
+ errorLine1=" "This call is to a method from API $api, the call containing " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/UnsafeNewApiCallsDetector.kt"
+ line="361"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" "Calling method with API level higher than minSdk outside a " +"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/build/lint/UnsafeNewApiCallsDetector.kt"
+ line="460"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""<methods>" looks like an XML reference; surround with backtics in string to display as symbol, e.g. \`<methods>\`"
+ errorLine1=" <methods>;"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/build/lint/UnsafeNewApiCallsDetector.kt"
+ line="494"
+ column="19"/>
+ </issue>
+
+</issues>
diff --git a/lint-demos/lint-demo-appcompat/lint-baseline.xml b/lint-demos/lint-demo-appcompat/lint-baseline.xml
index 12cd698..11f6683 100644
--- a/lint-demos/lint-demo-appcompat/lint-baseline.xml
+++ b/lint-demos/lint-demo-appcompat/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
@@ -90,6 +90,39 @@
</issue>
<issue
+ id="UseSwitchCompatOrMaterialCode"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1=" Switch mySwitch = new Switch(this);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemo.java"
+ line="68"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialCode"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1="public class CustomSwitch extends Switch {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/CustomSwitch.java"
+ line="27"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialXml"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1=" <Switch"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/core_switch.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
id="UseAndroidAlpha"
message="Must use `android:alpha` if `app:alpha` is used"
errorLine1=" <item app:alpha="?android:disabledAlpha""
@@ -123,6 +156,116 @@
</issue>
<issue
+ id="UseCompatLoadingForColorStateLists"
+ message="Use `AppCompatResources.getColorStateList()`"
+ errorLine1=" getResources().getColorStateList(R.color.color_state_list_missing_android_alpha);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemo.java"
+ line="49"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `ResourcesCompat.getDrawable()`"
+ errorLine1=" Drawable dr = getResources().getDrawable(R.drawable.app_sample_code);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemo.java"
+ line="58"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="UseCompatTextViewDrawableApis"
+ message="Use `TextViewCompat.setCompoundDrawableTintList()`"
+ errorLine1=" noop.setCompoundDrawableTintList(csl);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemo.java"
+ line="63"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseCompatTextViewDrawableApis"
+ message="Use `TextViewCompat.setCompoundDrawableTintMode()`"
+ errorLine1=" noop.setCompoundDrawableTintMode(PorterDuff.Mode.DST);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemo.java"
+ line="64"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseCompatTextViewDrawableXml"
+ message="Use `app:drawableStartCompat` instead of `android:drawableStart`"
+ errorLine1=" android:drawableStart="@drawable/app_sample_code""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v23/text_view_using_android_compound_drawables.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UseCompatTextViewDrawableXml"
+ message="Use `app:drawableTint` instead of `android:drawableTint`"
+ errorLine1=" android:drawableTint="@color/custom""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v23/text_view_using_android_compound_drawables.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UseCompatTextViewDrawableXml"
+ message="Use `app:drawableTintMode` instead of `android:drawableTintMode`"
+ errorLine1=" android:drawableTintMode="src_in" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v23/text_view_using_android_compound_drawables.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UseSupportActionBar"
+ message="Use `AppCompatActivity.setSupportActionBar`"
+ errorLine1=" setActionBar(new Toolbar(this));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemo.java"
+ line="73"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseSupportActionBar"
+ message="Use `AppCompatActivity.setSupportActionBar`"
+ errorLine1=" setActionBar(new Toolbar(this));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/appcompat/AppCompatLintDemoExt.java"
+ line="33"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="myButtonClick""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/view_with_click.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.layout.core_switch` appears to be unused"
errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
diff --git a/media/media/lint-baseline.xml b/media/media/lint-baseline.xml
index 142e1b9..39093e4 100644
--- a/media/media/lint-baseline.xml
+++ b/media/media/lint-baseline.xml
@@ -1,5 +1,324 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" .append(Integer.toHexString(mFlags).toUpperCase());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesImplBase.java"
+ line="179"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#CONTENT_TYPE_UNKNOWN`"
+ errorLine1=" public static final int CONTENT_TYPE_UNKNOWN = AudioAttributes.CONTENT_TYPE_UNKNOWN;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="74"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#CONTENT_TYPE_SPEECH`"
+ errorLine1=" public static final int CONTENT_TYPE_SPEECH = AudioAttributes.CONTENT_TYPE_SPEECH;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="76"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#CONTENT_TYPE_MUSIC`"
+ errorLine1=" public static final int CONTENT_TYPE_MUSIC = AudioAttributes.CONTENT_TYPE_MUSIC;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="78"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#CONTENT_TYPE_MOVIE`"
+ errorLine1=" public static final int CONTENT_TYPE_MOVIE = AudioAttributes.CONTENT_TYPE_MOVIE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="83"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#CONTENT_TYPE_SONIFICATION`"
+ errorLine1=" public static final int CONTENT_TYPE_SONIFICATION = AudioAttributes.CONTENT_TYPE_SONIFICATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="90"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_UNKNOWN`"
+ errorLine1=" public static final int USAGE_UNKNOWN = AudioAttributes.USAGE_UNKNOWN;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="93"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_MEDIA`"
+ errorLine1=" public static final int USAGE_MEDIA = AudioAttributes.USAGE_MEDIA;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="95"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_VOICE_COMMUNICATION`"
+ errorLine1=" public static final int USAGE_VOICE_COMMUNICATION = AudioAttributes.USAGE_VOICE_COMMUNICATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="97"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_VOICE_COMMUNICATION_SIGNALLING`"
+ errorLine1=" AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="103"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_ALARM`"
+ errorLine1=" public static final int USAGE_ALARM = AudioAttributes.USAGE_ALARM;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="105"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_NOTIFICATION`"
+ errorLine1=" public static final int USAGE_NOTIFICATION = AudioAttributes.USAGE_NOTIFICATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="110"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_NOTIFICATION_RINGTONE`"
+ errorLine1=" AudioAttributes.USAGE_NOTIFICATION_RINGTONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="113"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_NOTIFICATION_COMMUNICATION_REQUEST`"
+ errorLine1=" AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="119"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_NOTIFICATION_COMMUNICATION_INSTANT`"
+ errorLine1=" AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="125"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_NOTIFICATION_COMMUNICATION_DELAYED`"
+ errorLine1=" AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_DELAYED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="131"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_NOTIFICATION_EVENT`"
+ errorLine1=" public static final int USAGE_NOTIFICATION_EVENT = AudioAttributes.USAGE_NOTIFICATION_EVENT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="136"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_ASSISTANCE_ACCESSIBILITY`"
+ errorLine1=" AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="139"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_ASSISTANCE_NAVIGATION_GUIDANCE`"
+ errorLine1=" AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="142"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_ASSISTANCE_SONIFICATION`"
+ errorLine1=" AudioAttributes.USAGE_ASSISTANCE_SONIFICATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="145"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.AudioAttributes#USAGE_GAME`"
+ errorLine1=" public static final int USAGE_GAME = AudioAttributes.USAGE_GAME;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="147"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 14): `android.media.AudioAttributes#USAGE_ASSISTANT`"
+ errorLine1=" public static final int USAGE_ASSISTANT = AudioAttributes.USAGE_ASSISTANT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesCompat.java"
+ line="155"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.media.AudioManager#AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE`"
+ errorLine1=" AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioManagerCompat.java"
+ line="68"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="ltr""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media.xml"
+ line="50"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="ltr""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_custom.xml"
+ line="97"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="ltr""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow.xml"
+ line="56"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="ltr""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow_custom.xml"
+ line="103"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="ltr""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 14)"
+ errorLine1=" android:layoutDirection="ltr""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="87"
+ column="9"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -1124,6 +1443,336 @@
</issue>
<issue
+ id="ParcelClassLoader"
+ message="Passing null here (to use the default class loader) will not work if you are restoring your own classes. Consider using for example `getClass().getClassLoader()` instead."
+ errorLine1=" inner = in.readParcelable(null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
+ line="2120"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `AudioAttributesCompat.USAGE_ALARM`, `AudioAttributesCompat.USAGE_ASSISTANCE_ACCESSIBILITY`, `AudioAttributesCompat.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE`, `AudioAttributesCompat.USAGE_ASSISTANCE_SONIFICATION`, `AudioAttributesCompat.USAGE_ASSISTANT`, `AudioAttributesCompat.USAGE_GAME`, `AudioAttributesCompat.USAGE_MEDIA`, `AudioAttributesCompat.USAGE_NOTIFICATION`, `AudioAttributesCompat.USAGE_NOTIFICATION_COMMUNICATION_DELAYED`, `AudioAttributesCompat.USAGE_NOTIFICATION_COMMUNICATION_INSTANT`, `AudioAttributesCompat.USAGE_NOTIFICATION_COMMUNICATION_REQUEST`, `AudioAttributesCompat.USAGE_NOTIFICATION_EVENT`, `AudioAttributesCompat.USAGE_NOTIFICATION_RINGTONE`, `AudioAttributesCompat.USAGE_UNKNOWN`, `AudioAttributesCompat.USAGE_VOICE_COMMUNICATION`, `AudioAttributesCompat.USAGE_VOICE_COMMUNICATION_SIGNALLING`"
+ errorLine1=" case USAGE_VIRTUAL_SOURCE:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/AudioAttributesImplBase.java"
+ line="224"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `RATING_NONE`"
+ errorLine1=" switch(ratingStyle) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="159"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" switch (ratingStyle) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="337"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" case RATING_HEART:"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="338"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" case RATING_THUMB_UP_DOWN:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="341"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" case RATING_3_STARS:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="344"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" case RATING_4_STARS:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="345"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" case RATING_5_STARS:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="346"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `Rating.RATING_3_STARS`, `Rating.RATING_4_STARS`, `Rating.RATING_5_STARS`, `Rating.RATING_HEART`, `Rating.RATING_NONE`, `Rating.RATING_PERCENTAGE`, `Rating.RATING_THUMB_UP_DOWN`"
+ errorLine1=" case RATING_PERCENTAGE:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/v4/media/RatingCompat.java"
+ line="350"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_toLeftOf`"
+ errorLine1=" android:layout_toLeftOf="@id/cancel_action""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_toStartOf`"
+ errorLine1=" android:layout_toStartOf="@id/cancel_action">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (androidx.media.MediaBrowserServiceCompat.ServiceHandler)"
+ errorLine1=" private final class ServiceHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media/MediaBrowserServiceCompat.java"
+ line="661"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_custom.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow_custom.xml"
+ line="38"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_custom.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow_custom.xml"
+ line="51"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="42"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageButton xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_media_action.xml"
+ line="17"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageButton xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_media_cancel_action.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media.xml"
+ line="54"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_custom.xml"
+ line="101"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow.xml"
+ line="60"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow_custom.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_big_media_narrow_custom.xml"
+ line="107"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/end_padder""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media.xml"
+ line="47"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/end_padder""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/notification_template_media_custom.xml"
+ line="96"
+ column="6"/>
+ </issue>
+
+ <issue
id="LambdaLast"
message="Functional interface parameters (such as parameter 1, "listener", in androidx.media.AudioFocusRequestCompat.Builder.setOnAudioFocusChangeListener) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
errorLine1=" @NonNull OnAudioFocusChangeListener listener, @NonNull Handler handler) {"
diff --git a/media/version-compat-tests/current/service/lint-baseline.xml b/media/version-compat-tests/current/service/lint-baseline.xml
new file mode 100644
index 0000000..662b573
--- /dev/null
+++ b/media/version-compat-tests/current/service/lint-baseline.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/big_buck_bunny.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/big_buck_bunny.jpg"/>
+ </issue>
+
+</issues>
diff --git a/media/version-compat-tests/lib/lint-baseline.xml b/media/version-compat-tests/lib/lint-baseline.xml
index 0fc4935..36236db 100644
--- a/media/version-compat-tests/lib/lint-baseline.xml
+++ b/media/version-compat-tests/lib/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/media2/common/lint-baseline.xml b/media2/common/lint-baseline.xml
index 0d99e89..b7887f3 100644
--- a/media2/common/lint-baseline.xml
+++ b/media2/common/lint-baseline.xml
@@ -1,5 +1,412 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_TITLE`"
+ errorLine1=" public static final String METADATA_KEY_TITLE = android.media.MediaMetadata.METADATA_KEY_TITLE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="127"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ARTIST`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_ARTIST;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="139"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DURATION`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DURATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="150"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ALBUM`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_ALBUM;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="162"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_AUTHOR`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_AUTHOR;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="174"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_WRITER`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_WRITER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="186"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_COMPOSER`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_COMPOSER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="198"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_COMPILATION`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_COMPILATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="210"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DATE`"
+ errorLine1=" public static final String METADATA_KEY_DATE = android.media.MediaMetadata.METADATA_KEY_DATE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="222"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_YEAR`"
+ errorLine1=" public static final String METADATA_KEY_YEAR = android.media.MediaMetadata.METADATA_KEY_YEAR;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="231"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_GENRE`"
+ errorLine1=" public static final String METADATA_KEY_GENRE = android.media.MediaMetadata.METADATA_KEY_GENRE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="242"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_TRACK_NUMBER`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_TRACK_NUMBER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="252"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_NUM_TRACKS`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_NUM_TRACKS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="262"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DISC_NUMBER`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DISC_NUMBER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="272"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ALBUM_ARTIST`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_ALBUM_ARTIST;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="284"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ART`"
+ errorLine1=" public static final String METADATA_KEY_ART = android.media.MediaMetadata.METADATA_KEY_ART;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="295"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ART_URI`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_ART_URI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="307"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ALBUM_ART`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_ALBUM_ART;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="319"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_ALBUM_ART_URI`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_ALBUM_ART_URI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="331"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_USER_RATING`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_USER_RATING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="343"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_RATING`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_RATING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="353"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DISPLAY_TITLE`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DISPLAY_TITLE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="367"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DISPLAY_SUBTITLE`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="381"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DISPLAY_DESCRIPTION`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DISPLAY_DESCRIPTION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="395"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DISPLAY_ICON`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DISPLAY_ICON;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="410"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_DISPLAY_ICON_URI`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="424"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_MEDIA_ID`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_MEDIA_ID;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="440"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.MediaMetadata#METADATA_KEY_MEDIA_URI`"
+ errorLine1=" android.media.MediaMetadata.METADATA_KEY_MEDIA_URI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/MediaMetadata.java"
+ line="453"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_LANGUAGE`"
+ errorLine1=" String language = mFormat != null ? mFormat.getString(MediaFormat.KEY_LANGUAGE) : null;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1135"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_LANGUAGE`"
+ errorLine1=" putStringValueToBundle(MediaFormat.KEY_LANGUAGE, mFormat, mParcelableExtras);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1233"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_FORCED_SUBTITLE`"
+ errorLine1=" putIntValueToBundle(MediaFormat.KEY_IS_FORCED_SUBTITLE, mFormat,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1235"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_AUTOSELECT`"
+ errorLine1=" putIntValueToBundle(MediaFormat.KEY_IS_AUTOSELECT, mFormat, mParcelableExtras);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1237"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_DEFAULT`"
+ errorLine1=" putIntValueToBundle(MediaFormat.KEY_IS_DEFAULT, mFormat, mParcelableExtras);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1238"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_LANGUAGE`"
+ errorLine1=" setStringValueToMediaFormat(MediaFormat.KEY_LANGUAGE, mFormat, mParcelableExtras);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1253"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_FORCED_SUBTITLE`"
+ errorLine1=" setIntValueToMediaFormat(MediaFormat.KEY_IS_FORCED_SUBTITLE, mFormat,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1255"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_AUTOSELECT`"
+ errorLine1=" setIntValueToMediaFormat(MediaFormat.KEY_IS_AUTOSELECT, mFormat, mParcelableExtras);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1257"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_DEFAULT`"
+ errorLine1=" setIntValueToMediaFormat(MediaFormat.KEY_IS_DEFAULT, mFormat, mParcelableExtras);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/common/SessionPlayer.java"
+ line="1258"
+ column="42"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/media2/integration-tests/testapp/lint-baseline.xml b/media2/integration-tests/testapp/lint-baseline.xml
index 30efedd..4a86761 100644
--- a/media2/integration-tests/testapp/lint-baseline.xml
+++ b/media2/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" private static final String TEST_VID_STASH = "/sdcard";"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java"
+ line="56"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="ShowToast"
+ message="Toast created but not shown: did you forget to call `show()` ?"
+ errorLine1=" Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/integration/testapp/VideoSessionService.java"
+ line="123"
+ column="17"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -35,6 +57,39 @@
</issue>
<issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application android:label="Video View Test""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (androidx.media2.integration.testapp.VideoSelectorActivity.VideoItemListTask)"
+ errorLine1=" private final class VideoItemListTask extends android.os.AsyncTask<Void, Void, VideoItemList> {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java"
+ line="305"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#3F51B5` with a theme that also paints a background (inferred theme is `@style/Theme_AppCompat`)"
+ errorLine1=" android:background="#3F51B5">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_player.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
id="SyntheticAccessor"
message="Access to `private` method `showErrorDialogIfFailed` of class `VideoPlayerActivity` requires synthetic accessor"
errorLine1=" showErrorDialogIfFailed(controller.setMediaItem(mUri.toString()),"
@@ -200,6 +255,149 @@
</issue>
<issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application android:label="Video View Test""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="54"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``MyVideoView`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" mVideoView.setOnTouchListener(new View.OnTouchListener() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/media2/integration/testapp/VideoPlayerActivity.java"
+ line="93"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/integration/testapp/VideoPlayerActivity.java"
+ line="95"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/integration/testapp/VideoPlayerActivity.java"
+ line="111"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="54"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="40dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="40dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_player.xml"
+ line="56"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="340dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="340dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_player.xml"
+ line="68"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_alignParentRight` with `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_toLeftOf` with `android:layout_toStartOf="@id/looping_checkbox"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toLeftOf="@id/looping_checkbox""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="43"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_alignParentRight` with `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="51"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_alignParentLeft` with `android:layout_alignParentStart="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentLeft="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="59"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_toLeftOf` with `android:layout_toStartOf="@id/play_button"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toLeftOf="@id/play_button" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_video_selector.xml"
+ line="60"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
diff --git a/media2/player/lint-baseline.xml b/media2/player/lint-baseline.xml
index 649f869..f610d31 100644
--- a/media2/player/lint-baseline.xml
+++ b/media2/player/lint-baseline.xml
@@ -1,5 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_NONE`"
+ errorLine1=" mCurrentFocusGainType = AudioManager.AUDIOFOCUS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="213"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_NONE`"
+ errorLine1=" return mCurrentFocusGainType != AudioManager.AUDIOFOCUS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="220"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_NONE`"
+ errorLine1=" mCurrentFocusGainType = AudioManager.AUDIOFOCUS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="235"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_NONE`"
+ errorLine1=" return AudioManager.AUDIOFOCUS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="274"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_NONE`"
+ errorLine1=" return AudioManager.AUDIOFOCUS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="283"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE`"
+ errorLine1=" return AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="320"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 16): `android.media.AudioManager#AUDIOFOCUS_NONE`"
+ errorLine1=" return AudioManager.AUDIOFOCUS_NONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/AudioFocusHandler.java"
+ line="332"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_LANGUAGE`"
+ errorLine1=" mediaFormat.setString(MediaFormat.KEY_LANGUAGE, language);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/TrackSelector.java"
+ line="431"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_FORCED_SUBTITLE`"
+ errorLine1=" mediaFormat.setInteger(MediaFormat.KEY_IS_FORCED_SUBTITLE,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/TrackSelector.java"
+ line="432"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_AUTOSELECT`"
+ errorLine1=" mediaFormat.setInteger(MediaFormat.KEY_IS_AUTOSELECT,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/TrackSelector.java"
+ line="434"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_DEFAULT`"
+ errorLine1=" mediaFormat.setInteger(MediaFormat.KEY_IS_DEFAULT,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/TrackSelector.java"
+ line="436"
+ column="36"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -299,6 +420,17 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `MediaPlayer2.MEDIA_INFO_AUDIO_NOT_PLAYING`, `MediaPlayer2.MEDIA_INFO_AUDIO_RENDERING_START`, `MediaPlayer2.MEDIA_INFO_BAD_INTERLEAVING`, `MediaPlayer2.MEDIA_INFO_DATA_SOURCE_END`, `MediaPlayer2.MEDIA_INFO_DATA_SOURCE_REPEAT`, `MediaPlayer2.MEDIA_INFO_EXTERNAL_METADATA_UPDATE`, `MediaPlayer2.MEDIA_INFO_METADATA_UPDATE`, `MediaPlayer2.MEDIA_INFO_NETWORK_BANDWIDTH`, `MediaPlayer2.MEDIA_INFO_NOT_SEEKABLE`, `MediaPlayer2.MEDIA_INFO_SUBTITLE_TIMED_OUT`, `MediaPlayer2.MEDIA_INFO_UNKNOWN`, `MediaPlayer2.MEDIA_INFO_UNSUPPORTED_SUBTITLE`, `MediaPlayer2.MEDIA_INFO_VIDEO_NOT_PLAYING`, `MediaPlayer2.MEDIA_INFO_VIDEO_RENDERING_START`, `MediaPlayer2.MEDIA_INFO_VIDEO_TRACK_LAGGING`"
+ errorLine1=" switch (mp2What) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/player/MediaPlayer.java"
+ line="3350"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" void onPrepared(MediaItem mediaItem);"
diff --git a/media2/session/lint-baseline.xml b/media2/session/lint-baseline.xml
index 215b137..ed5598a 100644
--- a/media2/session/lint-baseline.xml
+++ b/media2/session/lint-baseline.xml
@@ -1,5 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 16): `android.media.AudioManager#ADJUST_MUTE`"
+ errorLine1=" AudioManager.ADJUST_MUTE, AudioManager.ADJUST_UNMUTE, AudioManager.ADJUST_TOGGLE_MUTE})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaController.java"
+ line="153"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 16): `android.media.AudioManager#ADJUST_TOGGLE_MUTE`"
+ errorLine1=" AudioManager.ADJUST_MUTE, AudioManager.ADJUST_UNMUTE, AudioManager.ADJUST_TOGGLE_MUTE})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaController.java"
+ line="153"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 16): `android.media.AudioManager#ADJUST_UNMUTE`"
+ errorLine1=" AudioManager.ADJUST_MUTE, AudioManager.ADJUST_UNMUTE, AudioManager.ADJUST_TOGGLE_MUTE})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaController.java"
+ line="153"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 16): `android.content.Context#BIND_INCLUDE_CAPABILITIES`"
+ errorLine1=" Context.BIND_AUTO_CREATE | Context.BIND_INCLUDE_CAPABILITIES);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaControllerImplBase.java"
+ line="837"
+ column="48"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -101,6 +145,39 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `RatingCompat.RATING_NONE`"
+ errorLine1=" switch (ratingCompat.getRatingStyle()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaUtils.java"
+ line="609"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `RatingCompat.RATING_NONE`"
+ errorLine1=" switch (ratingCompatStyle) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaUtils.java"
+ line="650"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `MediaSessionManager` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static MediaSessionManager sInstance;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/session/MediaSessionManager.java"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void setTimeDiff(Long timeDiff) {"
diff --git a/media2/session/version-compat-tests/common/lint-baseline.xml b/media2/session/version-compat-tests/common/lint-baseline.xml
index ccc18c6..9b2f24b 100644
--- a/media2/session/version-compat-tests/common/lint-baseline.xml
+++ b/media2/session/version-compat-tests/common/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("%08d", index);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/test/common/TestUtils.java"
+ line="99"
+ column="16"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/media2/session/version-compat-tests/current/client/lint-baseline.xml b/media2/session/version-compat-tests/current/client/lint-baseline.xml
new file mode 100644
index 0000000..85c7d22
--- /dev/null
+++ b/media2/session/version-compat-tests/current/client/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserCompatWithMediaSessionServiceTest.java"
+ line="87"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/media2/session/version-compat-tests/current/service/lint-baseline.xml b/media2/session/version-compat-tests/current/service/lint-baseline.xml
new file mode 100644
index 0000000..053aa48
--- /dev/null
+++ b/media2/session/version-compat-tests/current/service/lint-baseline.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/big_buck_bunny.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/big_buck_bunny.jpg"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/media2/test/service/tests/SessionCommandTest.java"
+ line="100"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/media2/session/version-compat-tests/previous/client/lint-baseline.xml b/media2/session/version-compat-tests/previous/client/lint-baseline.xml
new file mode 100644
index 0000000..98d7c8b
--- /dev/null
+++ b/media2/session/version-compat-tests/previous/client/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserCompatWithMediaSessionServiceTest.java"
+ line="88"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/media2/session/version-compat-tests/previous/service/lint-baseline.xml b/media2/session/version-compat-tests/previous/service/lint-baseline.xml
new file mode 100644
index 0000000..eb94162
--- /dev/null
+++ b/media2/session/version-compat-tests/previous/service/lint-baseline.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/big_buck_bunny.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/big_buck_bunny.jpg"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/media2/test/service/tests/SessionCommandTest.java"
+ line="99"
+ column="5"/>
+ </issue>
+
+</issues>
diff --git a/media2/widget/lint-baseline.xml b/media2/widget/lint-baseline.xml
index 3830510..7d31f3a 100644
--- a/media2/widget/lint-baseline.xml
+++ b/media2/widget/lint-baseline.xml
@@ -1,5 +1,424 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("{%d, %d}, %s","
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="400"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]Null: %02x %02x", mType, mData1, mData2);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="949"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]%s", mType, ctrlCodeToString(ctrlCode));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="954"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]Tab%d", mType, tabOffset);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="959"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]PAC: %s", mType, pac.toString());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="964"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]Mid-row: %s", mType, m.toString());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="969"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]Displayable: %s (%02x %02x)","
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="973"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("[%d]Invalid: %02x %02x", mType, mData1, mData2);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CCParser.java"
+ line="977"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/pause, defined or included multiple times in layout/media2_widget_media_controller.xml: [layout/media2_widget_media_controller.xml => layout/media2_widget_full_transport_controls.xml defines @+id/pause, layout/media2_widget_media_controller.xml => layout/media2_widget_minimal_transport_controls.xml defines @+id/pause, layout/media2_widget_media_controller.xml => layout/media2_widget_embedded_transport_controls.xml defines @+id/pause]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="37"
+ column="9"/>
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="26"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_minimal_transport_controls.xml"
+ line="23"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="26"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/ffwd, defined or included multiple times in layout/media2_widget_media_controller.xml: [layout/media2_widget_media_controller.xml => layout/media2_widget_full_transport_controls.xml defines @+id/ffwd, layout/media2_widget_media_controller.xml => layout/media2_widget_embedded_transport_controls.xml defines @+id/ffwd]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="135"
+ column="9"/>
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="27"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="27"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/next, defined or included multiple times in layout/media2_widget_media_controller.xml: [layout/media2_widget_media_controller.xml => layout/media2_widget_full_transport_controls.xml defines @+id/next, layout/media2_widget_media_controller.xml => layout/media2_widget_embedded_transport_controls.xml defines @+id/next]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="135"
+ column="9"/>
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="28"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="28"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/pause, defined or included multiple times in layout/media2_widget_media_controller.xml: [layout/media2_widget_media_controller.xml => layout/media2_widget_full_transport_controls.xml defines @+id/pause, layout/media2_widget_media_controller.xml => layout/media2_widget_minimal_transport_controls.xml defines @+id/pause, layout/media2_widget_media_controller.xml => layout/media2_widget_embedded_transport_controls.xml defines @+id/pause]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="135"
+ column="9"/>
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="26"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_minimal_transport_controls.xml"
+ line="23"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="26"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/prev, defined or included multiple times in layout/media2_widget_media_controller.xml: [layout/media2_widget_media_controller.xml => layout/media2_widget_full_transport_controls.xml defines @+id/prev, layout/media2_widget_media_controller.xml => layout/media2_widget_embedded_transport_controls.xml defines @+id/prev]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="135"
+ column="9"/>
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="24"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="24"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/rew, defined or included multiple times in layout/media2_widget_media_controller.xml: [layout/media2_widget_media_controller.xml => layout/media2_widget_full_transport_controls.xml defines @+id/rew, layout/media2_widget_media_controller.xml => layout/media2_widget_embedded_transport_controls.xml defines @+id/rew]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="135"
+ column="9"/>
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="25"
+ column="18"/>
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="25"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaFormat#MIMETYPE_TEXT_CEA_608`"
+ errorLine1=" return MediaFormat.MIMETYPE_TEXT_CEA_608.equals(mimeType);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea608CaptionRenderer.java"
+ line="57"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 16): `android.media.MediaFormat#MIMETYPE_TEXT_CEA_708`"
+ errorLine1=" return MediaFormat.MIMETYPE_TEXT_CEA_708.equals(mimeType);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea708CaptionRenderer.java"
+ line="68"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_LANGUAGE`"
+ errorLine1=" String language = format.getString(MediaFormat.KEY_LANGUAGE);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/SubtitleController.java"
+ line="241"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_FORCED_SUBTITLE`"
+ errorLine1=" .getInteger(format, MediaFormat.KEY_IS_FORCED_SUBTITLE, 0) != 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/SubtitleController.java"
+ line="243"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_AUTOSELECT`"
+ errorLine1=" .getInteger(format, MediaFormat.KEY_IS_AUTOSELECT, 1) != 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/SubtitleController.java"
+ line="245"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 16): `android.media.MediaFormat#KEY_IS_DEFAULT`"
+ errorLine1=" .getInteger(format, MediaFormat.KEY_IS_DEFAULT, 0) != 0;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/SubtitleController.java"
+ line="247"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.media.MediaPlayer.TrackInfo#MEDIA_TRACK_TYPE_SUBTITLE`"
+ errorLine1=" : TrackInfo.MEDIA_TRACK_TYPE_SUBTITLE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/SubtitleTrack.java"
+ line="605"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 16): `android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_RAISED`"
+ errorLine1=" final boolean raised = edgeType == CaptionStyle.EDGE_TYPE_RAISED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/SubtitleView.java"
+ line="288"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `level` is only used in API level 24 and higher (current min is 16)"
+ errorLine1=" android:level="10000">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/media2_widget_custom_progress_thumb.xml"
+ line="20"
+ column="8"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="115"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="127"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="133"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="157"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="177"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="211"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `layoutDirection` is only used in API level 17 and higher (current min is 16)"
+ errorLine1=" android:layoutDirection="ltr">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="226"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `splitTrack` is only used in API level 21 and higher (current min is 16)"
+ errorLine1=" android:splitTrack="false""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="240"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 16)"
+ errorLine1=" android:elevation="10dp" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="241"
+ column="13"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -57,6 +476,39 @@
</issue>
<issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/MusicView.java"
+ line="145"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/MusicView.java"
+ line="147"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" mWithoutTitle = inflater.inflate(R.layout.media2_widget_music_without_title, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/MusicView.java"
+ line="148"
+ column="86"/>
+ </issue>
+
+ <issue
id="PrivateConstructorForUtilityClass"
message="Utility class with non private constructor"
errorLine1=" static class MediaFormatUtil {"
@@ -288,6 +740,457 @@
</issue>
<issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width="512dp""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/media2_widget_ic_default_album_image.xml"
+ line="3"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This tag is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" <clip-path"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/drawable/media2_widget_ic_forward_30.xml"
+ line="8"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This tag is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" <clip-path"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/drawable/media2_widget_ic_rewind_10.xml"
+ line="8"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message=""media" is a common misspelling; did you mean "medier" ?"
+ errorLine1=" <string name="mcv2_previous_button_desc" msgid="5367141424871007842">"Forrige media"</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-nb/strings.xml"
+ line="44"
+ column="83"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message=""media" is a common misspelling; did you mean "medier" ?"
+ errorLine1=" <string name="mcv2_next_button_desc" msgid="4799850472802157220">"Neste media"</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-nb/strings.xml"
+ line="45"
+ column="77"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" mRectArray = new Rect[count];"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea708CaptionRenderer.java"
+ line="235"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" mRectArray[i] = new Rect((int) (scaleStartCol * width), (int) (scaleStartRow"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea708CaptionRenderer.java"
+ line="269"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" int[] visibleRectGroup = new int[count];"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea708CaptionRenderer.java"
+ line="301"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" Rect[] visibleRectArray = new Rect[count];"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/Cea708CaptionRenderer.java"
+ line="302"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/media2_widget_music_view_default_background` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@color/media2_widget_music_view_default_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_music_with_title_landscape.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/media2_widget_music_view_default_background` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@color/media2_widget_music_view_default_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_music_with_title_portrait.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/media2_widget_music_view_default_background` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@color/media2_widget_music_view_default_background""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_music_without_title.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `LinearLayout` parent is possibly useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="78"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `LinearLayout` parent is useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_settings_list_item.xml"
+ line="41"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="SmallSp"
+ message="Avoid using sizes smaller than `12sp`: `10sp`"
+ errorLine1=" android:textSize="10sp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="98"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `MediaControlView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/MediaControlView.java"
+ line="436"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/prev" style="@style/Media2_Widget_EmbeddedTransportControlsButton.Previous" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/rew" style="@style/Media2_Widget_EmbeddedTransportControlsButton.Rew" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/pause" style="@style/Media2_Widget_EmbeddedTransportControlsButton.Pause" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/ffwd" style="@style/Media2_Widget_EmbeddedTransportControlsButton.Ffwd" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/next" style="@style/Media2_Widget_EmbeddedTransportControlsButton.Next" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_embedded_transport_controls.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/prev" style="@style/Media2_Widget_FullTransportControlsButton.Previous" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/rew" style="@style/Media2_Widget_FullTransportControlsButton.Rew" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/pause" style="@style/Media2_Widget_FullTransportControlsButton.Pause" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/ffwd" style="@style/Media2_Widget_FullTransportControlsButton.Ffwd" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/next" style="@style/Media2_Widget_FullTransportControlsButton.Next" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_full_transport_controls.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="101"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="117"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="188"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="195"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="200"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="213"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="217"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/pause" style="@style/Media2_Widget_MinimalTransportControlsButton" />"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_minimal_transport_controls.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_music_with_title_landscape.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_music_with_title_portrait.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_music_without_title.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_settings_list_item.xml"
+ line="29"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_sub_settings_list_item.xml"
+ line="29"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="KeyboardInaccessibleWidget"
+ message="'clickable' attribute found, please also add 'focusable'"
+ errorLine1=" android:clickable="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media2_widget_media_controller.xml"
+ line="80"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mTitleView.setText(title.toString() + " - " + artist.toString());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/media2/widget/MediaControlView.java"
+ line="1434"
+ column="32"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public CharSequence getAccessibilityClassName() {"
diff --git a/mediarouter/mediarouter/lint-baseline.xml b/mediarouter/mediarouter/lint-baseline.xml
index 9223937..24eaf5e 100644
--- a/mediarouter/mediarouter/lint-baseline.xml
+++ b/mediarouter/mediarouter/lint-baseline.xml
@@ -1,5 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" String scheme = uri.getScheme().toLowerCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java"
+ line="1451"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" String scheme = uri.getScheme().toLowerCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java"
+ line="1524"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `splitTrack` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:splitTrack="false" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_group_volume_item.xml"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `splitTrack` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:splitTrack="false" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_route_item.xml"
+ line="80"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `importantForAccessibility` is only used in API level 16 and higher (current min is 14)"
+ errorLine1=" android:importantForAccessibility="no""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_controller_material_dialog_b.xml"
+ line="43"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX1="0.4""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_fast_out_slow_in.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY1="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_fast_out_slow_in.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX2="0.2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_fast_out_slow_in.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY2="1"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_fast_out_slow_in.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX1="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_linear_out_slow_in.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY1="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_linear_out_slow_in.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX2="0.2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_linear_out_slow_in.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY2="1"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/mr_linear_out_slow_in.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `importantForAccessibility` is only used in API level 16 and higher (current min is 14)"
+ errorLine1=" android:importantForAccessibility="no""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_playback_control.xml"
+ line="44"
+ column="19"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -46,6 +200,50 @@
</issue>
<issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteButton.java"
+ line="401"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> resolveInfos = pm.queryBroadcastReceivers(queryIntent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/MediaTransferReceiver.java"
+ line="82"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" for (ResolveInfo resolveInfo : mPackageManager.queryIntentServices(intent, 0)) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/RegisteredMediaRouteProviderWatcher.java"
+ line="109"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" return mPackageManager.queryIntentServices(intent, 0).stream()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/RegisteredMediaRouteProviderWatcher.java"
+ line="166"
+ column="32"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 17, the call containing class androidx.mediarouter.app.MediaRouteDynamicControllerDialog is not annotated with @RequiresApi(x) where x is at least 17. Either annotate the containing class with at least @RequiresApi(17) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(17)."
errorLine1=" ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));"
@@ -574,6 +772,775 @@
</issue>
<issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `ConnectivityReceiver` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static ConnectivityReceiver sConnectivityReceiver;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteButton.java"
+ line="102"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (androidx.mediarouter.app.MediaRouteButton.RemoteIndicatorLoader)"
+ errorLine1=" private final class RemoteIndicatorLoader extends android.os.AsyncTask<Void, Void, Drawable> {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteButton.java"
+ line="801"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (androidx.mediarouter.app.MediaRouteControllerDialog.FetchArtTask)"
+ errorLine1=" private class FetchArtTask extends android.os.AsyncTask<Void, Void, Bitmap> {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java"
+ line="1338"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (androidx.mediarouter.app.MediaRouteDynamicControllerDialog.FetchArtTask)"
+ errorLine1=" private class FetchArtTask extends android.os.AsyncTask<Void, Void, Bitmap> {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java"
+ line="1416"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (androidx.mediarouter.media.MediaRoute2Provider.GroupRouteController.ReceiveHandler)"
+ errorLine1=" class ReceiveHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
+ line="619"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" private final Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteChooserDialog.java"
+ line="83"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" private final Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteDynamicChooserDialog.java"
+ line="87"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" final Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java"
+ line="143"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (androidx.mediarouter.media.MediaRouteProvider.ProviderHandler)"
+ errorLine1=" private final class ProviderHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/MediaRouteProvider.java"
+ line="897"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (androidx.mediarouter.media.MediaRouteProviderService.PrivateHandler)"
+ errorLine1=" private final class PrivateHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/MediaRouteProviderService.java"
+ line="311"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (androidx.mediarouter.media.MediaRouter.GlobalMediaRouter.CallbackHandler)"
+ errorLine1=" private final class CallbackHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/mediarouter/media/MediaRouter.java"
+ line="3646"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/mr_cast_media_metadata.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/mr_controller_material_dialog_b.xml"
+ line="17"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `match_parent` for better performance"
+ errorLine1=" android:layout_height="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_group_volume_item.xml"
+ line="24"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is possibly useless; transfer the `background` attribute to the other view"
+ errorLine1=" <LinearLayout android:id="@+id/mr_dialog_area""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_controller_material_dialog_b.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `LinearLayout` parent is possibly useless"
+ errorLine1=" <LinearLayout android:id="@+id/volume_item_container""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_controller_volume_item.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="mr_chooser_searching" msgid="6114250663023140921">"A localizar dispositivos..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt-rPT/strings.xml"
+ line="26"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="mr_controller_casting_screen" msgid="9171231064758955152">"A transmitir o ecrã..."</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt-rPT/strings.xml"
+ line="39"
+ column="77"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-hdpi`: ic_group_collapse_00.png, ic_group_collapse_01.png, ic_group_collapse_02.png, ic_group_collapse_03.png, ic_group_collapse_04.png... (151 more)">
+ <location
+ file="src/main/res/drawable-hdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-mdpi`: ic_group_collapse_00.png, ic_group_collapse_01.png, ic_group_collapse_02.png, ic_group_collapse_03.png, ic_group_collapse_04.png... (151 more)">
+ <location
+ file="src/main/res/drawable-mdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xhdpi`: ic_group_collapse_00.png, ic_group_collapse_01.png, ic_group_collapse_02.png, ic_group_collapse_03.png, ic_group_collapse_04.png... (27 more)">
+ <location
+ file="src/main/res/drawable-xhdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: ic_group_collapse_00.png, ic_group_collapse_01.png, ic_group_collapse_02.png, ic_group_collapse_03.png, ic_group_collapse_04.png... (27 more)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_group_collapse_15.png, ic_group_expand_00.png">
+ <location
+ file="src/main/res/drawable-xxxhdpi/ic_group_expand_00.png"/>
+ <location
+ file="src/main/res/drawable-xxxhdpi/ic_group_collapse_15.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_group_collapse_00.png, ic_group_expand_15.png">
+ <location
+ file="src/main/res/drawable-xxxhdpi/ic_group_expand_15.png"/>
+ <location
+ file="src/main/res/drawable-xxxhdpi/ic_group_collapse_00.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_01_dark.png, ic_mr_button_connecting_01_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_01_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_01_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_01_dark.png, ic_mr_button_connecting_01_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_01_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_01_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_01_light.png, ic_mr_button_connecting_01_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_01_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_01_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_01_light.png, ic_mr_button_connecting_01_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_01_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_01_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_02_dark.png, ic_mr_button_connecting_02_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_02_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_02_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_02_dark.png, ic_mr_button_connecting_02_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_02_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_02_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_02_light.png, ic_mr_button_connecting_02_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_02_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_02_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_02_light.png, ic_mr_button_connecting_02_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_02_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_02_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_03_dark.png, ic_mr_button_connecting_03_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_03_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_03_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_03_dark.png, ic_mr_button_connecting_03_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_03_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_03_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_03_light.png, ic_mr_button_connecting_03_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_03_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_03_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_03_light.png, ic_mr_button_connecting_03_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_03_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_03_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_04_dark.png, ic_mr_button_connecting_04_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_04_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_04_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_04_dark.png, ic_mr_button_connecting_04_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_04_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_04_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_04_light.png, ic_mr_button_connecting_04_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_04_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_04_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_04_light.png, ic_mr_button_connecting_04_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_04_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_04_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_05_dark.png, ic_mr_button_connecting_05_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_05_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_05_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_05_dark.png, ic_mr_button_connecting_05_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_05_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_05_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_05_light.png, ic_mr_button_connecting_05_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_05_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_05_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_05_light.png, ic_mr_button_connecting_05_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_05_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_05_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_06_dark.png, ic_mr_button_connecting_06_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_06_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_06_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_06_dark.png, ic_mr_button_connecting_06_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_06_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_06_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_06_light.png, ic_mr_button_connecting_06_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_06_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_06_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_06_light.png, ic_mr_button_connecting_06_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_06_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_06_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_07_dark.png, ic_mr_button_connecting_07_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_07_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_07_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_07_dark.png, ic_mr_button_connecting_07_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_07_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_07_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_07_light.png, ic_mr_button_connecting_07_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_07_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_07_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_07_light.png, ic_mr_button_connecting_07_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_07_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_07_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_08_dark.png, ic_mr_button_connecting_08_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_08_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_08_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_08_dark.png, ic_mr_button_connecting_08_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_08_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_08_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_08_light.png, ic_mr_button_connecting_08_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_08_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_08_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_08_light.png, ic_mr_button_connecting_08_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_08_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_08_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_09_dark.png, ic_mr_button_connecting_09_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_09_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_09_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_09_dark.png, ic_mr_button_connecting_09_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_09_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_09_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_09_light.png, ic_mr_button_connecting_09_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_09_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_09_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_09_light.png, ic_mr_button_connecting_09_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_09_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_09_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_10_dark.png, ic_mr_button_connecting_10_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_10_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_10_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_10_dark.png, ic_mr_button_connecting_10_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_10_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_10_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_10_light.png, ic_mr_button_connecting_10_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_10_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_10_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_10_light.png, ic_mr_button_connecting_10_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_10_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_10_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_00_dark.png, ic_mr_button_connecting_00_dark.png, ic_mr_button_connecting_30_dark.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_30_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_00_dark.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_00_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_00_dark.png, ic_mr_button_connecting_00_dark.png, ic_mr_button_connecting_30_dark.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_30_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_00_dark.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_00_dark.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_00_light.png, ic_mr_button_connecting_00_light.png, ic_mr_button_connecting_30_light.png">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_30_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connecting_00_light.png"/>
+ <location
+ file="src/main/res/drawable-xhdpi/ic_mr_button_connected_00_light.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: ic_mr_button_connected_00_light.png, ic_mr_button_connecting_00_light.png, ic_mr_button_connecting_30_light.png">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_30_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connecting_00_light.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_mr_button_connected_00_light.png"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_cast_group_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_group_item.xml"
+ line="30"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/mr_cast_mute_button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_group_volume_item.xml"
+ line="35"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_cast_meta_background""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_media_metadata.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_cast_meta_art""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_media_metadata.xml"
+ line="50"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_cast_route_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_route_item.xml"
+ line="31"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/mr_cast_mute_button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_cast_route_item.xml"
+ line="59"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_chooser_route_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_chooser_list_item.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_volume_item_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_controller_volume_item.xml"
+ line="40"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/mr_picker_route_icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_picker_route_item.xml"
+ line="28"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_volume_control.xml"
+ line="27"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="KeyboardInaccessibleWidget"
+ message="'clickable' attribute found, please also add 'focusable'"
+ errorLine1=" android:clickable="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/mr_volume_control.xml"
+ line="43"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public Bundle getExtras() {"
diff --git a/navigation/integration-tests/testapp/lint-baseline.xml b/navigation/integration-tests/testapp/lint-baseline.xml
index 822c3df..d4bc5c5 100644
--- a/navigation/integration-tests/testapp/lint-baseline.xml
+++ b/navigation/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "drawer_layout" in layout "navigation_activity" is missing from the following layout configurations: layout-h470dp, layout-w960dp (present in layout)"
+ errorLine1=" android:id="@+id/drawer_layout""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/navigation_activity.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "bottom_nav_view" in layout "navigation_activity" is missing from the following layout configurations: layout, layout-w960dp (present in layout-h470dp)"
+ errorLine1=" android:id="@+id/bottom_nav_view""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-h470dp/navigation_activity.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "nav_view" in layout "navigation_activity" is missing from the following layout configurations: layout-h470dp (present in layout, layout-w960dp)"
+ errorLine1=" android:id="@+id/nav_view""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/navigation_activity.xml"
+ line="43"
+ column="9"/>
+ <location
+ file="src/main/res/layout-w960dp/navigation_activity.xml"
+ line="24"
+ column="9"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -122,4 +159,59 @@
column="13"/>
</issue>
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_fragment.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_fragment.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type your deep link args", should use `@string` resource"
+ errorLine1=" android:hint="Type your deep link args"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_fragment.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Send deep link notification", should use `@string` resource"
+ errorLine1=" android:text="Send deep link notification"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/android_fragment.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Navigate next", should use `@string` resource"
+ errorLine1=" android:text="Navigate next"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/main_fragment.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/navigation/navigation-common-ktx/lint-baseline.xml b/navigation/navigation-common-ktx/lint-baseline.xml
index ba26677..a91c96d 100644
--- a/navigation/navigation-common-ktx/lint-baseline.xml
+++ b/navigation/navigation-common-ktx/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanUncheckedReflection"
diff --git a/navigation/navigation-dynamic-features-fragment/lint-baseline.xml b/navigation/navigation-dynamic-features-fragment/lint-baseline.xml
new file mode 100644
index 0000000..0d55e0f
--- /dev/null
+++ b/navigation/navigation-dynamic-features-fragment/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dynamic_feature_install_fragment.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+</issues>
diff --git a/paging/integration-tests/testapp/lint-baseline.xml b/paging/integration-tests/testapp/lint-baseline.xml
index 7634cf8..889ff1a 100644
--- a/paging/integration-tests/testapp/lint-baseline.xml
+++ b/paging/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
<issue
id="UnusedResources"
@@ -24,6 +35,116 @@
</issue>
<issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_recycler_view.xml"
+ line="42"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_recycler_view.xml"
+ line="47"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView) holder.itemView).setText(customer.getId() + " " + customer.getLastName());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/paging/integration/testapp/room/PagedListCustomerAdapter.java"
+ line="66"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" button.text = "Loading""
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/paging/integration/testapp/custom/PagedListSampleActivity.kt"
+ line="83"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" button.text = "Error""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/paging/integration/testapp/custom/PagedListSampleActivity.kt"
+ line="87"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Refresh", should use `@string` resource"
+ errorLine1=" android:text="Refresh"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_recycler_view.xml"
+ line="46"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Enqueue Error", should use `@string` resource"
+ errorLine1=" android:text="Enqueue Error"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_recycler_view.xml"
+ line="51"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RelativeOverlap"
+ message="`@id/addButton` can overlap `@id/clearButton` if @string/clear, @string/insert grow due to localized text expansion"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_room_recycler_view.xml"
+ line="45"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_recycler_view.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public String getName() {"
diff --git a/paging/runtime/lint-baseline.xml b/paging/runtime/lint-baseline.xml
index 7e00be8..adb5a48 100644
--- a/paging/runtime/lint-baseline.xml
+++ b/paging/runtime/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="RestrictedApi"
diff --git a/palette/palette/lint-baseline.xml b/palette/palette/lint-baseline.xml
new file mode 100644
index 0000000..f2b3f87
--- /dev/null
+++ b/palette/palette/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" return new android.os.AsyncTask<Bitmap, Void, Palette>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/palette/graphics/Palette.java"
+ line="843"
+ column="20"/>
+ </issue>
+
+</issues>
diff --git a/percentlayout/percentlayout/lint-baseline.xml b/percentlayout/percentlayout/lint-baseline.xml
index 33175ac..5a6cd81 100644
--- a/percentlayout/percentlayout/lint-baseline.xml
+++ b/percentlayout/percentlayout/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("PercentLayoutInformation width: %f height %f, margins (%f, %f, ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/percentlayout/widget/PercentLayoutHelper.java"
+ line="562"
+ column="20"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/preference/preference/lint-baseline.xml b/preference/preference/lint-baseline.xml
index 5cb12c9..2a8ff7a 100644
--- a/preference/preference/lint-baseline.xml
+++ b/preference/preference/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontFamily` is only used in API level 16 and higher (current min is 14) Did you mean `app:fontFamily` ?"
+ errorLine1=" android:fontFamily="sans-serif-condensed""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_widget_seekbar.xml"
+ line="95"
+ column="23"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -13,6 +24,193 @@
</issue>
<issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" private final Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/preference/PreferenceFragment.java"
+ line="127"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" private Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/preference/PreferenceFragmentCompat.java"
+ line="122"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" "
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_information.xml"
+ line="20"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_information_material.xml"
+ line="19"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/expand_button.xml"
+ line="29"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_category_material.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_dropdown.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_material.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/selectableItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_widget_seekbar_material.xml"
+ line="29"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="res/layout/preference_dialog_edittext.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="res/layout/preference_dialog_edittext.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="res/layout/preference_information_material.xml"
+ line="36"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="res/layout/preference_widget_seekbar.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="res/layout/preference_dialog_edittext.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: when using `android:labelFor`, you must also define an `android:text` or an `android:contentDescription`"
+ errorLine1=" android:labelFor="@id/seekbar""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/layout/preference_widget_seekbar_material.xml"
+ line="52"
+ column="17"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="This getter should be public such that `onBindEditTextListener` can be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" @Nullable OnBindEditTextListener getOnBindEditTextListener() {"
diff --git a/print/print/lint-baseline.xml b/print/print/lint-baseline.xml
index 8375a67..fbfece8 100644
--- a/print/print/lint-baseline.xml
+++ b/print/print/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
@@ -672,4 +672,26 @@
column="67"/>
</issue>
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" mLoadBitmap = new android.os.AsyncTask<Uri, Boolean, Bitmap>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/print/PrintHelper.java"
+ line="426"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" new android.os.AsyncTask<Void, Void, Throwable>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/print/PrintHelper.java"
+ line="637"
+ column="9"/>
+ </issue>
+
</issues>
diff --git a/recommendation/recommendation/lint-baseline.xml b/recommendation/recommendation/lint-baseline.xml
index dfffa6a..6fd8cd4 100644
--- a/recommendation/recommendation/lint-baseline.xml
+++ b/recommendation/recommendation/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/recyclerview/recyclerview-selection/lint-baseline.xml b/recyclerview/recyclerview-selection/lint-baseline.xml
index 3a57b65..cd525b3 100644
--- a/recyclerview/recyclerview-selection/lint-baseline.xml
+++ b/recyclerview/recyclerview-selection/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/recyclerview/recyclerview/lint-baseline.xml b/recyclerview/recyclerview/lint-baseline.xml
index f431762..92b3172 100644
--- a/recyclerview/recyclerview/lint-baseline.xml
+++ b/recyclerview/recyclerview/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
@@ -46,6 +46,50 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ANIMATION_STATE_FADING_IN`, `ANIMATION_STATE_IN`"
+ errorLine1=" switch (mAnimationState) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/recyclerview/widget/FastScroller.java"
+ line="228"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ANIMATION_STATE_FADING_OUT`, `ANIMATION_STATE_OUT`"
+ errorLine1=" switch (mAnimationState) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/recyclerview/widget/FastScroller.java"
+ line="244"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" sDefaultInterpolator = new ValueAnimator().getInterpolator();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/recyclerview/widget/DefaultItemAnimator.java"
+ line="523"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `RecyclerView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent e) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/recyclerview/widget/RecyclerView.java"
+ line="3417"
+ column="20"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="This method should be called `getHasFixedSize` such that `hasFixedSize` can be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public boolean hasFixedSize() {"
diff --git a/remotecallback/processor/lint-baseline.xml b/remotecallback/processor/lint-baseline.xml
index bf058d53..5dc4a25 100644
--- a/remotecallback/processor/lint-baseline.xml
+++ b/remotecallback/processor/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/remotecallback/remotecallback/lint-baseline.xml b/remotecallback/remotecallback/lint-baseline.xml
index a35d2d2..6a4e19a 100644
--- a/remotecallback/remotecallback/lint-baseline.xml
+++ b/remotecallback/remotecallback/lint-baseline.xml
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.content.Intent#FLAG_RECEIVER_FOREGROUND`"
+ errorLine1=" mIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/remotecallback/RemoteCallback.java"
+ line="121"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `RemoteCallback` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" public static final RemoteCallback LOCAL = new RemoteCallback(null, -1, null, null, null) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/remotecallback/RemoteCallback.java"
+ line="151"
+ column="12"/>
+ </issue>
<issue
id="LambdaLast"
diff --git a/room/common/lint-baseline.xml b/room/common/lint-baseline.xml
index eabb608..39a67b6 100644
--- a/room/common/lint-baseline.xml
+++ b/room/common/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/room/compiler-processing/lint-baseline.xml b/room/compiler-processing/lint-baseline.xml
new file mode 100644
index 0000000..7a7fa1e
--- /dev/null
+++ b/room/compiler-processing/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="BanUncheckedReflection"
+ message="Calling Method.invoke without an SDK check"
+ errorLine1=" return enumClass.getDeclaredMethod("valueOf", String::class.java)"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/room/compiler/processing/javac/JavacAnnotationBox.kt"
+ line="260"
+ column="20"/>
+ </issue>
+
+</issues>
diff --git a/room/guava/lint-baseline.xml b/room/guava/lint-baseline.xml
index cc07fb7..f227df2 100644
--- a/room/guava/lint-baseline.xml
+++ b/room/guava/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/room/integration-tests/testapp/lint-baseline.xml b/room/integration-tests/testapp/lint-baseline.xml
index 318163e..cc0f05a14 100644
--- a/room/integration-tests/testapp/lint-baseline.xml
+++ b/room/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
<issue
id="SyntheticAccessor"
@@ -24,6 +35,39 @@
</issue>
<issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java"
+ line="290"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java"
+ line="300"
+ column="5"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public String getName() {"
diff --git a/room/ktx/lint-baseline.xml b/room/ktx/lint-baseline.xml
index 459d845..6930a4b 100644
--- a/room/ktx/lint-baseline.xml
+++ b/room/ktx/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/room/migration/lint-baseline.xml b/room/migration/lint-baseline.xml
index 8c61639..15aefae 100644
--- a/room/migration/lint-baseline.xml
+++ b/room/migration/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/room/runtime/lint-baseline.xml b/room/runtime/lint-baseline.xml
index 45274d7..8ed3522 100644
--- a/room/runtime/lint-baseline.xml
+++ b/room/runtime/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `directBootAware` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:directBootAware="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="23"
+ column="17"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
diff --git a/room/rxjava2/lint-baseline.xml b/room/rxjava2/lint-baseline.xml
index fa4a807..e47ac13 100644
--- a/room/rxjava2/lint-baseline.xml
+++ b/room/rxjava2/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="PrivateConstructorForUtilityClass"
diff --git a/room/testing/lint-baseline.xml b/room/testing/lint-baseline.xml
index 374badb..d5097bd 100644
--- a/room/testing/lint-baseline.xml
+++ b/room/testing/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/samples/Support4Demos/lint-baseline.xml b/samples/Support4Demos/lint-baseline.xml
index 766b625..6fa0ce4 100644
--- a/samples/Support4Demos/lint-baseline.xml
+++ b/samples/Support4Demos/lint-baseline.xml
@@ -1,5 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScrollViewSize"
+ message="This LinearLayout should use `android:layout_height="wrap_content"`"
+ errorLine1=" android:layout_height="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/accessibility_roledescription.xml"
+ line="8"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ScrollViewSize"
+ message="This TableLayout should use `android:layout_width="wrap_content"`"
+ errorLine1=" android:layout_width="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="41"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="ScrollViewSize"
+ message="This TextView should use `android:layout_height="wrap_content"`"
+ errorLine1=" android:layout_height="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sliding_pane_layout.xml"
+ line="51"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" titleQuery = titleQuery.toLowerCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/model/MusicProvider.java"
+ line="120"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" if (track.metadata.getString(MediaMetadataCompat.METADATA_KEY_TITLE).toLowerCase()"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/model/MusicProvider.java"
+ line="122"
+ column="82"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "details" in layout "fragment_layout_support" is missing from the following layout configurations: layout (present in layout-land)"
+ errorLine1=" <FrameLayout android:id="@+id/details" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_layout_support.xml"
+ line="29"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.content.pm.PackageManager#MATCH_UNINSTALLED_PACKAGES`"
+ errorLine1=" PackageManager.MATCH_UNINSTALLED_PACKAGES"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/LoaderCustomSupport.java"
+ line="235"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.content.pm.PackageManager#MATCH_DISABLED_COMPONENTS`"
+ errorLine1=" | PackageManager.MATCH_DISABLED_COMPONENTS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/LoaderCustomSupport.java"
+ line="236"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#colorPrimary`"
+ errorLine1=" android.R.attr.colorPrimary, Color.DKGRAY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/MediaNotificationManager.java"
+ line="85"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_STOPPED`"
+ errorLine1=" mState = PlaybackState.STATE_STOPPED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="110"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_STOPPED`"
+ errorLine1=" mState = PlaybackState.STATE_STOPPED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="160"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_BUFFERING`"
+ errorLine1=" mState = PlaybackState.STATE_BUFFERING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="170"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_PAUSED`"
+ errorLine1=" mState = PlaybackState.STATE_PAUSED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="211"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_BUFFERING`"
+ errorLine1=" mState = PlaybackState.STATE_BUFFERING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="226"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_PLAYING`"
+ errorLine1=" mState = PlaybackState.STATE_PLAYING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="297"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_BUFFERING`"
+ errorLine1=" mState = PlaybackState.STATE_BUFFERING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="300"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.media.session.PlaybackState#STATE_PLAYING`"
+ errorLine1=" mState = PlaybackState.STATE_PLAYING;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/Playback.java"
+ line="354"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_drawer.xml"
+ line="22"
+ column="9"/>
+ </issue>
<issue
id="WifiManagerLeak"
@@ -68,6 +266,72 @@
</issue>
<issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment class="com.example.android.supportv4.app.FragmentArgumentsSupport$MyFragment""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_arguments_support.xml"
+ line="38"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment class="com.example.android.supportv4.app.FragmentArgumentsSupport$MyFragment""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_arguments_support.xml"
+ line="52"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment android:name="com.example.android.supportv4.app.FragmentHideShowSupport$FirstFragment""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="37"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment android:name="com.example.android.supportv4.app.FragmentHideShowSupport$SecondFragment""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="51"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment class="com.example.android.supportv4.app.FragmentLayoutSupport$TitlesFragment""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_layout_support.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment class="com.example.android.supportv4.app.FragmentLayoutSupport$TitlesFragment""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_layout_support.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
id="MetadataTagInsideApplicationTag"
message="Detected <application>-level meta-data tag."
errorLine1=" <meta-data android:name="com.google.android.gms.car.notification.SmallIcon""
@@ -90,6 +354,138 @@
</issue>
<issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.force_refresh:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/BaseSwipeRefreshLayoutActivity.java"
+ line="170"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.show:"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="77"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.hide:"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="82"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.drawable_compat_no_tint:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/graphics/DrawableCompatActivity.java"
+ line="58"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.drawable_compat_color:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/graphics/DrawableCompatActivity.java"
+ line="61"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.drawable_compat_state_list:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/graphics/DrawableCompatActivity.java"
+ line="64"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.a_item:"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentContextMenuSupport.java"
+ line="69"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.b_item:"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentContextMenuSupport.java"
+ line="72"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.play_pause:"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/QueueFragment.java"
+ line="257"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.skip_previous:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/QueueFragment.java"
+ line="267"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.skip_next:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/QueueFragment.java"
+ line="271"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="As of Android 11, this method no longer returns information about all apps; \
see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ApplicationInfo> apps = mPm.getInstalledApplications("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/LoaderCustomSupport.java"
+ line="234"
+ column="46"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 26, the call containing class com.example.android.supportv4.media.MediaNotificationManager is not annotated with @RequiresApi(x) where x is at least 26. Either annotate the containing class with at least @RequiresApi(26) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(26)."
errorLine1=" notificationManager.createNotificationChannel("
@@ -156,6 +552,127 @@
</issue>
<issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="24dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/bidiformater_support.xml"
+ line="28"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="24dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/bidiformater_support.xml"
+ line="35"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="24dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/bidiformater_support.xml"
+ line="46"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="24dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/bidiformater_support.xml"
+ line="53"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `PlaybackStateCompat.STATE_FAST_FORWARDING`, `PlaybackStateCompat.STATE_REWINDING`, `PlaybackStateCompat.STATE_SKIPPING_TO_NEXT`, `PlaybackStateCompat.STATE_SKIPPING_TO_PREVIOUS`, `PlaybackStateCompat.STATE_SKIPPING_TO_QUEUE_ITEM`"
+ errorLine1=" switch (state.getState()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/QueueFragment.java"
+ line="202"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="PackageManagerGetSignatures"
+ message="Reading app signatures from `getPackageInfo`: The app signatures could be exploited if not validated properly; see issue explanation for details"
+ errorLine1=" callingPackage, PackageManager.GET_SIGNATURES);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/PackageValidator.java"
+ line="103"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="ExportedContentProvider"
+ message="Exported content providers can provide access to potentially sensitive data"
+ errorLine1=" <provider android:name=".app.LoaderThrottleSupport$SimpleProvider""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="202"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ExportedContentProvider"
+ message="Exported content providers can provide access to potentially sensitive data"
+ errorLine1=" <provider android:authorities="com.example.supportv4.content.sharingsupportprovider""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="355"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ExportedService"
+ message="Exported service does not require permission"
+ errorLine1=" <service android:name=".media.MediaBrowserServiceSupport""
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="465"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application android:label="@string/activity_sample_code""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="37"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application android:label="@string/activity_sample_code""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="37"
+ column="6"/>
+ </issue>
+
+ <issue
id="ObsoleteSdkInt"
message="This folder configuration (`v11`) is unnecessary; `minSdkVersion` is 14. Merge all the resources in this folder into `values`.">
<location
@@ -163,6 +680,193 @@
</issue>
<issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" new android.os.AsyncTask<Void, Void, Bitmap[]>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/AlbumArtCache.java"
+ line="95"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" mPopulatingTask = new android.os.AsyncTask<Void, Void, Void>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java"
+ line="440"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" new android.os.AsyncTask<Void, Void, Void>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java"
+ line="468"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" new android.os.AsyncTask<Void, Void, State>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/media/model/MusicProvider.java"
+ line="186"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UseCompoundDrawables"
+ message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_item_icon_text.xml"
+ line="17"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (anonymous android.os.Handler)"
+ errorLine1=" Handler mHandler = new Handler() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/content/LocalServiceBroadcaster.java"
+ line="119"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/fragment_layout_support.xml"
+ line="21"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1=" <LinearLayout android:orientation="horizontal" android:padding="4dip""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_arguments_support.xml"
+ line="35"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_layout_support.xml"
+ line="21"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/fragment_arguments_support.xml"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_arguments_support.xml"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="match_parent" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/send_result.xml"
+ line="27"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="match_parent" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/simple_job_intent_controller.xml"
+ line="23"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="match_parent" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/wakeful_alarm_controller.xml"
+ line="23"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:id="@+id/fragment1" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="38"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:id="@+id/fragment2" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="52"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@android:color/black` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@android:color/black">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="20"
+ column="14"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.drawable.red` appears to be unused"
errorLine1=" <drawable name="red">#7f00</drawable>"
@@ -2884,6 +3588,1183 @@
</issue>
<issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `FrameLayout` parent is useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="80"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/nested_scroll_3_levels.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="insets_none">None yet...</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="250"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="IconDipSize"
+ message="Suspicious file name `ic_equalizer_white_24dp.png`: The implied 24 `dp` size does not match the actual `dp` size (pixel size 96×96 in a `drawable-xxhdpi` folder computes to 32×32 `dp`)">
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_equalizer_white_24dp.png"/>
+ </issue>
+
+ <issue
+ id="IconDipSize"
+ message="The image `ic_equalizer_white_24dp.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-xhdpi/ic_equalizer_white_24dp.png: 24x24 dp (48x48 px), drawable-xxhdpi/ic_equalizer_white_24dp.png: 32x32 dp (96x96 px)">
+ <location
+ file="src/main/res/drawable-xhdpi/ic_equalizer_white_24dp.png"/>
+ <location
+ file="src/main/res/drawable-xxhdpi/ic_equalizer_white_24dp.png"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-hdpi`: ic_default_art.png, ic_equalizer_white_24dp.png, ic_star_off.png, ic_star_on.png">
+ <location
+ file="src/main/res/drawable-hdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-mdpi`: ic_default_art.png, ic_equalizer_white_24dp.png, ic_notification.png, ic_pause_white_24dp.png, ic_play_arrow_white_24dp.png... (4 more)">
+ <location
+ file="src/main/res/drawable-mdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xhdpi`: alert_dialog_icon.png, app_sample_code.png, ic_default_art.png, ic_notification.png, ic_star_off.png... (1 more)">
+ <location
+ file="src/main/res/drawable-xhdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: alert_dialog_icon.png, android_robot.png, app_sample_code.png, ic_drawer_am.png, ic_notification.png... (1 more)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/goto_first""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_pager.xml"
+ line="36"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/goto_last""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_pager.xml"
+ line="40"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/home""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_stack.xml"
+ line="34"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/new_fragment""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_stack.xml"
+ line="39"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/delete_fragment""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_stack.xml"
+ line="43"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="124"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="31"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText android:id="@+id/saved""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/labeled_text_edit.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="124"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="31"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText android:id="@+id/saved""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/labeled_text_edit.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `CustomView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent event) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ExploreByTouchHelperActivity.java"
+ line="128"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rounded_bitmap.xml"
+ line="31"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/drawable_compat.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/icon""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_item_icon_text.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="KeyboardInaccessibleWidget"
+ message="'clickable' attribute found, please also add 'focusable'"
+ errorLine1=" android:clickable="true"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/drawable_compat.xml"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText android:id="@+id/saved""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/labeled_text_edit.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mShowText.setText("Show clicked at " + mShowTime);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="80"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mShowText.setText("Show clicked at " + mShowTime);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="80"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mHideText.setText("Hide clicked at " + mHideTime);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="85"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mHideText.setText("Hide clicked at " + mHideTime);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="85"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mShowTextDone.setText("Shown at ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="97"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mShowTextDone.setText("Shown at ""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="97"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mHideTextDone.setText("Hidden after ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="100"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mHideTextDone.setText("Hidden after ""
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java"
+ line="100"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("Example of displaying an alert dialog with a DialogFragment");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentAlertDialogSupport.java"
+ line="45"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView) tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentCustomAnimationSupport.java"
+ line="125"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView) tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentCustomAnimationSupport.java"
+ line="125"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("This is an instance of MyDialogFragment");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogOrActivitySupport.java"
+ line="78"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView)tv).setText("Example of displaying dialogs with a DialogFragment. ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="43"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("Example of displaying dialogs with a DialogFragment. ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="43"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "Press the show button below to see the first dialog; pressing ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="44"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "successive show buttons will display other dialog styles as a ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="45"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "stack, with dismissing or back going to the previous dialog.");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="46"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView)tv).setText("Dialog #" + mNum + ": using style ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="153"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("Dialog #" + mNum + ": using style ""
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="153"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("Dialog #" + mNum + ": using style ""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentDialogSupport.java"
+ line="153"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" button.setText("Hide");"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentHideShowSupport.java"
+ line="67"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" button.setText("Show");"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentHideShowSupport.java"
+ line="70"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("The fragment saves and restores this text.");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentHideShowSupport.java"
+ line="85"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("The TextView saves and restores this text.");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentHideShowSupport.java"
+ line="111"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView)tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentPagerSupport.java"
+ line="129"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentPagerSupport.java"
+ line="129"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView) tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentStackSupport.java"
+ line="135"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView) tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentStackSupport.java"
+ line="135"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView)tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentStatePagerSupport.java"
+ line="129"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView)tv).setText("Fragment #" + mNum);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/app/FragmentStatePagerSupport.java"
+ line="129"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" callbackData.setText("No broadcast received yet");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/content/LocalServiceBroadcaster.java"
+ line="61"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" callbackData.setText("STARTED");"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/content/LocalServiceBroadcaster.java"
+ line="75"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" callbackData.setText("Got update: " + intent.getIntExtra("value", 0));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/content/LocalServiceBroadcaster.java"
+ line="77"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" callbackData.setText("Got update: " + intent.getIntExtra("value", 0));"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/content/LocalServiceBroadcaster.java"
+ line="77"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" callbackData.setText("STOPPED");"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv4/content/LocalServiceBroadcaster.java"
+ line="79"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show", should use `@string` resource"
+ errorLine1=" android:text="Show" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Hide", should use `@string` resource"
+ errorLine1=" android:text="Hide" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "setDecorFitsSystemWindows", should use `@string` resource"
+ errorLine1=" android:text="setDecorFitsSystemWindows" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="58"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TextView", should use `@string` resource"
+ errorLine1=" android:text="TextView" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="64"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Hey, look at this buttery smooth animation!", should use `@string` resource"
+ errorLine1=" android:text="Hey, look at this buttery smooth animation!""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="92"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Wow, that's pretty neat, how does this work?", should use `@string` resource"
+ errorLine1=" android:text="Wow, that's pretty neat, how does this work?""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="101"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Using the new WindowInsets animation system of course!", should use `@string` resource"
+ errorLine1=" android:text="Using the new WindowInsets animation system of course!""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="110"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Text message", should use `@string` resource"
+ errorLine1=" android:hint="Text message" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="129"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "So that the IME is displayed", should use `@string` resource"
+ errorLine1=" android:hint="So that the IME is displayed""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="34"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "adjustPan", should use `@string` resource"
+ errorLine1=" android:textOn="adjustPan""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="45"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "adjustResize", should use `@string` resource"
+ errorLine1=" android:textOff="adjustResize" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="46"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "View insets", should use `@string` resource"
+ errorLine1=" android:textOn="View insets""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="52"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Root window insets", should use `@string` resource"
+ errorLine1=" android:textOff="Root window insets" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="53"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: system bars", should use `@string` resource"
+ errorLine1=" android:text="Type: system bars""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="65"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: status bars", should use `@string` resource"
+ errorLine1=" android:text="Type: status bars""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="76"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: navigation bars", should use `@string` resource"
+ errorLine1=" android:text="Type: navigation bars""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="87"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: IME", should use `@string` resource"
+ errorLine1=" android:text="Type: IME""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="98"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: caption bar", should use `@string` resource"
+ errorLine1=" android:text="Type: caption bar""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="109"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: system gestures", should use `@string` resource"
+ errorLine1=" android:text="Type: system gestures""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="120"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: mandatory system gestures", should use `@string` resource"
+ errorLine1=" android:text="Type: mandatory system gestures""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="131"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: tappable element", should use `@string` resource"
+ errorLine1=" android:text="Type: tappable element""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="142"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type: display cutout", should use `@string` resource"
+ errorLine1=" android:text="Type: display cutout""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="153"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "System window", should use `@string` resource"
+ errorLine1=" android:text="System window""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="164"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Stable", should use `@string` resource"
+ errorLine1=" android:text="Stable""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_playground.xml"
+ line="175"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "MIME", should use `@string` resource"
+ errorLine1=" android:text="MIME""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="50"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Label", should use `@string` resource"
+ errorLine1=" android:text="Label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="66"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "URI", should use `@string` resource"
+ errorLine1=" android:text="URI""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="82"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Link", should use `@string` resource"
+ errorLine1=" android:text="Link""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="98"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Flags", should use `@string` resource"
+ errorLine1=" android:text="Flags""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/commit_content.xml"
+ line="114"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Demonstration of hiding and showing fragments.", should use `@string` resource"
+ errorLine1=" android:text="Demonstration of hiding and showing fragments." />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Hide", should use `@string` resource"
+ errorLine1=" android:text="Hide" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Hide", should use `@string` resource"
+ errorLine1=" android:text="Hide" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_hide_show_support.xml"
+ line="49"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "No items.", should use `@string` resource"
+ errorLine1=" android:text="No items."/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_pager_list.xml"
+ line="49"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Invisible item", should use `@string` resource"
+ errorLine1=" android:title="Invisible item" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Alvin", should use `@string` resource"
+ errorLine1=" android:title="Alvin" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Bart", should use `@string` resource"
+ errorLine1=" android:title="Bart" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Chris", should use `@string` resource"
+ errorLine1=" android:title="Chris" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "David", should use `@string` resource"
+ errorLine1=" android:title="David" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Eric", should use `@string` resource"
+ errorLine1=" android:title="Eric" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Frank", should use `@string` resource"
+ errorLine1=" android:title="Frank" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="46"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Gary", should use `@string` resource"
+ errorLine1=" android:title="Gary" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="50"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Henry", should use `@string` resource"
+ errorLine1=" android:title="Henry" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="54"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Exclamation", should use `@string` resource"
+ errorLine1=" android:title="Exclamation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/shortcuts.xml"
+ line="58"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Refresh", should use `@string` resource"
+ errorLine1=" android:title="Refresh" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/swipe_refresh_menu.xml"
+ line="21"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "1", should use `@string` resource"
+ errorLine1=" android:text="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/swipe_refresh_widget_child_and_parent.xml"
+ line="31"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "2", should use `@string` resource"
+ errorLine1=" android:text="2""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/swipe_refresh_widget_child_and_parent.xml"
+ line="64"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/activity_insets_controller.xml"
+ line="135"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="left"/>"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/sliding_pane_layout.xml"
+ line="33"
+ column="39"/>
+ </issue>
+
+ <issue
id="LambdaLast"
message="Functional interface parameters (such as parameter 1, "queue", in com.example.android.supportv4.media.utils.QueueHelper.getMusicIndexOnQueue) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
errorLine1=" String mediaId) {"
diff --git a/samples/Support7Demos/lint-baseline.xml b/samples/Support7Demos/lint-baseline.xml
index da08f99..97f449f 100644
--- a/samples/Support7Demos/lint-baseline.xml
+++ b/samples/Support7Demos/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="OnClick"
@@ -46,6 +46,39 @@
</issue>
<issue
+ id="ScrollViewSize"
+ message="This LinearLayout should use `android:layout_height="wrap_content"`"
+ errorLine1=" android:layout_height="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_display_options.xml"
+ line="20"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="ScrollViewSize"
+ message="This TextView should use `android:layout_height="wrap_content"`"
+ errorLine1=" android:layout_height="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/drawer_layout.xml"
+ line="52"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="ScrollViewSize"
+ message="This LinearLayout should use `android:layout_height="wrap_content"`"
+ errorLine1=" android:layout_height="match_parent""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_display_options.xml"
+ line="36"
+ column="17"/>
+ </issue>
+
+ <issue
id="WebViewLayout"
message="Placing a `<WebView>` in a parent element that uses a `wrap_content layout_height` can lead to subtle bugs; use `match_parent` instead"
errorLine1=" <WebView"
@@ -61,6 +94,424 @@
</issue>
<issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" String leadingChar = Character.toString(cheese.toLowerCase().charAt(0));"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/DemoAdapter.java"
+ line="137"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" mLabel.setText(label.toUpperCase() + label + label + "...");"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/DemoHeaderHolder.java"
+ line="44"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("DisplayMetrics = (%d x %d)", dm.widthPixels, dm.heightPixels);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="119"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("View = (%d,%d - %d,%d)","
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="123"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InconsistentLayout"
+ message="The id "vector_image" in layout "appcompat_animated_vector" is missing from the following layout configurations: layout (present in layout-v11)"
+ errorLine1=" <ImageView android:id="@+id/vector_image""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v11/appcompat_animated_vector.xml"
+ line="23"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.media.MediaRouter.RouteInfo#DEVICE_TYPE_TV`"
+ errorLine1=" .setDeviceType(MediaRouter.RouteInfo.DEVICE_TYPE_TV)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="154"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="156"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="157"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.media.MediaRouter.RouteInfo#DEVICE_TYPE_TV`"
+ errorLine1=" .setDeviceType(MediaRouter.RouteInfo.DEVICE_TYPE_TV)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="169"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="171"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="172"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.media.MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER`"
+ errorLine1=" .setDeviceType(MediaRouter.RouteInfo.DEVICE_TYPE_SPEAKER)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="184"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="186"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="187"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.media.MediaRouter.RouteInfo#DEVICE_TYPE_SPEAKER`"
+ errorLine1=" .setDeviceType(MediaRouter.RouteInfo.DEVICE_TYPE_SPEAKER)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="199"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="201"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="202"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="215"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_FIXED)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="216"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="231"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_FIXED)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleDynamicGroupMrp.java"
+ line="232"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="188"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_FIXED`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_FIXED)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="189"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="201"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="202"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="214"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="215"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_TYPE_REMOTE`"
+ errorLine1=" .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="229"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.media.MediaRouter.RouteInfo#PLAYBACK_VOLUME_VARIABLE`"
+ errorLine1=" .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouteProvider.java"
+ line="230"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_FULLSCREEN`"
+ errorLine1=" View.SYSTEM_UI_FLAG_FULLSCREEN, View.SYSTEM_UI_FLAG_HIDE_NAVIGATION,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="62"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_IMMERSIVE_STICKY`"
+ errorLine1=" View.SYSTEM_UI_FLAG_IMMERSIVE, View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="63"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_IMMERSIVE`"
+ errorLine1=" View.SYSTEM_UI_FLAG_IMMERSIVE, View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="63"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN`"
+ errorLine1=" View.SYSTEM_UI_FLAG_LAYOUT_STABLE, View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="64"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_LAYOUT_STABLE`"
+ errorLine1=" View.SYSTEM_UI_FLAG_LAYOUT_STABLE, View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="64"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 16 (current min is 14): `android.view.View#SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION`"
+ errorLine1=" View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="65"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 18 (current min is 14): `android.view.WindowManager.LayoutParams#FLAG_LAYOUT_IN_OVERSCAN`"
+ errorLine1=" final int bits = WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="84"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.view.WindowManager.LayoutParams#FLAG_TRANSLUCENT_STATUS`"
+ errorLine1=" final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="96"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.view.WindowManager.LayoutParams#FLAG_TRANSLUCENT_NAVIGATION`"
+ errorLine1=" final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="108"
+ column="26"/>
+ </issue>
+
+ <issue
id="NewApi"
message="Call requires API level 29 (current min is 14): `android.os.StrictMode.VmPolicy.Builder#detectImplicitDirectBoot`"
errorLine1=" .detectImplicitDirectBoot()"
@@ -259,6 +710,50 @@
</issue>
<issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" mDateFormat = new SimpleDateFormat("HH:mm:ss.SSS");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/ListPopupWindowActivity.java"
+ line="61"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" mDateFormat = new SimpleDateFormat("HH:mm:ss.SSS");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/PopupMenuActivity.java"
+ line="52"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `directBootAware` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:directBootAware="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="470"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pointerIcon` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:pointerIcon="hand""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_item.xml"
+ line="38"
+ column="11"/>
+ </issue>
+
+ <issue
id="AppCompatResource"
message="Should use `android:showAsAction` when not using the appcompat library"
errorLine1=" app:showAsAction="ifRoom""
@@ -468,6 +963,61 @@
</issue>
<issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" View view = layoutInflater.inflate(R.layout.action_bar_settings_action_provider, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarSettingsActionProviderActivity.java"
+ line="75"
+ column="94"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" null));"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/AnimatedRecyclerView.java"
+ line="686"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" R.layout.overlay_display_window, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java"
+ line="296"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" v = getLayoutInflater().inflate(R.layout.media_item, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouterActivity.java"
+ line="677"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" v = getLayoutInflater().inflate(R.layout.media_item, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouterActivity.java"
+ line="712"
+ column="70"/>
+ </issue>
+
+ <issue
id="LongLogTag"
message="The logging tag can be at most 23 characters, was 25 (SampleMediaRouterActivity)"
errorLine1=" Log.d(TAG, "onRouteAdded: route=" + route);"
@@ -633,6 +1183,446 @@
</issue>
<issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_home_as_up:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="80"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_show_home:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="83"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_use_logo:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="86"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_show_title:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="89"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_show_custom:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="92"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.cycle_custom_gravity: {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="95"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_visibility:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="113"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.action_sort_alpha:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarUsage.java"
+ line="76"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.yellow:"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="174"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.aquatic:"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="176"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.classic:"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="178"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.sunbrite:"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="180"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.tropical:"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="182"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.selector:"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="184"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_more_cheese:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="256"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_grid_layout:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="259"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_swipe_during_select:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="262"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_more_cheese:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="281"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_grid_layout:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="285"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_swipe_during_select:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="290"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.option_menu_item_eat_single:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoActivity.java"
+ line="319"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_8:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java"
+ line="116"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_12:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java"
+ line="120"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_16:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java"
+ line="124"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_24:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java"
+ line="128"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_32:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java"
+ line="132"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_8:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java"
+ line="100"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_12:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java"
+ line="104"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_16:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java"
+ line="108"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_24:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java"
+ line="112"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.menu_num_colors_32:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java"
+ line="116"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.show_tabs:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="244"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.hide_tabs:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="248"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_home_as_up:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="80"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_show_home:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="83"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_use_logo:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="86"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_show_title:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="90"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_show_custom:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="93"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.cycle_custom_gravity: {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="96"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.toggle_visibility:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="114"
+ column="18"/>
+ </issue>
+
+ <issue
id="PrivateConstructorForUtilityClass"
message="Utility class with non private constructor"
errorLine1=" private static final class ICSMediaPlayer {"
@@ -644,6 +1634,17 @@
</issue>
<issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/Support7Demos.java"
+ line="62"
+ column="37"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 29, the call containing class com.example.android.supportv7.app.AppCompatDefaultNightModeBootAwareActivity is not annotated with @RequiresApi(x) where x is at least 29. Either annotate the containing class with at least @RequiresApi(29) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(29)."
errorLine1=" .detectImplicitDirectBoot()"
@@ -743,6 +1744,39 @@
</issue>
<issue
+ id="UseSwitchCompatOrMaterialXml"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1=" <Switch"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialXml"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1=" <Switch"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width="256dp""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/vector_drawable_grouping_1.xml"
+ line="18"
+ column="24"/>
+ </issue>
+
+ <issue
id="RestrictedApi"
message="Preconditions.checkArgument can only be called from within the same library group prefix (referenced groupId=`androidx.core` with prefix androidx from groupId=`androidx`)"
errorLine1=" checkArgument(selectionTracker != null);"
@@ -930,6 +1964,402 @@
</issue>
<issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="32dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="32dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="16dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="16dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="35"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="16dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="59"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="16dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="104"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="16dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="136"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="11dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="190"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="onAddTab" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_tabs.xml"
+ line="32"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="onRemoveTab" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_tabs.xml"
+ line="37"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="onToggleTabs" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_tabs.xml"
+ line="42"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="onRemoveAllTabs" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_tabs.xml"
+ line="47"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="onScrollClicked"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_base_layout_manager.xml"
+ line="44"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="deleteSelectedItems""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="61"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="addItem""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="68"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="addDeleteItem""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="75"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="deleteAddItem""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="82"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="d1a2d3""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="89"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="setModeNightFollowSystem""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="30"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="setModeNightNo""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="36"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="setModeNightYes""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="42"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="setModeNightAutoTime""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="48"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="setModeNightAutoBattery""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="54"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="launchActivity""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode_bounce.xml"
+ line="31"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="deleteSelectedItems""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="54"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="addItem""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="61"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="itemClicked""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo_item.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="checkboxClicked" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo_item.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="itemClicked""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selectable_item.xml"
+ line="19"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="UsingOnClickInXml"
+ message="Use databinding or explicit wiring of click listener in code"
+ errorLine1=" android:onClick="checkboxClicked""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selectable_item.xml"
+ line="24"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message=""Ok" is usually capitalized as "OK""
+ errorLine1=" <string name="grid_layout_1_ok">Ok</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="65"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="ExportedContentProvider"
+ message="Exported content providers can provide access to potentially sensitive data"
+ errorLine1=" <provider android:name=".app.RecentSuggestionsProvider""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="521"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ExportedService"
+ message="Exported service does not require permission"
+ errorLine1=" <service android:name=".media.SampleMediaRouteProviderService""
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="122"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ExportedService"
+ message="Exported service does not require permission"
+ errorLine1=" <service android:name=".media.SampleDynamicGroupMrpService""
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="131"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="44"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="44"
+ column="6"/>
+ </issue>
+
+ <issue
id="ObsoleteSdkInt"
message="This folder configuration (`v11`) is unnecessary; `minSdkVersion` is 14. Merge all the resources in this folder into `layout`.">
<location
@@ -937,6 +2367,193 @@
</issue>
<issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" new android.os.AsyncTask<List<String>, Void, Pair<List<String>,"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java"
+ line="75"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `SampleMediaRouterActivity` which has field `mInfoTextView` pointing to `TextView`); this is a memory leak"
+ errorLine1=" private static SampleMediaRouterActivity mActivity;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaButtonReceiver.java"
+ line="33"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseCompoundDrawables"
+ message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dialog_content.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/action_bar_action_mode.xml"
+ line="16"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout-v11/appcompat_animated_vector.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/appcompat_animated_vector.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="17"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_activity_detail.xml"
+ line="35"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="50"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="60"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_height="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="70"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="1">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="32"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?attr/actionBarItemBackground` with a theme that also paints a background (inferred theme is `@style/Theme_AppCompat_Light_DarkActionBar`)"
+ errorLine1=" android:background="?attr/actionBarItemBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_settings_action_provider.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#ffffffff` with a theme that also paints a background (inferred theme is `@style/Theme_AppCompat_Light_NoActionBar`)"
+ errorLine1=" android:background="#ffffffff""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="20"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@drawable/blue` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="@drawable/blue""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_1.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#000000` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="#000000">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/overlay_display_window.xml"
+ line="21"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#ff000000` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="#ff000000">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router_presentation.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.layout.action_bar_tab_content` appears to be unused"
errorLine1="<TextView xmlns:android="http://schemas.android.com/apk/res/android""
@@ -3610,6 +5227,2990 @@
</issue>
<issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `LinearLayout` parent is possibly useless; transfer the `background` attribute to the other view"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_header.xml"
+ line="25"
+ column="4"/>
+ </issue>
+
+ <issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `LinearLayout` parent is possibly useless; transfer the `background` attribute to the other view"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_item.xml"
+ line="25"
+ column="4"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="23"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="51"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="23"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="44"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_header.xml"
+ line="27"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_item.xml"
+ line="27"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_action_mode.xml"
+ line="28"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="23"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="51"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="23"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="44"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_header.xml"
+ line="27"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_item.xml"
+ line="27"
+ column="7"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_action_mode.xml"
+ line="28"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="media_route_menu_title">Play on...</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="31"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="action_bar_share_with">Share with...</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="100"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="action_bar_fragment_menu_msg">Build menus from three fragments, the last one"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="122"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="TypographyEllipsis"
+ message="Replace "..." with ellipsis character (…, &#8230;) ?"
+ errorLine1=" <string name="search_hint">Search...</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="208"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xhdpi`: apidemo_androidlogo.png, app_sample_code.png, ic_android.png, ic_launcher_settings.png, ic_media_pause.png... (4 more)">
+ <location
+ file="src/main/res/drawable-xhdpi"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: drawer_shadow_end.9.png, drawer_shadow.9.png">
+ <location
+ file="src/main/res/drawable-ldrtl-hdpi/drawer_shadow.9.png"/>
+ <location
+ file="src/main/res/drawable-hdpi/drawer_shadow_end.9.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: drawer_shadow_end.9.png, drawer_shadow.9.png">
+ <location
+ file="src/main/res/drawable-mdpi/drawer_shadow.9.png"/>
+ <location
+ file="src/main/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: drawer_shadow_end.9.png, drawer_shadow.9.png">
+ <location
+ file="src/main/res/drawable-xhdpi/drawer_shadow.9.png"/>
+ <location
+ file="src/main/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: drawer_shadow.9.png, drawer_shadow_end.9.png">
+ <location
+ file="src/main/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png"/>
+ <location
+ file="src/main/res/drawable-hdpi/drawer_shadow.9.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: drawer_shadow.9.png, drawer_shadow_end.9.png">
+ <location
+ file="src/main/res/drawable-mdpi/drawer_shadow_end.9.png"/>
+ <location
+ file="src/main/res/drawable-ldrtl-mdpi/drawer_shadow.9.png"/>
+ </issue>
+
+ <issue
+ id="IconDuplicates"
+ message="The following unrelated icon files have identical contents: drawer_shadow.9.png, drawer_shadow_end.9.png">
+ <location
+ file="src/main/res/drawable-xhdpi/drawer_shadow_end.9.png"/>
+ <location
+ file="src/main/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="56"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="64"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="71"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="78"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/animated_recycler_view.xml"
+ line="85"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="49"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="57"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_smoothscrollby.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="90"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_input.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_1.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="51"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="51"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AlwaysShowAction"
+ message="Prefer "`ifRoom`" instead of "`always`""
+ errorLine1=" app:showAsAction="always"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/menu_with_tinted_icons.xml"
+ line="26"
+ column="9"/>
+ <location
+ file="src/main/res/menu/menu_with_tinted_icons.xml"
+ line="34"
+ column="9"/>
+ <location
+ file="src/main/res/menu/menu_with_tinted_icons.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_base_layout_manager.xml"
+ line="31"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_smoothscrollby.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="90"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_input.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_1.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="51"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="51"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/sorted_list_activity.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonCase"
+ message="@android:string/no actually returns "Cancel", not "No"; use @android:string/cancel instead or create a local string resource for No"
+ errorLine1=" android:text="@android:string/no""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dialog_content_buttons.xml"
+ line="42"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="ButtonCase"
+ message="The standard Android way to capitalize Ok is "OK" (tip: use `@android:string/ok` instead)"
+ errorLine1=" <string name="grid_layout_1_ok">Ok</string>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/strings.xml"
+ line="65"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``Button`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" vh.actionButton.setOnTouchListener(new View.OnTouchListener() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/touch/DragAndDropActivity.java"
+ line="110"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/touch/DragAndDropActivity.java"
+ line="112"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View view, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java"
+ line="452"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``Button`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" vh.actionButton.setOnTouchListener(new View.OnTouchListener() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/touch/SwipeToDismissActivity.java"
+ line="145"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/touch/SwipeToDismissActivity.java"
+ line="147"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_settings_action_provider.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="33"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView android:id="@+id/vector_image""
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout-v11/appcompat_animated_vector.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_icons.xml"
+ line="30"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_icons.xml"
+ line="35"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_icons.xml"
+ line="40"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_icons.xml"
+ line="45"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_icons.xml"
+ line="50"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/custom_drawable_image.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/custom_drawable_image.xml"
+ line="29"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dialog_content.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dialog_content_buttons.xml"
+ line="28"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/item_action""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media_item.xml"
+ line="26"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_controller.xml"
+ line="27"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/pause_resume_button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_controller.xml"
+ line="42"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/stop_button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_controller.xml"
+ line="49"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/pause_resume_button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="99"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton android:id="@+id/stop_button""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="109"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="KeyboardInaccessibleWidget"
+ message="'clickable' attribute found, please also add 'focusable'"
+ errorLine1=" android:clickable="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="215"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="KeyboardInaccessibleWidget"
+ message="'clickable' attribute found, please also add 'focusable'"
+ errorLine1=" android:clickable="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="37"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="KeyboardInaccessibleWidget"
+ message="'clickable' attribute found, please also add 'focusable'"
+ errorLine1=" android:clickable="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_views.xml"
+ line="61"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_smoothscrollby.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_night_mode.xml"
+ line="90"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_1.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="43"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="51"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="51"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" myViewHolder.textView.setText("More text for the expanded version");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/AnimatedRecyclerView.java"
+ line="706"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" holder.textView.setText("loading...");"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/AsyncListUtilActivity.java"
+ line="98"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView) convertView).setText(" " + position + " ");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/BaseLayoutManagerActivity.java"
+ line="153"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mInfoText.setText("radius: " + mCornerRadiusSeekBar.getProgress()"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="88"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mInfoText.setText("radius: " + mCornerRadiusSeekBar.getProgress()"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="88"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + ", alpha: " + mAlphaSeekBar.getProgress()"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="89"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "\nelevation: " + mCardView.getCardElevation() + " of ""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/CardViewActivity.java"
+ line="91"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mLabel.setText(label.toUpperCase() + label + label + "...");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/selection/fancy/DemoHeaderHolder.java"
+ line="44"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" shuffle.setText("Shuffle");"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java"
+ line="57"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" c.setText("Email setup");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/GridLayout3.java"
+ line="80"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" c.setText("You can configure email in a few simple steps:");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/GridLayout3.java"
+ line="86"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" c.setText("Email address:");"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/GridLayout3.java"
+ line="91"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" c.setText("Password:");"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/GridLayout3.java"
+ line="102"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" c.setText("Manual setup");"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/GridLayout3.java"
+ line="113"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" c.setText("Next");"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/GridLayout3.java"
+ line="118"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mLog.setText(toPrepend + mLog.getText());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/ListPopupWindowActivity.java"
+ line="165"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" title.setText("Title for #" + i);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/ListViewActivity.java"
+ line="66"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" title.setText("Title for #" + i);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/ListViewActivity.java"
+ line="66"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" subtitle.setText("Subtitle for #" + i);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/ListViewActivity.java"
+ line="67"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" subtitle.setText("Subtitle for #" + i);"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/ListViewActivity.java"
+ line="67"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mLog.setText(toPrepend + mLog.getText());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/PopupMenuActivity.java"
+ line="122"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" holder.nameTextView.text = "Item $position""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/RecyclerViewCoordinatorLayoutAppBarActivity.kt"
+ line="57"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" holder.nameTextView.text = "Item $position""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/RecyclerViewCoordinatorLayoutAppBarActivity.kt"
+ line="57"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" textView.setText("Position: " + position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/RvIn2NestedScrollViewsActivity.java"
+ line="75"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView.setText("Position: " + position);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/RvIn2NestedScrollViewsActivity.java"
+ line="75"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" textView.setText("Position: " + position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/RvInNestedScrollViewActivity.java"
+ line="75"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView.setText("Position: " + position);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/RvInNestedScrollViewActivity.java"
+ line="75"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mInfoTextView.setText("Currently selected route:""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouterActivity.java"
+ line="595"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mInfoTextView.setText("Currently selected route:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/SampleMediaRouterActivity.java"
+ line="595"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" holder.mTextView.setText(position + ":" + mValues.get(position));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java"
+ line="93"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mHolderNumberView.setText("View Nr: " + sHolderNumber++);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/StableIdActivity.java"
+ line="94"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mHolderNumberView.setText("View Nr: " + sHolderNumber++);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/widget/StableIdActivity.java"
+ line="94"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" mMetricsText.setText(getDisplaySize() + " " + getViewSize());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
+ line="129"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Changing elevation with the buttons below is only relevant on SDK 21+", should use `@string` resource"
+ errorLine1=" android:text="Changing elevation with the buttons below is only relevant on SDK 21+" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_background_change.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Transparent BG + no elevation", should use `@string` resource"
+ errorLine1=" android:text="Transparent BG + no elevation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_background_change.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Color BG + elevation", should use `@string` resource"
+ errorLine1=" android:text="Color BG + elevation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/action_bar_background_change.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "smooth scroll", should use `@string` resource"
+ errorLine1=" android:text="smooth scroll""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_base_layout_manager.xml"
+ line="28"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "offset", should use `@string` resource"
+ errorLine1=" android:hint="offset"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_base_layout_manager.xml"
+ line="36"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "scroll", should use `@string` resource"
+ errorLine1=" android:text="scroll""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_base_layout_manager.xml"
+ line="43"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "ONE", should use `@string` resource"
+ errorLine1=" android:text="ONE"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_in_two_nestedscrollviews.xml"
+ line="31"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TWO", should use `@string` resource"
+ errorLine1=" android:text="TWO"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_in_two_nestedscrollviews.xml"
+ line="46"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "FOUR", should use `@string` resource"
+ errorLine1=" android:text="FOUR"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_in_two_nestedscrollviews.xml"
+ line="57"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "FIVE", should use `@string` resource"
+ errorLine1=" android:text="FIVE"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_in_two_nestedscrollviews.xml"
+ line="66"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "100", should use `@string` resource"
+ errorLine1=" android:text="100"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_smoothscrollby.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "down", should use `@string` resource"
+ errorLine1=" android:text="down""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_smoothscrollby.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "up", should use `@string` resource"
+ errorLine1=" android:text="up""
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_rv_smoothscrollby.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show selected dialog", should use `@string` resource"
+ errorLine1=" android:text="Show selected dialog""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/alert_dialog_usage.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Check me out", should use `@string` resource"
+ errorLine1=" android:text="Check me out"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="45"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Uncheckable", should use `@string` resource"
+ errorLine1=" android:text="Uncheckable"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="51"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "I shouldn't be animated", should use `@string` resource"
+ errorLine1=" android:text="I shouldn't be animated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="57"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Radio 1", should use `@string` resource"
+ errorLine1=" android:text="Radio 1"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="68"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Radio 2", should use `@string` resource"
+ errorLine1=" android:text="Radio 2"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="73"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "No Radio", should use `@string` resource"
+ errorLine1=" android:text="No Radio"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_animated_selector.xml"
+ line="79"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "CheckBox", should use `@string` resource"
+ errorLine1=" android:text="CheckBox" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="33"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "RadioButton", should use `@string` resource"
+ errorLine1=" android:text="RadioButton" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="44"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "RadioButton", should use `@string` resource"
+ errorLine1=" android:text="RadioButton" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="50"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button", should use `@string` resource"
+ errorLine1=" android:text="Button" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button disabled", should use `@string` resource"
+ errorLine1=" android:text="Button disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="63"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (small)", should use `@string` resource"
+ errorLine1=" android:text="Button (small)" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="69"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (small) disabled", should use `@string` resource"
+ errorLine1=" android:text="Button (small) disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="76"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (borderless)", should use `@string` resource"
+ errorLine1=" android:text="Button (borderless)" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="82"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (borderless) disabled", should use `@string` resource"
+ errorLine1=" android:text="Button (borderless) disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="89"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (borderless + colored)", should use `@string` resource"
+ errorLine1=" android:text="Button (borderless + colored)" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="95"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (borderless + colored) disabled", should use `@string` resource"
+ errorLine1=" android:text="Button (borderless + colored) disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="102"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (tinted)", should use `@string` resource"
+ errorLine1=" android:text="Button (tinted)""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="108"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (tinted) disabled", should use `@string` resource"
+ errorLine1=" android:text="Button (tinted) disabled""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="116"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (colored)", should use `@string` resource"
+ errorLine1=" android:text="Button (colored)" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="123"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (colored) disabled", should use `@string` resource"
+ errorLine1=" android:text="Button (colored) disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="130"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (colored + tinted)", should use `@string` resource"
+ errorLine1=" android:text="Button (colored + tinted)""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="136"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Button (colored + tinted) disabled", should use `@string` resource"
+ errorLine1=" android:text="Button (colored + tinted) disabled""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_buttons.xml"
+ line="144"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Switch", should use `@string` resource"
+ errorLine1=" android:text="Switch" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="33"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Switch disabled", should use `@string` resource"
+ errorLine1=" android:text="Switch disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "SwitchCompat", should use `@string` resource"
+ errorLine1=" android:text="SwitchCompat" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "SwitchCompat disabled", should use `@string` resource"
+ errorLine1=" android:text="SwitchCompat disabled" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="50"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "SwitchCompat custom drawables", should use `@string` resource"
+ errorLine1=" android:text="SwitchCompat custom drawables" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="57"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "SwitchCompat custom drawables + tint", should use `@string` resource"
+ errorLine1=" android:text="SwitchCompat custom drawables + tint" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_switches.xml"
+ line="66"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "EditText", should use `@string` resource"
+ errorLine1=" android:hint="EditText"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_input.xml"
+ line="28"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "AutoCompleteTextView", should use `@string` resource"
+ errorLine1=" android:hint="AutoCompleteTextView"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_input.xml"
+ line="34"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "MultiAutoCompleteTextView", should use `@string` resource"
+ errorLine1=" android:hint="MultiAutoCompleteTextView"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_input.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "CheckedTextView", should use `@string` resource"
+ errorLine1=" android:text="CheckedTextView""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_text_input.xml"
+ line="45"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Toggle regular", should use `@string` resource"
+ errorLine1=" android:text="Toggle regular"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_toggle_buttons.xml"
+ line="33"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Toggle (tinted green)", should use `@string` resource"
+ errorLine1=" android:text="Toggle (tinted green)"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_toggle_buttons.xml"
+ line="42"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Toggle (tinted peach)", should use `@string` resource"
+ errorLine1=" android:text="Toggle (tinted peach)"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/appcompat_widgets_toggle_buttons.xml"
+ line="52"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show Tabs", should use `@string` resource"
+ errorLine1=" android:title="Show Tabs""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/content_actions.xml"
+ line="31"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Hide Tabs", should use `@string` resource"
+ errorLine1=" android:title="Hide Tabs""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/content_actions.xml"
+ line="34"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Stable Layout", should use `@string` resource"
+ errorLine1=" android:title="Stable Layout""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/content_actions.xml"
+ line="41"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show selected dialog", should use `@string` resource"
+ errorLine1=" android:text="Show selected dialog""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/dialog_usage.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Email setup", should use `@string` resource"
+ errorLine1=" android:text="Email setup""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Email setup", should use `@string` resource"
+ errorLine1=" android:text="Email setup""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "You can configure email in a few simple steps:", should use `@string` resource"
+ errorLine1=" android:text="You can configure email in a few simple steps:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "You can configure email in a few simple steps:", should use `@string` resource"
+ errorLine1=" android:text="You can configure email in a few simple steps:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Email address:", should use `@string` resource"
+ errorLine1=" android:text="Email address:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Email address:", should use `@string` resource"
+ errorLine1=" android:text="Email address:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Password:", should use `@string` resource"
+ errorLine1=" android:text="Password:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="47"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Password:", should use `@string` resource"
+ errorLine1=" android:text="Password:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="47"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Manual setup", should use `@string` resource"
+ errorLine1=" android:text="Manual setup""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="55"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Manual setup", should use `@string` resource"
+ errorLine1=" android:text="Manual setup""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="55"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Next", should use `@string` resource"
+ errorLine1=" android:text="Next""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/grid_layout_2.xml"
+ line="60"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Next", should use `@string` resource"
+ errorLine1=" android:text="Next""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_2.xml"
+ line="60"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Toolbar", should use `@string` resource"
+ errorLine1=" android:text="Toolbar" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/nsv_cl_appbar_activity.xml"
+ line="31"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "LV", should use `@string` resource"
+ errorLine1=" android:text="LV" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "V", should use `@string` resource"
+ errorLine1=" android:text="V" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="46"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "DV", should use `@string` resource"
+ errorLine1=" android:text="DV" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="54"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "LM", should use `@string` resource"
+ errorLine1=" android:text="LM" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="63"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "M", should use `@string` resource"
+ errorLine1=" android:text="M" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="71"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "DM", should use `@string` resource"
+ errorLine1=" android:text="DM" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/palette_list_item.xml"
+ line="79"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Reverse", should use `@string` resource"
+ errorLine1=" android:text="Reverse""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="31"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "StackFromEnd", should use `@string` resource"
+ errorLine1=" android:text="StackFromEnd""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/remove_large_items_demo.xml"
+ line="38"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Toolbar", should use `@string` resource"
+ errorLine1=" android:text="Toolbar" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/rv_cl_appbar_activity.xml"
+ line="31"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Num Colors", should use `@string` resource"
+ errorLine1=" android:title="Num Colors""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/sample_palette_actions.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "8", should use `@string` resource"
+ errorLine1=" android:title="8" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/sample_palette_actions.xml"
+ line="31"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "12", should use `@string` resource"
+ errorLine1=" android:title="12" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/sample_palette_actions.xml"
+ line="35"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "16", should use `@string` resource"
+ errorLine1=" android:title="16""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/sample_palette_actions.xml"
+ line="39"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "24", should use `@string` resource"
+ errorLine1=" android:title="24" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/sample_palette_actions.xml"
+ line="44"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "32", should use `@string` resource"
+ errorLine1=" android:title="32" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/sample_palette_actions.xml"
+ line="48"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show all the cheeses!", should use `@string` resource"
+ errorLine1=" android:title="Show all the cheeses!""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/selection_demo_actions.xml"
+ line="20"
+ column="8"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Grid layout please!", should use `@string` resource"
+ errorLine1=" android:title="Grid layout please!""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/selection_demo_actions.xml"
+ line="24"
+ column="8"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Swipe when stuff is selected!", should use `@string` resource"
+ errorLine1=" android:title="Swipe when stuff is selected!""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/selection_demo_actions.xml"
+ line="28"
+ column="8"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Eat this cheese", should use `@string` resource"
+ errorLine1=" android:title="Eat this cheese" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/selection_demo_item_actions.xml"
+ line="20"
+ column="8"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Eat these cheeses", should use `@string` resource"
+ errorLine1=" android:title="Eat these cheeses" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/selection_demo_item_actions.xml"
+ line="23"
+ column="8"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Welcome to the world of cheese!", should use `@string` resource"
+ errorLine1=" android:text="Welcome to the world of cheese!" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_layout.xml"
+ line="39"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "✕", should use `@string` resource"
+ errorLine1=" android:text="✕">"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/selection_demo_list_item.xml"
+ line="39"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Mode:", should use `@string` resource"
+ errorLine1=" android:text="Mode:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="62"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "FULLSCRN", should use `@string` resource"
+ errorLine1=" android:text="FULLSCRN""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="69"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "LOW_PROFILE", should use `@string` resource"
+ errorLine1=" android:text="LOW_PROFILE""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="76"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "HIDE_NAV", should use `@string` resource"
+ errorLine1=" android:text="HIDE_NAV""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="83"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "IMMERSIVE", should use `@string` resource"
+ errorLine1=" android:text="IMMERSIVE""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="90"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "IMM_STICKY", should use `@string` resource"
+ errorLine1=" android:text="IMM_STICKY""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="97"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Layout:", should use `@string` resource"
+ errorLine1=" android:text="Layout:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="107"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "FULLSCRN", should use `@string` resource"
+ errorLine1=" android:text="FULLSCRN""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="114"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "STABLE", should use `@string` resource"
+ errorLine1=" android:text="STABLE""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="121"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "HIDE_NAV", should use `@string` resource"
+ errorLine1=" android:text="HIDE_NAV""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="128"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Window:", should use `@string` resource"
+ errorLine1=" android:text="Window:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="139"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "No ActionBar", should use `@string` resource"
+ errorLine1=" android:text="No ActionBar""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="146"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "FULLSCRN", should use `@string` resource"
+ errorLine1=" android:text="FULLSCRN""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="153"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Action Mode", should use `@string` resource"
+ errorLine1=" android:text="Action Mode""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="160"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "OVERSCAN", should use `@string` resource"
+ errorLine1=" android:text="OVERSCAN""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="167"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TRANS_STATUS", should use `@string` resource"
+ errorLine1=" android:text="TRANS_STATUS""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="174"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TRANS_NAV", should use `@string` resource"
+ errorLine1=" android:text="TRANS_NAV""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="181"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Transparent BG + no elevation", should use `@string` resource"
+ errorLine1=" android:text="Transparent BG + no elevation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_background_change.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Color BG + elevation", should use `@string` resource"
+ errorLine1=" android:text="Color BG + elevation" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_background_change.xml"
+ line="44"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Your content", should use `@string` resource"
+ errorLine1=" android:text="Your content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_tall.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Your content", should use `@string` resource"
+ errorLine1=" android:text="Your content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/toolbar_usage.xml"
+ line="36"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
+ errorLine1=" android:paddingEnd="@dimen/control_offset_medium""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_popup_window_activity.xml"
+ line="38"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
+ errorLine1=" android:paddingRight="@dimen/control_offset_medium""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_popup_window_activity.xml"
+ line="39"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.LEFT:"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="99"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" newGravity = Gravity.RIGHT;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="103"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.RIGHT:"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="105"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" newGravity = Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ActionBarDisplayOptions.java"
+ line="106"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" params.gravity = Gravity.LEFT | Gravity.BOTTOM;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java"
+ line="146"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" mWindowParams.gravity = Gravity.TOP | Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java"
+ line="329"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" mWindowX = (mGravity & Gravity.LEFT) == Gravity.LEFT ?"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java"
+ line="337"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" mWindowX = (mGravity & Gravity.LEFT) == Gravity.LEFT ?"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java"
+ line="337"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.LEFT:"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="100"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" newGravity = Gravity.RIGHT;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="104"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.RIGHT:"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="106"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" newGravity = Gravity.LEFT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/supportv7/app/ToolbarDisplayOptions.java"
+ line="107"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/radius_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/radius_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="40"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignEnd="@id/radius_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignRight="@id/radius_label"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="50"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/width_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/width_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="56"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignEnd="@id/width_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignRight="@id/width_label"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="66"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/height_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/height_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="72"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignEnd="@id/height_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignRight="@id/height_label"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="83"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/elevation_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/elevation_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="89"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignEnd="@id/elevation_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignRight="@id/elevation_label"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="100"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/max_elevation_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/max_elevation_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="106"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignEnd="@id/max_elevation_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignRight="@id/max_elevation_label"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="117"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/alpha_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/alpha_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="124"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignEnd="@id/alpha_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignRight="@id/alpha_label"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="134"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/color_label"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/color_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="140"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="141"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toEndOf="@id/card_view"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toRightOf="@id/card_view""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_card_view.xml"
+ line="227"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="right""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/layout/dialog_content_buttons.xml"
+ line="36"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_marginStart="10dip"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="10dip""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/grid_layout_1.xml"
+ line="45"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media_item.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_toStartOf="@id/item_action"` to better support right-to-left layouts"
+ errorLine1=" android:layout_toLeftOf="@id/item_action""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/media_item.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/media_item.xml"
+ line="41"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="left"/>"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/media_item.xml"
+ line="42"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="right""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="103"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:layout_gravity="right""
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/layout/sample_media_router.xml"
+ line="113"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="61"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="106"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/system_ui_modes.xml"
+ line="138"
+ column="38"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/samples/SupportAnimationDemos/lint-baseline.xml b/samples/SupportAnimationDemos/lint-baseline.xml
index f1bc67c..b444863 100644
--- a/samples/SupportAnimationDemos/lint-baseline.xml
+++ b/samples/SupportAnimationDemos/lint-baseline.xml
@@ -1,5 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="CanvasSize"
+ message="Calling `Canvas.getWidth()` is usually wrong; you should be calling `getWidth()` instead"
+ errorLine1=" final float x = canvas.getWidth() / 2;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/SpringView.java"
+ line="55"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" drTxt.setText(String.format("%.4f", (float) mDampingRatio));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/MainActivity.java"
+ line="132"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" nfTxt.setText(String.format("%.3f", (float) stiffness));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/MainActivity.java"
+ line="154"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" drTxt.setText(String.format("%.4f", (float) mDampingRatio));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/SpringActivity.java"
+ line="116"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" nfTxt.setText(String.format("%.3f", (float) stiffness));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/SpringActivity.java"
+ line="138"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/BrowseActivity.java"
+ line="65"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application android:label="@string/activity_sample_code""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application android:label="@string/activity_sample_code""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `FrameLayout`: `layout_centerHorizontal`"
+ errorLine1=" android:layout_centerHorizontal="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="43"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `FrameLayout`: `layout_centerVertical`"
+ errorLine1=" android:layout_centerVertical="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/activity_chained_springs.xml"
+ line="17"
+ column="1"/>
+ </issue>
<issue
id="SyntheticAccessor"
@@ -244,6 +365,127 @@
</issue>
<issue
+ id="UselessParent"
+ message="This `FrameLayout` layout or its `RelativeLayout` parent is possibly useless"
+ errorLine1=" <FrameLayout"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="30"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View view, MotionEvent motionEvent) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/MainActivity.java"
+ line="75"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent motionEvent) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/animation/SpringActivity.java"
+ line="62"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_chained_springs.xml"
+ line="87"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_chained_springs.xml"
+ line="93"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="39"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Damping Ratio:", should use `@string` resource"
+ errorLine1=" android:text="Damping Ratio:"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_chained_springs.xml"
+ line="33"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Stiffness:", should use `@string` resource"
+ errorLine1=" android:text="Stiffness:"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_chained_springs.xml"
+ line="59"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Drag\n Me", should use `@string` resource"
+ errorLine1=" android:text="Drag\n Me""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_chained_springs.xml"
+ line="85"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Damping Ratio:", should use `@string` resource"
+ errorLine1=" android:text="Damping Ratio:"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="63"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Stiffness:", should use `@string` resource"
+ errorLine1=" android:text="Stiffness:"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="89"
+ column="21"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
diff --git a/samples/SupportContentDemos/lint-baseline.xml b/samples/SupportContentDemos/lint-baseline.xml
index 0c32d64..0f7d3b8 100644
--- a/samples/SupportContentDemos/lint-baseline.xml
+++ b/samples/SupportContentDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="AppCompatResource"
@@ -35,6 +35,50 @@
</issue>
<issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.action_load:"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/content/demos/ContentPagerDemoActivity.java"
+ line="88"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.action_previous:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/content/demos/ContentPagerDemoActivity.java"
+ line="91"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.action_next:"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/content/demos/ContentPagerDemoActivity.java"
+ line="94"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
id="SyntheticAccessor"
message="Access to `private` constructor of class `Adapter` requires synthetic accessor"
errorLine1=" mAdapter = new Adapter(mPager, PAGE_SIZE);"
@@ -123,6 +167,47 @@
</issue>
<issue
+ id="AlwaysShowAction"
+ message="Prefer "`ifRoom`" instead of "`always`""
+ errorLine1=" app:showAsAction="always"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/menu_demo.xml"
+ line="25"
+ column="11"/>
+ <location
+ file="src/main/res/menu/menu_demo.xml"
+ line="31"
+ column="11"/>
+ <location
+ file="src/main/res/menu/menu_demo.xml"
+ line="37"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" holder.view.setText("Nope, couldn't position cursor to: " + position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/content/demos/ContentPagerDemoActivity.java"
+ line="183"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" holder.view.setText("Nope, couldn't position cursor to: " + position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/content/demos/ContentPagerDemoActivity.java"
+ line="183"
+ column="37"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/samples/SupportEmojiDemos/lint-baseline.xml b/samples/SupportEmojiDemos/lint-baseline.xml
index 0d6220d..8510b5e 100644
--- a/samples/SupportEmojiDemos/lint-baseline.xml
+++ b/samples/SupportEmojiDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
@@ -57,6 +57,424 @@
</issue>
<issue
+ id="Typos"
+ message="Did you mean "CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA!" instead of "CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="995"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA!" instead of "DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="152"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="176"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="200"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="396"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="420"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="444"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1092"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1116"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1140"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "MAwGA!" instead of "MAwGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1221"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA!" instead of "NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="305"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "hZeTfHwqNvacKhp!" instead of "hZeTfHwqNvacKhp1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="684"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "mtKoOD!" instead of "mtKoOD1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1326"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "pYTEWMBQGA!" instead of "pYTEWMBQGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="112"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "pYTEWMBQGA!" instead of "pYTEWMBQGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="356"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "pYTEWMBQGA!" instead of "pYTEWMBQGA1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1052"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "wNfdIjIz!" instead of "wNfdIjIz1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="1279"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "xT!" instead of "xT1" ?"
+ errorLine1=" MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs="
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="24"
+ column="803"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="180"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="204"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="380"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "GA!" instead of "GA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="404"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "MQswCQYDVQQGEwJVUzETMBEGA!" instead of "MQswCQYDVQQGEwJVUzETMBEGA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="917"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "XFI!" instead of "XFI1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="1337"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "gVmlldzEUMBIGA!" instead of "gVmlldzEUMBIGA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="988"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "iZBqpknHf!" instead of "iZBqpknHf1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="1294"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "idkyugwfYwXFU!" instead of "idkyugwfYwXFU1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="644"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "jMIhF!" instead of "jMIhF1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="837"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "jMIhF!" instead of "jMIhF1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="885"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "pYTEWMBQGA!" instead of "pYTEWMBQGA1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="960"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "sypEwPpt!" instead of "sypEwPpt1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="498"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "ybmlhMRYwFAYDVQQHEw!" instead of "ybmlhMRYwFAYDVQQHEw1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="108"/>
+ </issue>
+
+ <issue
+ id="Typos"
+ message="Did you mean "ybmlhMRYwFAYDVQQHEw!" instead of "ybmlhMRYwFAYDVQQHEw1" ?"
+ errorLine1=" MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/font_certs.xml"
+ line="29"
+ column="308"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `Config` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static Config sInstance;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/text/emoji/Config.java"
+ line="41"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout"
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
id="SyntheticAccessor"
message="Access to `private` method `read` of class `EmojiRepo` requires synthetic accessor"
errorLine1=" read(context);"
@@ -101,6 +519,105 @@
</issue>
<issue
+ id="UselessParent"
+ message="This `ScrollView` layout or its `FrameLayout` parent is possibly useless"
+ errorLine1=" <ScrollView"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_main.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_item_emoji.xml"
+ line="25"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_item_emoji.xml"
+ line="33"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show all emojis", should use `@string` resource"
+ errorLine1=" android:text="Show all emojis"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_main.xml"
+ line="80"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "EmojiCompat", should use `@string` resource"
+ errorLine1=" android:text="EmojiCompat""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/layout_config.xml"
+ line="32"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Replace All", should use `@string` resource"
+ errorLine1=" android:text="Replace All""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/layout_config.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Downloadable", should use `@string` resource"
+ errorLine1=" android:text="Downloadable""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/layout_config.xml"
+ line="46"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Indicator", should use `@string` resource"
+ errorLine1=" android:text="Indicator""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/layout_config.xml"
+ line="53"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider adding `android:layout_marginStart="@dimen/spacing_small"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginLeft="@dimen/spacing_small"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/list_item_emoji.xml"
+ line="39"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public ConfigLayout(Context context) {"
diff --git a/samples/SupportLeanbackDemos/lint-baseline.xml b/samples/SupportLeanbackDemos/lint-baseline.xml
index 25dcc04..8f7a4da 100644
--- a/samples/SupportLeanbackDemos/lint-baseline.xml
+++ b/samples/SupportLeanbackDemos/lint-baseline.xml
@@ -1,5 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.appcompat.AppCompatIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 7 (4.0), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/e89b39c1e7aed820921e8a0e91e1121c/appcompat-1.2.0/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.fragment.lint.FragmentIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/38e69ca3d85f212c778f2525693f521d/fragment-1.2.0/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.lifecycle.lint.LifecycleRuntimeIssueRegistry`) which is older than the current API level; these checks may not work correctly.

Recompile the checks against the latest version. Custom check API version is 6 (3.6), current lint API level is 8 (4.1)">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/978ca5ef4768037f7867d4f4a6ee707a/lifecycle-runtime-ktx-2.2.0/jars/lint.jar"/>
+ </issue>
<issue
id="MissingSuperCall"
@@ -46,6 +67,171 @@
</issue>
<issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" b.append(String.format("%.2f", ((float) seconds + seconds2)));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/PlaybackSeekDataProviderSample.java"
+ line="80"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" "/sdcard/seek/frame_%04d.jpg"));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/NewDetailsFragment.java"
+ line="109"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" "/sdcard/seek/frame_%04d.jpg"));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/NewDetailsSupportFragment.java"
+ line="112"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" "/sdcard/seek/frame_%04d.jpg"));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/SampleVideoFragment.java"
+ line="80"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" "/sdcard/seek/frame_%04d.jpg"));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/SampleVideoFragment.java"
+ line="92"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" "/sdcard/seek/frame_%04d.jpg"));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/SampleVideoSupportFragment.java"
+ line="83"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SdCardPath"
+ message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
+ errorLine1=" "/sdcard/seek/frame_%04d.jpg"));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/SampleVideoSupportFragment.java"
+ line="95"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `resizeableActivity` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:resizeableActivity="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="93"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `supportsPictureInPicture` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:supportsPictureInPicture="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="94"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `resizeableActivity` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:resizeableActivity="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="101"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `supportsPictureInPicture` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:supportsPictureInPicture="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="102"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `resizeableActivity` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:resizeableActivity="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="109"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `supportsPictureInPicture` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:supportsPictureInPicture="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="110"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `resizeableActivity` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:resizeableActivity="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="117"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `supportsPictureInPicture` is only used in API level 24 and higher (current min is 21)"
+ errorLine1=" android:supportsPictureInPicture="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="118"
+ column="13"/>
+ </issue>
+
+ <issue
id="BanSynchronizedMethods"
message="Use of synchronized methods is not recommended"
errorLine1=" /**"
@@ -57,6 +243,226 @@
</issue>
<issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_music_example.xml"
+ line="17"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/browse.xml"
+ line="23"
+ column="3"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1="<fragment xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/browse_animation.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/browse_support.xml"
+ line="25"
+ column="3"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/fragment_tab.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/onboarding.xml"
+ line="22"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/playback_activity.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/playback_activity_support.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/playback_controls.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/playback_controls_support.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/playback_transportcontrol_activity.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/playback_transportcontrol_activity_support.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/rows.xml"
+ line="24"
+ column="4"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/rows_support.xml"
+ line="26"
+ column="4"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1="<fragment xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/search.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1="<fragment xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/search_support.xml"
+ line="20"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1=" <fragment"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/settings.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1="<fragment xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/vertical_grid.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="FragmentTagUsage"
+ message="Replace the <fragment> tag with FragmentContainerView."
+ errorLine1="<fragment xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/vertical_grid_support.xml"
+ line="20"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" View view = getLayoutInflater().inflate(R.layout.horizontal_grid, null, false);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/HorizontalGridTestActivity.java"
+ line="55"
+ column="75"/>
+ </issue>
+
+ <issue
id="LongLogTag"
message="The logging tag can be at most 23 characters, was 32 (leanback.BrowseAnimationFragment)"
errorLine1=" Log.i(TAG, "onCreate");"
@@ -860,6 +1266,248 @@
</issue>
<issue
+ id="PermissionImpliesUnsupportedHardware"
+ message="Permission exists without corresponding hardware `<uses-feature android:name="android.hardware.microphone" required="false">` tag"
+ errorLine1=" <uses-permission android:name="android.permission.RECORD_AUDIO" />"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="15"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `ResourcesCompat.getDrawable()`"
+ errorLine1=" Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsPresenterSelectionActivity.java"
+ line="74"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `ContextCompat.getDrawable()`"
+ errorLine1=" mMediaPlayerGlue.setArt(getActivity().getDrawable(R.drawable.google_map));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/VideoConsumptionWithDetailCardFragment.java"
+ line="76"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (com.example.android.leanback.BackgroundHelper.LoadBitmapTaskBase)"
+ errorLine1=" class LoadBitmapTaskBase extends android.os.AsyncTask<Request, Object, Request> {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/BackgroundHelper.java"
+ line="126"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (com.example.android.leanback.BackgroundHelper.LoadBitmapIntoBackgroundManagerTask)"
+ errorLine1=" class LoadBitmapIntoBackgroundManagerTask extends LoadBitmapTaskBase {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/BackgroundHelper.java"
+ line="162"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (com.example.android.leanback.BackgroundHelper.LoadBitmapCallbackTask)"
+ errorLine1=" class LoadBitmapCallbackTask extends LoadBitmapTaskBase {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/BackgroundHelper.java"
+ line="170"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (com.example.android.leanback.PlaybackSeekAsyncDataProvider.LoadBitmapTask)"
+ errorLine1=" class LoadBitmapTask extends android.os.AsyncTask<Object, Object, Bitmap> {"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java"
+ line="54"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="HandlerLeak"
+ message="This `Handler` class should be static or leaks might occur (com.example.android.leanback.MediaSessionService.MediaPlayerAudioHandler)"
+ errorLine1=" private class MediaPlayerAudioHandler extends Handler {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/MediaSessionService.java"
+ line="87"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/browse.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/browse_support.xml"
+ line="20"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/date_picker.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/details_activity.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/guided_step_activity.xml"
+ line="19"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/onboarding.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/pin_picker.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/playback_activity.xml"
+ line="17"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/playback_activity_support.xml"
+ line="19"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/playback_transportcontrol_activity.xml"
+ line="17"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/playback_transportcontrol_activity_support.xml"
+ line="19"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/time_picker.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.array.pref_parent_control_entries_summaries` appears to be unused"
errorLine1=" <array name="pref_parent_control_entries_summaries">"
@@ -4171,6 +4819,442 @@
</issue>
<issue
+ id="UselessParent"
+ message="This `LinearLayout` layout or its `RelativeLayout` parent is useless"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="7"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="IconColors"
+ message="Action Bar icons should use a single gray color (`#333333` for light themes (with 60%/30% opacity for enabled/disabled), and `#FFFFFF` with opacity 80%/30% for dark themes">
+ <location
+ file="src/main/res/drawable/ic_action_a.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/details_img.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/details_img.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/details_img_16x9.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/details_img_16x9.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_1.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_1.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_2.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_2.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_3.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_3.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_4.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_4.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_5.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_5.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_6.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_6.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_7.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_7.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/gallery_photo_8.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/gallery_photo_8.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/google_android.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/google_android.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/google_logo.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/google_logo.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/google_map.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/google_map.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/google_photo.jpeg` in densityless folder">
+ <location
+ file="src/main/res/drawable/google_photo.jpeg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/ic_action_a.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/ic_action_a.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/ic_guidedstep_option_a.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/ic_guidedstep_option_a.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/ic_guidedstep_option_b.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/ic_guidedstep_option_b.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/ic_guidedstep_option_c.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/ic_guidedstep_option_c.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/ic_title.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/ic_title.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/spiderman.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/spiderman.jpg"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-hdpi`: bg.png, ic_settings_apps.png, ic_settings_parental_control.png, ic_settings_time.png, ic_settings_wifi_3_bar.png... (46 more)">
+ <location
+ file="src/main/res/drawable-hdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-mdpi`: bg.png, ic_settings_apps.png, ic_settings_parental_control.png, ic_settings_time.png, ic_settings_wifi_3_bar.png... (46 more)">
+ <location
+ file="src/main/res/drawable-mdpi"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="15"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="24"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="33"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="15"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="24"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="33"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="15"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="24"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="LabelFor"
+ message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="33"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" vh.getSubtitle().setText("2013 - 2014 Drama TV-14");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="23"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" vh.getBody().setText("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do ""
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="24"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" vh.getBody().setText("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="24"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="25"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="26"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="27"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non ""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="28"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" + "proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/DetailsDescriptionPresenter.java"
+ line="29"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" ((TextView) holder.itemView).setText("Item "+position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/HorizontalGridTestActivity.java"
+ line="145"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView) holder.itemView).setText("Item "+position);"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/leanback/HorizontalGridTestActivity.java"
+ line="145"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Header 1", should use `@string` resource"
+ errorLine1=" android:text="Header 1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="19"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Header 2", should use `@string` resource"
+ errorLine1=" android:text="Header 2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="28"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Header 3", should use `@string` resource"
+ errorLine1=" android:text="Header 3""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="37"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_alignParentRight` with `android:layout_alignParentEnd="true"` to better support right-to-left layouts"
+ errorLine1=" android:layout_alignParentRight="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="11"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd="128dp"` to better support right-to-left layouts"
+ errorLine1=" android:layout_marginRight="128dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/page_fragment.xml"
+ line="12"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public Bitmap getCache(Object token) {"
diff --git a/samples/SupportPreferenceDemos/lint-baseline.xml b/samples/SupportPreferenceDemos/lint-baseline.xml
index baa41a0..687a364 100644
--- a/samples/SupportPreferenceDemos/lint-baseline.xml
+++ b/samples/SupportPreferenceDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="MissingTvBanner"
@@ -24,6 +24,17 @@
</issue>
<issue
+ id="RtlEnabled"
+ message="You must set `android:targetSdkVersion` to at least 17 when enabling RTL support (is 14)"
+ errorLine1=" android:supportsRtl="true""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="32"
+ column="30"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/samples/SupportRemoteCallbackDemos/lint-baseline.xml b/samples/SupportRemoteCallbackDemos/lint-baseline.xml
index e6374c0..a0cf258 100644
--- a/samples/SupportRemoteCallbackDemos/lint-baseline.xml
+++ b/samples/SupportRemoteCallbackDemos/lint-baseline.xml
@@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 19): `android.content.Context#APPWIDGET_SERVICE`"
+ errorLine1=" Context.APPWIDGET_SERVICE);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/remotecallback/demos/RemoteCallbackProvider.java"
+ line="65"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
<issue
id="UnusedResources"
@@ -35,6 +57,83 @@
</issue>
<issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/sub""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="37"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/add""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="43"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/reset""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="49"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Def Text", should use `@string` resource"
+ errorLine1=" android:text="Def Text""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="28"
+ column="15"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "-", should use `@string` resource"
+ errorLine1=" android:text="-" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="41"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "+", should use `@string` resource"
+ errorLine1=" android:text="+" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="47"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Reset", should use `@string` resource"
+ errorLine1=" android:text="Reset" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="53"
+ column="17"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {"
diff --git a/samples/SupportSliceDemos/lint-baseline.xml b/samples/SupportSliceDemos/lint-baseline.xml
index f202534..66ed65c 100644
--- a/samples/SupportSliceDemos/lint-baseline.xml
+++ b/samples/SupportSliceDemos/lint-baseline.xml
@@ -1,5 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ApplySharedPref"
+ message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
+ errorLine1=" mSharedPreferences.edit()"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java"
+ line="328"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" SliceItem title = SliceQuery.find(headerItem, FORMAT_TEXT, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java"
+ line="242"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" SliceItem title = SliceQuery.find(headerItem, FORMAT_TEXT, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java"
+ line="242"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LARGE`"
+ errorLine1=" title = SliceQuery.find(headerItem, FORMAT_TEXT, HINT_LARGE, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java"
+ line="246"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" title = SliceQuery.find(headerItem, FORMAT_TEXT, HINT_LARGE, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java"
+ line="246"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" title = SliceQuery.find(headerItem, FORMAT_TEXT);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java"
+ line="250"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `contentInsetStart` is only used in API level 21 and higher (current min is 19)"
+ errorLine1=" android:contentInsetStart="0dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_layout.xml"
+ line="43"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `contentInsetStartWithNavigation` is only used in API level 24 and higher (current min is 19)"
+ errorLine1=" android:contentInsetStartWithNavigation="0dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_layout.xml"
+ line="44"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `searchIcon` is only used in API level 21 and higher (current min is 19)"
+ errorLine1=" android:searchIcon="@null"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_layout.xml"
+ line="53"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 19)"
+ errorLine1=" android:elevation="10dp" >"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_layout.xml"
+ line="65"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ExportedContentProvider"
+ message="Exported content providers can provide access to potentially sensitive data"
+ errorLine1=" <provider android:authorities="com.example.androidx.slice.demos""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="49"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="17"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="InefficientWeight"
+ message="Use a `layout_width` of `0dp` instead of `wrap_content` for better performance"
+ errorLine1=" android:layout_width="wrap_content""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="47"
+ column="13"/>
+ </issue>
<issue
id="UnusedResources"
@@ -189,6 +332,39 @@
</issue>
<issue
+ id="SmallSp"
+ message="Avoid using sizes smaller than `12sp`: `10sp`"
+ errorLine1=" <dimen name="textSize">10sp</dimen>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values/dimens.xml"
+ line="19"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="AlwaysShowAction"
+ message="Prefer "`SHOW_AS_ACTION_IF_ROOM`" instead of "`SHOW_AS_ACTION_ALWAYS`""
+ errorLine1=" mTypeMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/slice/demos/SliceBrowser.java"
+ line="183"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
+ errorLine1=" android:paddingEnd="12dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/app_item.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
diff --git a/samples/SupportTransitionDemos/lint-baseline.xml b/samples/SupportTransitionDemos/lint-baseline.xml
index 9442c32..658a56f 100644
--- a/samples/SupportTransitionDemos/lint-baseline.xml
+++ b/samples/SupportTransitionDemos/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:elevation="4dp"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/begin_delayed.xml"
+ line="31"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:elevation="16dp"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/red_square.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:elevation="4dp"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/scene_usage.xml"
+ line="31"
+ column="13"/>
+ </issue>
<issue
id="AppCompatResource"
@@ -13,6 +46,127 @@
</issue>
<issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.fit_xy:"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/ChangeImageTransformUsage.java"
+ line="56"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.center:"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/ChangeImageTransformUsage.java"
+ line="59"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.center_crop:"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/ChangeImageTransformUsage.java"
+ line="62"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.fit_start:"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/ChangeImageTransformUsage.java"
+ line="65"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.fit_end:"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/ChangeImageTransformUsage.java"
+ line="68"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.matrix:"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/ChangeImageTransformUsage.java"
+ line="71"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.action_toggle:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/widget/SceneUsageBase.java"
+ line="63"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/transition/SupportTransitionDemos.java"
+ line="62"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application android:label="@string/activity_sample_code""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application android:label="@string/activity_sample_code""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#f00` with a theme that also paints a background (inferred theme is `@style/Theme_Transition`)"
+ errorLine1=" android:background="#f00""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/red_square.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.drawable.ic_action_navigation_menu` appears to be unused">
<location
@@ -367,6 +521,111 @@
</issue>
<issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-hdpi`: ic_add.png (found in drawable-xxhdpi)">
+ <location
+ file="src/main/res/drawable-hdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-mdpi`: ic_add.png (found in drawable-xxhdpi)">
+ <location
+ file="src/main/res/drawable-mdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xhdpi`: app_sample_code.png, ic_add.png">
+ <location
+ file="src/main/res/drawable-xhdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: app_sample_code.png (found in drawable-hdpi, drawable-mdpi)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/image_transform.xml"
+ line="30"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/image_transform.xml"
+ line="35"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/image_transform.xml"
+ line="40"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/image_transform.xml"
+ line="55"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/image_transform.xml"
+ line="60"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/image_transform.xml"
+ line="65"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Photo", should use `@string` resource"
+ errorLine1=" android:contentDescription="Photo""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/clip_bounds.xml"
+ line="34"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/samples/SupportWearDemos/lint-baseline.xml b/samples/SupportWearDemos/lint-baseline.xml
index c060fb0..6aa3826 100644
--- a/samples/SupportWearDemos/lint-baseline.xml
+++ b/samples/SupportWearDemos/lint-baseline.xml
@@ -1,5 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="WearStandaloneAppFlag"
+ message="Missing `<meta-data android:name="com.google.android.wearable.standalone" ../>` element"
+ errorLine1=" <application android:icon="@drawable/app_sample_code" android:label="SupportWearDemos""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialXml"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1=" <Switch"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/switch_demo.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `AppCompatResources.getDrawable()`"
+ errorLine1=" Drawable drawable = getDrawable(R.drawable.app_sample_code);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/AlertDialogDemo.java"
+ line="60"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `AppCompatResources.getDrawable()`"
+ errorLine1=" getDrawable(android.R.drawable.star_big_off)),"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/drawers/WearableDrawersDemo.java"
+ line="49"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="UseCompatLoadingForDrawables"
+ message="Use `AppCompatResources.getDrawable()`"
+ errorLine1=" getDrawable(android.R.drawable.star_big_on)),"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/drawers/WearableDrawersDemo.java"
+ line="53"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application android:icon="@drawable/app_sample_code" android:label="SupportWearDemos""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application android:icon="@drawable/app_sample_code" android:label="SupportWearDemos""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="24"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/cpl_demo.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="MergeRootFrame"
+ message="This `<FrameLayout>` can be replaced with a `<merge>` tag"
+ errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/rd_demo.xml"
+ line="18"
+ column="1"/>
+ </issue>
<issue
id="SyntheticAccessor"
@@ -101,6 +200,189 @@
</issue>
<issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/app_sample_code.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/app_sample_code.png"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/rd_demo.xml"
+ line="23"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStateTextView.setText("Ambient");"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/AmbientModeDemo.java"
+ line="56"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStateTextView.setText("Interactive");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/AmbientModeDemo.java"
+ line="64"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" holder.mView.setText("Holder at position " + position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/SimpleWearableRecyclerViewDemo.java"
+ line="67"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" holder.mView.setText("Holder at position " + position);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/wear/app/SimpleWearableRecyclerViewDemo.java"
+ line="67"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Item 1", should use `@string` resource"
+ errorLine1=" <item android:title="Item 1" android:id="@+id/item_1" android:icon="@android:drawable/ic_menu_add"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/action_drawer_menu.xml"
+ line="3"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Item 2", should use `@string` resource"
+ errorLine1=" <item android:title="Item 2" android:id="@+id/item_2" android:icon="@android:drawable/ic_menu_agenda"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/action_drawer_menu.xml"
+ line="4"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Item 3", should use `@string` resource"
+ errorLine1=" <item android:title="Item 3" android:id="@+id/item_3" android:icon="@android:drawable/ic_menu_call"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/action_drawer_menu.xml"
+ line="5"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Item 4", should use `@string` resource"
+ errorLine1=" <item android:title="Item 4" android:id="@+id/item_4" android:icon="@android:drawable/ic_menu_delete"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/menu/action_drawer_menu.xml"
+ line="6"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show V7 dialog", should use `@string` resource"
+ errorLine1=" android:text="Show V7 dialog"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/alert_dialog_demo.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Show Framework dialog", should use `@string` resource"
+ errorLine1=" android:text="Show Framework dialog"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/alert_dialog_demo.xml"
+ line="41"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "hello world!!", should use `@string` resource"
+ errorLine1=" android:text="hello world!!"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ambient_demo.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Overlay Activity", should use `@string` resource"
+ errorLine1=" android:text="Overlay Activity"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/confirmation_overlay_demo.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Overlay View", should use `@string` resource"
+ errorLine1=" android:text="Overlay View"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/confirmation_overlay_demo.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "FrameLayout", should use `@string` resource"
+ errorLine1=" android:text="FrameLayout"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/wearable_drawers_frame_layout_demo.xml"
+ line="26"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "ScrollView Fragment", should use `@string` resource"
+ errorLine1=" android:text="ScrollView Fragment""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/wearable_drawers_scroll_view_demo.xml"
+ line="35"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onTimerFinished(CircularProgressLayout layout) {"
diff --git a/security/crypto/lint-baseline.xml b/security/crypto/lint-baseline.xml
index 7dc9247..05e622e 100644
--- a/security/crypto/lint-baseline.xml
+++ b/security/crypto/lint-baseline.xml
@@ -1,5 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Integer.BYTES"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="237"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Integer.BYTES"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="237"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" int totalBytes = values.size() * Integer.BYTES;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="255"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" totalBytes += Integer.BYTES;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="261"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Integer.BYTES);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="275"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Integer.BYTES);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="275"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Long.BYTES);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="285"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Long#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Long.BYTES);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="285"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Float#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Float.BYTES);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="295"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Float.BYTES);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="295"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Byte#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Byte.BYTES);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="305"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 21): `java.lang.Integer#BYTES`"
+ errorLine1=" ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES + Byte.BYTES);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java"
+ line="305"
+ column="53"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
diff --git a/security/identity-credential/lint-baseline.xml b/security/identity-credential/lint-baseline.xml
new file mode 100644
index 0000000..9ba3cfb
--- /dev/null
+++ b/security/identity-credential/lint-baseline.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" String aliasForAuthKey = mCredentialKeyAlias + String.format("_auth_%d", n);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/identity/CredentialData.java"
+ line="845"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/identity/Util.java"
+ line="110"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/security/identity/Util.java"
+ line="112"
+ column="18"/>
+ </issue>
+
+</issues>
diff --git a/sharetarget/integration-tests/testapp/lint-baseline.xml b/sharetarget/integration-tests/testapp/lint-baseline.xml
index 0def2fd..3b8f544 100644
--- a/sharetarget/integration-tests/testapp/lint-baseline.xml
+++ b/sharetarget/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutId="dummy_shortcut""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="20"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutShortLabel="@string/dummy_shortcut_short_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="23"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutLongLabel` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutLongLabel="@string/dummy_shortcut_long_label""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="24"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutDisabledMessage` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutDisabledMessage="@string/dummy_shortcut_disabled_message">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="25"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutId="dummy_shortcut2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutShortLabel="@string/dummy_shortcut_short_label2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="43"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutLongLabel` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutLongLabel="@string/dummy_shortcut_long_label2""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="44"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `shortcutDisabledMessage` is only used in API level 25 and higher (current min is 14)"
+ errorLine1=" android:shortcutDisabledMessage="@string/dummy_shortcut_disabled_message2">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/xml/shortcuts.xml"
+ line="45"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.push_targets:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/sharetarget/testapp/MainActivity.java"
+ line="57"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="NonConstantResourceId"
+ message="Resource IDs will be non-final in Android Gradle Plugin version 7.0, avoid using them in switch case statements"
+ errorLine1=" case R.id.remove_targets:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/sharetarget/testapp/MainActivity.java"
+ line="60"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
<issue
id="SyntheticAccessor"
@@ -24,6 +145,17 @@
</issue>
<issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" ((TextView) findViewById(R.id.title_text)).setText("Other Activity!");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/sharetarget/testapp/OtherTextConsumerActivity.java"
+ line="33"
+ column="60"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/sharetarget/sharetarget/lint-baseline.xml b/sharetarget/sharetarget/lint-baseline.xml
index cd9a010..5959256 100644
--- a/sharetarget/sharetarget/lint-baseline.xml
+++ b/sharetarget/sharetarget/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/sharetarget/ShareTargetXmlParser.java"
+ line="92"
+ column="70"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/slices/builders/ktx/lint-baseline.xml b/slices/builders/ktx/lint-baseline.xml
new file mode 100644
index 0000000..dd4cad6
--- /dev/null
+++ b/slices/builders/ktx/lint-baseline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="Slices"
+ message="`CellBuilder` should have a piece of content added to it"
+ errorLine1="class CellBuilderDsl : GridRowBuilder.CellBuilder()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/GridRowBuilder.kt"
+ line="32"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1="class ListBuilderDsl(context: Context, uri: Uri, ttl: Long) : ListBuilder(context, uri, ttl)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/ListBuilder.kt"
+ line="39"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="`RowBuilder` should have a piece of content added to it"
+ errorLine1="class RowBuilderDsl : ListBuilder.RowBuilder()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/ListBuilder.kt"
+ line="47"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="`HeaderBuilder` should have a piece of content added to it"
+ errorLine1="class HeaderBuilderDsl : ListBuilder.HeaderBuilder()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/ListBuilder.kt"
+ line="71"
+ column="26"/>
+ </issue>
+
+</issues>
diff --git a/slices/builders/lint-baseline.xml b/slices/builders/lint-baseline.xml
index d9965fb5..ce93b86 100644
--- a/slices/builders/lint-baseline.xml
+++ b/slices/builders/lint-baseline.xml
@@ -1,5 +1,1215 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_HORIZONTAL`"
+ errorLine1=" builder.addHints(HINT_HORIZONTAL);"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="81"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" impl.getBuilder().addHints(HINT_SEE_MORE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="100"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" getBuilder().addSubSlice(new Slice.Builder(getBuilder()).addHints(HINT_SEE_MORE)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="107"
+ column="75"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" getBuilder().addText(description, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="120"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" getBuilder().addInt(layoutDirection, SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="126"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" ? new String[] {HINT_PARTIAL}"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="183"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" ? new String[]{HINT_PARTIAL, HINT_TITLE}"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="192"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" ? new String[]{HINT_PARTIAL, HINT_TITLE}"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="192"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" : new String[]{HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="193"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" ? new String[]{HINT_PARTIAL, HINT_OVERLAY}"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="209"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" getBuilder().addText(description, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="225"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_HORIZONTAL`"
+ errorLine1=" getBuilder().addHints(HINT_HORIZONTAL);"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/GridRowBuilderListV1Impl.java"
+ line="234"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" getBuilder().addInt(color, SUBTYPE_COLOR);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="226"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" getBuilder().addTimestamp(expiry, SUBTYPE_MILLIS, HINT_TTL);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="241"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" getBuilder().addInt(layoutDirection, SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="257"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ERROR`"
+ errorLine1=" builder.addHints(HINT_ERROR);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="279"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" builder.addSubSlice(sb.addHints(HINT_KEYWORDS).build());"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="286"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" slice.addItem(new SliceItem(mTitle, FORMAT_TEXT, null, new String[] { HINT_TITLE }));"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="299"
+ column="83"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" slice.addItem(new SliceItem(mTitle, FORMAT_TEXT, null, new String[] { HINT_TITLE }));"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="299"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" slice.addItem(new SliceItem(mSubtitle, FORMAT_TEXT, null, new String[0]));"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="302"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" builder.addIcon(mIconCompat, null, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="306"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_BUNDLE`"
+ errorLine1=" new SliceItem(mHostExtras, FORMAT_BUNDLE, SUBTYPE_HOST_EXTRAS, new String[0]));"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderBasicImpl.java"
+ line="311"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" builder.addLong(getClock().currentTimeMillis(), SUBTYPE_MILLIS, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="115"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" builder.addSubSlice(sb.addHints(HINT_ACTIONS).build());"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="124"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ERROR`"
+ errorLine1=" builder.addHints(HINT_ERROR);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="127"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" getBuilder().addSubSlice(sb.addHints(HINT_KEYWORDS).build());"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="134"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_BUNDLE`"
+ errorLine1=" builder.addItem(new SliceItem(mHostExtras, FORMAT_BUNDLE, SUBTYPE_HOST_EXTRAS,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="137"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" boolean isLoading = SliceQuery.find(slice, null, HINT_PARTIAL, null) != null;"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="149"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" boolean isEmpty = SliceQuery.find(slice, FORMAT_SLICE, HINT_LIST_ITEM, null) == null;"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="150"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" boolean isEmpty = SliceQuery.find(slice, FORMAT_SLICE, HINT_LIST_ITEM, null) == null;"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="150"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] hints = new String[] {HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="151"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" String[] hints = new String[] {HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="151"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" SliceItem action = SliceQuery.find(slice, FORMAT_ACTION, hints, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="152"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" List<SliceItem> possiblePrimaries = SliceQuery.findAll(slice, FORMAT_SLICE, hints, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="153"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" builder.getBuilder().addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="185"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" impl.getBuilder().addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="198"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" Slice.Builder b = new Slice.Builder(getBuilder()).addHints(HINT_ACTIONS);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="221"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" getBuilder().addSubSlice(impl.build(), SUBTYPE_RANGE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="229"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" getBuilder().addSubSlice(impl.build(), SUBTYPE_RANGE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="236"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" getBuilder().addSubSlice(impl.build(), SUBTYPE_RANGE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="243"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" impl.getBuilder().addHints(HINT_SEE_MORE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="264"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" .addHints(HINT_SEE_MORE)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="274"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" .addHints(HINT_SEE_MORE).build(), null)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="276"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" getBuilder().addInt(color, SUBTYPE_COLOR);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="284"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" getBuilder().addTimestamp(expiry, SUBTYPE_MILLIS, HINT_TTL);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="299"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" getBuilder().addInt(layoutDirection, SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="315"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="388"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" mStartItem = sb.addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="390"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" builder.addText(mTitle, null, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="409"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" builder.addText(mContentDescr, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="415"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" builder.addInt(mLayoutDir, SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="421"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" builder.addHints(HINT_LIST_ITEM)"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="423"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_MAX`"
+ errorLine1=" .addInt(mMax, SUBTYPE_MAX)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="425"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_VALUE`"
+ errorLine1=" .addInt(mValue, SUBTYPE_VALUE)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="426"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="475"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" mStartItem = sb.addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="477"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="483"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" builder.addAction(mAction, sb.build(), SUBTYPE_RANGE).addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="498"
+ column="76"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" builder.addAction(mAction, sb.build(), SUBTYPE_RANGE).addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="498"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="548"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" mStartItem = sb.addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="550"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" builder.addText(mTitle, null, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="564"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" builder.addText(mContentDescr, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="570"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" sb.addHints(HINT_LIST_ITEM)"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="580"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_MAX`"
+ errorLine1=" .addInt(mMax, SUBTYPE_MAX)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="582"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_VALUE`"
+ errorLine1=" .addInt(mValue, SUBTYPE_VALUE)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="583"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" builder.addAction(mAction, sb.build(), SUBTYPE_RANGE).addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="585"
+ column="76"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" builder.addAction(mAction, sb.build(), SUBTYPE_RANGE).addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="585"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" .addTimestamp(timeStamp, null).addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="675"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="691"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" mStartItem = sb.addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="693"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" Slice.Builder sb = new Slice.Builder(getBuilder()).addHints(HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="699"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="701"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" mTitleItem = new SliceItem(title, FORMAT_TEXT, null, new String[] {HINT_TITLE});"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="715"
+ column="80"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mTitleItem = new SliceItem(title, FORMAT_TEXT, null, new String[] {HINT_TITLE});"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="715"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" mTitleItem.addHint(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="717"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mSubtitleItem = new SliceItem(subtitle, FORMAT_TEXT, null, new String[0]);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="730"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" mSubtitleItem.addHint(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="732"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="750"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" sb.addHints(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="760"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" getBuilder().addInt(layoutDirection, SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="770"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" b.addText(mContentDescr, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="801"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" b.addText(mContentDescr, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="867"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" mTitleItem = new SliceItem(title, FORMAT_TEXT, null, new String[] {HINT_TITLE});"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="880"
+ column="80"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mTitleItem = new SliceItem(title, FORMAT_TEXT, null, new String[] {HINT_TITLE});"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="880"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" mTitleItem.addHint(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="882"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mSubtitleItem = new SliceItem(subtitle, FORMAT_TEXT, null, new String[0]);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="889"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" mSubtitleItem.addHint(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="891"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mSummaryItem = new SliceItem(summarySubtitle, FORMAT_TEXT, null,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="898"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SUMMARY`"
+ errorLine1=" new String[] {HINT_SUMMARY});"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="899"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" mSummaryItem.addHint(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="901"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" getBuilder().addInt(layoutDirection, SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/ListBuilderImpl.java"
+ line="918"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" Slice.Builder sb = new Slice.Builder(getBuilder()).addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java"
+ line="56"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 23): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" SUBTYPE_SOURCE, HINT_NO_TINT).addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java"
+ line="114"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 23): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" SUBTYPE_SOURCE, HINT_NO_TINT).addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java"
+ line="114"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 23): `android.app.slice.Slice#SUBTYPE_SOURCE`"
+ errorLine1=" SUBTYPE_SOURCE, HINT_NO_TINT).addHints(HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/MessagingBasicImpl.java"
+ line="114"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_MESSAGE`"
+ errorLine1=" getBuilder().addSubSlice(builder.build(), SUBTYPE_MESSAGE);"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java"
+ line="47"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 23): `android.app.slice.Slice#SUBTYPE_SOURCE`"
+ errorLine1=" android.app.slice.Slice.SUBTYPE_SOURCE);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/MessagingV1Impl.java"
+ line="80"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" sliceBuilder.addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java"
+ line="50"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" sliceBuilder.addText(selectionBuilder.getTitle(), null, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java"
+ line="55"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java"
+ line="64"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" sliceBuilder.addInt(selectionBuilder.getLayoutDirection(), SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderBasicImpl.java"
+ line="68"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" actionBuilder.addText(selectionBuilder.getTitle(), null, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java"
+ line="60"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java"
+ line="69"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" actionBuilder.addInt(selectionBuilder.getLayoutDirection(), SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java"
+ line="73"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SELECTED`"
+ errorLine1=" optionSubSliceBuilder.addHints(HINT_SELECTED);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java"
+ line="80"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" sliceBuilder.addHints(HINT_LIST_ITEM);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/SelectionBuilderListV2Impl.java"
+ line="94"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" hints.add(HINT_NO_TINT);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"
+ line="125"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LARGE`"
+ errorLine1=" hints.add(HINT_LARGE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"
+ line="128"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" hints.add(HINT_PARTIAL);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/builders/impl/TemplateBuilderImpl.java"
+ line="134"
+ column="23"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/slices/core/lint-baseline.xml b/slices/core/lint-baseline.xml
index a7de315..359060a 100644
--- a/slices/core/lint-baseline.xml
+++ b/slices/core/lint-baseline.xml
@@ -1,5 +1,771 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ObsoleteLintCustomCheck"
+ message="Lint found an issue registry (`androidx.annotation.experimental.lint.ExperimentalIssueRegistry`) which did not specify the Lint API version it was compiled with.

**This means that the lint checks are likely not compatible.**

If you are the author of this lint check, make your lint `IssueRegistry` class contain
 override val api: Int = com.android.tools.lint.detector.api.CURRENT_API
or from Java,
 @Override public int getApi() { return com.android.tools.lint.detector.api.ApiKt.CURRENT_API; }

If you are just using lint checks from a third party library you have no control over, you can disable these lint checks (if they misbehave) like this:

 android {
 lintOptions {
 disable "UnsafeExperimentalUsageError",
 "UnsafeExperimentalUsageWarning"
 }
 }
">
+ <location
+ file="../../../../../../home/jeffrygaston/.gradle/caches/transforms-2/files-2.1/fa51cbf3299ee05e2b24ae2129b79127/annotation-experimental-1.0.0/jars/lint.jar"/>
+ </issue>
+
+ <issue
+ id="ApplySharedPref"
+ message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
+ errorLine1=" allFiles.edit()"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"
+ line="123"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+ errorLine1=" return String.format("SliceSpec{%s,%d}", mType, mRevision);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceSpec.java"
+ line="112"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" HINT_TITLE,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="125"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST`"
+ errorLine1=" HINT_LIST,"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="126"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" HINT_LIST_ITEM,"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="127"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LARGE`"
+ errorLine1=" HINT_LARGE,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="128"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" HINT_ACTIONS,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="129"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SELECTED`"
+ errorLine1=" HINT_SELECTED,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="130"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_HORIZONTAL`"
+ errorLine1=" HINT_HORIZONTAL,"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="131"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" HINT_NO_TINT,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="132"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" HINT_PARTIAL,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="133"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SUMMARY`"
+ errorLine1=" HINT_SUMMARY,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="134"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" HINT_SEE_MORE,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="135"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" HINT_SHORTCUT,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="136"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" HINT_KEYWORDS,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="137"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" HINT_TTL,"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="138"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" HINT_LAST_UPDATED,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="139"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PERMISSION_REQUEST`"
+ errorLine1=" HINT_PERMISSION_REQUEST,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="140"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ERROR`"
+ errorLine1=" HINT_ERROR,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="141"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" mItems.add(new SliceItem(slice, FORMAT_SLICE, subType, slice.getHintArray()));"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="377"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" mItems.add(new SliceItem(action, s, FORMAT_ACTION, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="391"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" mItems.add(new SliceItem(action, s, FORMAT_ACTION, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="405"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mItems.add(new SliceItem(text, FORMAT_TEXT, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="416"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" mItems.add(new SliceItem(icon, FORMAT_IMAGE, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="439"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_REMOTE_INPUT`"
+ errorLine1=" mItems.add(new SliceItem(remoteInput, FORMAT_REMOTE_INPUT, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="481"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" mItems.add(new SliceItem(value, FORMAT_INT, subType, hints));"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="492"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" mItems.add(new SliceItem(time, FORMAT_LONG, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="514"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" mItems.add(new SliceItem(time, FORMAT_LONG, subType, hints));"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/Slice.java"
+ line="537"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" SliceItem actionItem = SliceQuery.find(slice, FORMAT_ACTION);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="157"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" SliceItem iconItem = SliceQuery.find(actionItem.getSlice(), FORMAT_IMAGE);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="164"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" SliceItem titleItem = SliceQuery.find(actionItem.getSlice(), FORMAT_TEXT, HINT_TITLE,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="169"
+ column="83"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" SliceItem titleItem = SliceQuery.find(actionItem.getSlice(), FORMAT_TEXT, HINT_TITLE,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="169"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" SliceItem cdItem = SliceQuery.findSubtype(actionItem.getSlice(), FORMAT_TEXT,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="174"
+ column="74"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="175"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_TOGGLE`"
+ errorLine1=" mIsToggle = SUBTYPE_TOGGLE.equals(actionItem.getSubType());"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="179"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SELECTED`"
+ errorLine1=" mIsChecked = actionItem.hasHint(HINT_SELECTED);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="181"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem priority = SliceQuery.findSubtype(actionItem.getSlice(), FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="184"
+ column="76"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_PRIORITY`"
+ errorLine1=" SUBTYPE_PRIORITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="185"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" return builder.addHints(HINT_SHORTCUT)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="324"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" return buildSliceContent(builder).addHints(HINT_SHORTCUT, HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="335"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" return buildSliceContent(builder).addHints(HINT_SHORTCUT, HINT_TITLE).build();"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="335"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" : new String[]{HINT_NO_TINT};"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="349"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" sb.addText(mTitle, null, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="354"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" sb.addText(mContentDescription, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="357"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SELECTED`"
+ errorLine1=" sb.addHints(HINT_SELECTED);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="360"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_PRIORITY`"
+ errorLine1=" sb.addInt(mPriority, SUBTYPE_PRIORITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="363"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_TOGGLE`"
+ errorLine1=" return mIsToggle ? SUBTYPE_TOGGLE : null;"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/core/SliceActionImpl.java"
+ line="376"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" @StringDef({FORMAT_SLICE, FORMAT_TEXT, FORMAT_IMAGE, FORMAT_ACTION, FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="102"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" @StringDef({FORMAT_SLICE, FORMAT_TEXT, FORMAT_IMAGE, FORMAT_ACTION, FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="102"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" @StringDef({FORMAT_SLICE, FORMAT_TEXT, FORMAT_IMAGE, FORMAT_ACTION, FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="102"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" @StringDef({FORMAT_SLICE, FORMAT_TEXT, FORMAT_IMAGE, FORMAT_ACTION, FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="102"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" @StringDef({FORMAT_SLICE, FORMAT_TEXT, FORMAT_IMAGE, FORMAT_ACTION, FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="102"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_BUNDLE`"
+ errorLine1=" FORMAT_LONG, FORMAT_REMOTE_INPUT, FORMAT_LONG, FORMAT_BUNDLE})"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="103"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" FORMAT_LONG, FORMAT_REMOTE_INPUT, FORMAT_LONG, FORMAT_BUNDLE})"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="103"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" FORMAT_LONG, FORMAT_REMOTE_INPUT, FORMAT_LONG, FORMAT_BUNDLE})"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="103"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_REMOTE_INPUT`"
+ errorLine1=" FORMAT_LONG, FORMAT_REMOTE_INPUT, FORMAT_LONG, FORMAT_BUNDLE})"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="103"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" @ParcelField(value = 2, defaultValue = FORMAT_TEXT)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="114"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" String mFormat = FORMAT_TEXT;"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceItem.java"
+ line="115"
+ column="22"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.app.slice.SliceProvider#SLICE_TYPE`"
+ errorLine1=" return SLICE_TYPE;"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceProvider.java"
+ line="245"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" .addHints(Arrays.asList(HINT_TITLE, HINT_SHORTCUT))"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceProvider.java"
+ line="346"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" .addHints(Arrays.asList(HINT_TITLE, HINT_SHORTCUT))"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceProvider.java"
+ line="346"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 19): `android.R.attr#colorAccent`"
+ errorLine1=" .getTheme().resolveAttribute(android.R.attr.colorAccent, tv, true);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceProvider.java"
+ line="351"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" .addInt(deviceDefaultAccent, SUBTYPE_COLOR)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceProvider.java"
+ line="358"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PERMISSION_REQUEST`"
+ errorLine1=" return parent.addHints(Arrays.asList(HINT_PERMISSION_REQUEST)).build();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceProvider.java"
+ line="361"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceManager#CATEGORY_SLICE`"
+ errorLine1=" queryIntent.addCategory(CATEGORY_SLICE);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"
+ line="396"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceManager#SLICE_METADATA_KEY`"
+ errorLine1=" resolve.activityInfo.metaData.getString(SLICE_METADATA_KEY)),"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"
+ line="408"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceManager#CATEGORY_SLICE`"
+ errorLine1=" queryIntent.addCategory(CATEGORY_SLICE);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"
+ line="558"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceManager#SLICE_METADATA_KEY`"
+ errorLine1=" resolve.activityInfo.metaData.getString(SLICE_METADATA_KEY));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"
+ line="570"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="MutatingSharedPrefs"
+ message="Do not modify the set returned by `SharedPreferences.getStringSet()``"
+ errorLine1=" files.add(prefsFile);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/compat/SliceProviderCompat.java"
+ line="122"
+ column="13"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -101,6 +867,50 @@
</issue>
<issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="8dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_permission_request.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="8dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_permission_request.xml"
+ line="32"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
+ errorLine1=" android:paddingStart="8dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_permission_request.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RtlSymmetry"
+ message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
+ errorLine1=" android:paddingLeft="8dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_permission_request.xml"
+ line="41"
+ column="9"/>
+ </issue>
+
+ <issue
id="LambdaLast"
message="Functional interface parameters (such as parameter 1, "action", in androidx.slice.Slice.Builder.addAction) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
errorLine1=" @NonNull Slice s, @Nullable String subType) {"
diff --git a/slices/test/lint-baseline.xml b/slices/test/lint-baseline.xml
index 0159dda..b71bc45 100644
--- a/slices/test/lint-baseline.xml
+++ b/slices/test/lint-baseline.xml
@@ -1,5 +1,470 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#EXTRA_TOGGLE_STATE`"
+ errorLine1=" boolean newState = i.getBooleanExtra(EXTRA_TOGGLE_STATE, wm.isWifiEnabled());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SliceBroadcastReceiver.java"
+ line="55"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#EXTRA_RANGE_VALUE`"
+ errorLine1=" int range = i.getExtras().getInt(EXTRA_RANGE_VALUE, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SliceBroadcastReceiver.java"
+ line="72"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), sliceUri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="265"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), sliceUri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="309"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="433"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder b = new ListBuilder(getContext(), sliceUri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="454"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder b = new ListBuilder(getContext(), sliceUri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="468"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder b = new ListBuilder(getContext(), sliceUri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="514"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" return new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="561"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="`RowBuilder` cannot have a mixture of icons and slice actions added to the end items"
+ errorLine1=" return new ListBuilder(getContext(), sliceUri, INFINITY).addRow(new RowBuilder()"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="614"
+ column="73"/>
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="614"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), sliceUri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="624"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="696"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" return new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="724"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" return new ListBuilder(getContext(), sliceUri, TimeUnit.SECONDS.toMillis(10))"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="765"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="852"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" return new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1061"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), uri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1089"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), uri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1151"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" ListBuilder lb = new ListBuilder(getContext(), uri, INFINITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1186"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" return new ListBuilder(getContext(), uri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1274"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have a primary action set on one of its rows"
+ errorLine1=" Slice s = new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1364"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="Slices"
+ message="A slice should have at least one row added to it"
+ errorLine1=" return new ListBuilder(getContext(), sliceUri, INFINITY)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SampleSliceProvider.java"
+ line="1398"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_speak.xml"
+ line="6"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="WifiManagerPotentialLeak"
+ message="The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing `context` to `context.getApplicationContext()`"
+ errorLine1=" WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/test/SliceBroadcastReceiver.java"
+ line="54"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:autoMirrored="true">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/ic_speak.xml"
+ line="6"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ExportedReceiver"
+ message="Exported receiver does not require permission"
+ errorLine1=" <receiver"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="22"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cake.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cake.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat.jpeg` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat.jpeg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat_1.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat_1.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat_2.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat_2.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat_3.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat_3.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat_4.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat_4.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat_5.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat_5.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cat_6.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cat_6.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/cheese.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/cheese.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/mady.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/mady.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/message.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/message.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/pizza.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/pizza.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/pizza1.jpeg` in densityless folder">
+ <location
+ file="src/main/res/drawable/pizza1.jpeg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/pizza2.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/pizza2.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/pizza3.jpeg` in densityless folder">
+ <location
+ file="src/main/res/drawable/pizza3.jpeg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/pizza4.jpeg` in densityless folder">
+ <location
+ file="src/main/res/drawable/pizza4.jpeg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/reservation.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/reservation.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/slices_1.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/slices_1.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/slices_2.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/slices_2.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/slices_3.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/slices_3.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/slices_4.jpg` in densityless folder">
+ <location
+ file="src/main/res/drawable/slices_4.jpg"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/weather_1.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/weather_1.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/weather_2.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/weather_2.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/weather_3.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/weather_3.png"/>
+ </issue>
+
+ <issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/weather_4.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/weather_4.png"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/slices/view/lint-baseline.xml b/slices/view/lint-baseline.xml
index bff8fb8..09882c6 100644
--- a/slices/view/lint-baseline.xml
+++ b/slices/view/lint-baseline.xml
@@ -1,5 +1,1677 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_REMOTE_INPUT`"
+ errorLine1=" final SliceItem input = SliceQuery.find(sliceItem, FORMAT_REMOTE_INPUT);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ActionRow.java"
+ line="124"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" final SliceItem image = SliceQuery.find(sliceItem, FORMAT_IMAGE);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ActionRow.java"
+ line="125"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 21): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" boolean tint = !image.hasHint(HINT_NO_TINT);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ActionRow.java"
+ line="162"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" mSeeMoreItem = SliceQuery.find(gridItem, null, HINT_SEE_MORE, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="76"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] hints = new String[] {HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="83"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" String[] hints = new String[] {HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="83"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" mPrimaryAction = SliceQuery.find(gridItem, FORMAT_SLICE, hints,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="84"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" new String[] {HINT_ACTIONS} /* nonHints */);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="85"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" boolean containsSeeMore = SliceQuery.find(item, null, HINT_SEE_MORE, null) != null;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="188"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" || item.hasAnyHints(HINT_SHORTCUT, HINT_SEE_MORE, HINT_KEYWORDS, HINT_TTL,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="190"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" || item.hasAnyHints(HINT_SHORTCUT, HINT_SEE_MORE, HINT_KEYWORDS, HINT_TTL,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="190"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" || item.hasAnyHints(HINT_SHORTCUT, HINT_SEE_MORE, HINT_KEYWORDS, HINT_TTL,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="190"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" || item.hasAnyHints(HINT_SHORTCUT, HINT_SEE_MORE, HINT_KEYWORDS, HINT_TTL,"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="190"
+ column="86"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" HINT_LAST_UPDATED, HINT_OVERLAY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="191"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" boolean isNonCellContent = SUBTYPE_CONTENT_DESCRIPTION.equals(cellItem.getSubType())"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="337"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" || cellItem.hasAnyHints(HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="338"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" || cellItem.hasAnyHints(HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="338"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" || cellItem.hasAnyHints(HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="338"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" && (FORMAT_TEXT.equals(format)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="340"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" || FORMAT_LONG.equals(format)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="341"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" || FORMAT_IMAGE.equals(format));"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="342"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" return mCellItems.size() == 1 && FORMAT_IMAGE.equals(mCellItems.get(0).getFormat());"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridContent.java"
+ line="356"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LARGE`"
+ errorLine1=" boolean isTitle = SliceQuery.hasAnyHints(item, HINT_LARGE, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridRowView.java"
+ line="417"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" boolean isTitle = SliceQuery.hasAnyHints(item, HINT_LARGE, HINT_TITLE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridRowView.java"
+ line="417"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" boolean isIcon = !item.hasHint(HINT_NO_TINT);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridRowView.java"
+ line="465"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" FORMAT_ACTION, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridRowView.java"
+ line="534"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" boolean isNonRowContent = child.hasAnyHints(HINT_ACTIONS, HINT_SEE_MORE, HINT_KEYWORDS,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="101"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" boolean isNonRowContent = child.hasAnyHints(HINT_ACTIONS, HINT_SEE_MORE, HINT_KEYWORDS,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="101"
+ column="86"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" boolean isNonRowContent = child.hasAnyHints(HINT_ACTIONS, HINT_SEE_MORE, HINT_KEYWORDS,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="101"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" HINT_TTL, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="102"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" HINT_TTL, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="102"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] hints = new String[]{HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="236"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" String[] hints = new String[]{HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="236"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" action = SliceQuery.find(mSliceItem, FORMAT_ACTION, hints, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="237"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" action = SliceQuery.find(mSliceItem, FORMAT_ACTION, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="240"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" String[] nonHints = new String[] {HINT_LIST_ITEM, HINT_SHORTCUT, HINT_ACTIONS,"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="301"
+ column="74"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LIST_ITEM`"
+ errorLine1=" String[] nonHints = new String[] {HINT_LIST_ITEM, HINT_SHORTCUT, HINT_ACTIONS,"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="301"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] nonHints = new String[] {HINT_LIST_ITEM, HINT_SHORTCUT, HINT_ACTIONS,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="301"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_HORIZONTAL`"
+ errorLine1=" HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED, HINT_HORIZONTAL, HINT_SELECTION_OPTION};"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="302"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED, HINT_HORIZONTAL, HINT_SELECTION_OPTION};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="302"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED, HINT_HORIZONTAL, HINT_SELECTION_OPTION};"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="302"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" HINT_KEYWORDS, HINT_TTL, HINT_LAST_UPDATED, HINT_HORIZONTAL, HINT_SELECTION_OPTION};"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="302"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" SliceItem header = SliceQuery.find(slice, FORMAT_SLICE, null, nonHints);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="303"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" new String[] {HINT_SEE_MORE}, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="313"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" SliceItem item = SliceQuery.find(sliceItem, FORMAT_TEXT, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ListContent.java"
+ line="333"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_SOURCE`"
+ errorLine1=" SliceItem source = SliceQuery.findSubtype(slice, FORMAT_IMAGE, SUBTYPE_SOURCE);"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/MessageView.java"
+ line="75"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" SliceItem source = SliceQuery.findSubtype(slice, FORMAT_IMAGE, SUBTYPE_SOURCE);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/MessageView.java"
+ line="75"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" List<SliceItem> items = SliceQuery.findAll(slice, FORMAT_TEXT);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/MessageView.java"
+ line="90"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" mRange = SliceQuery.findSubtype(rowSlice, FORMAT_ACTION, SUBTYPE_RANGE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="133"
+ column="78"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" mRange = SliceQuery.findSubtype(rowSlice, FORMAT_ACTION, SUBTYPE_RANGE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="133"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" && FORMAT_LONG.equals(mStartItem.getFormat());"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="179"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" boolean isAction = SliceQuery.find(item, FORMAT_ACTION) != null;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="182"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" List<SliceItem> possibleStartItems = SliceQuery.findAll(rowSlice, null, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="210"
+ column="81"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] hints = new String[] {HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="224"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" String[] hints = new String[] {HINT_SHORTCUT, HINT_TITLE};"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="224"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" List<SliceItem> possiblePrimaries = SliceQuery.findAll(rowSlice, FORMAT_SLICE, hints, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="225"
+ column="74"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" possiblePrimaries.addAll(SliceQuery.findAll(rowSlice, FORMAT_ACTION, hints, null));"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="226"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" return FORMAT_ACTION.equals(mSliceItem.getFormat())"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="364"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SEE_MORE`"
+ errorLine1=" && mSliceItem.getSlice().hasHint(HINT_SEE_MORE)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="365"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" && (textSlice.hasHint(HINT_PARTIAL)"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="416"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" return FORMAT_IMAGE.equals(itemFormat)"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="475"
+ column="16"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" || FORMAT_TEXT.equals(itemFormat)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="476"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" || FORMAT_LONG.equals(itemFormat)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="477"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" || FORMAT_ACTION.equals(itemFormat)"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="478"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_REMOTE_INPUT`"
+ errorLine1=" || FORMAT_REMOTE_INPUT.equals(itemFormat)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="479"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" || FORMAT_SLICE.equals(itemFormat)"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="480"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_RANGE`"
+ errorLine1=" || (FORMAT_INT.equals(itemFormat) && SUBTYPE_RANGE.equals(slice.getSubType()));"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="481"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" || (FORMAT_INT.equals(itemFormat) && SUBTYPE_RANGE.equals(slice.getSubType()));"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowContent.java"
+ line="481"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem mode = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_RANGE_MODE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="504"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" && SliceQuery.find(endItem.getSlice(), FORMAT_IMAGE) == null;"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="566"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" && SliceQuery.find(endItem, FORMAT_ACTION) != null;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="568"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" && SliceQuery.find(mStartItem, FORMAT_ACTION) != null;"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="581"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" || (subtitleItem != null && subtitleItem.hasHint(HINT_PARTIAL));"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="635"
+ column="74"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem min = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_MIN);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="698"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_MAX`"
+ errorLine1=" SliceItem max = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_MAX);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="705"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem max = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_MAX);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="705"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_VALUE`"
+ errorLine1=" SliceItem progress = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_VALUE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="712"
+ column="77"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem progress = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_VALUE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="712"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem style = SliceQuery.findSubtype(mRangeItem, FORMAT_INT, SUBTYPE_RANGE_MODE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="731"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" final boolean isSeekBar = FORMAT_ACTION.equals(mRangeItem.getFormat());"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="733"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#EXTRA_RANGE_VALUE`"
+ errorLine1=" .putExtra(EXTRA_RANGE_VALUE, mRangeValue));"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="838"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" SliceQuery.findSubtype(optionItem, FORMAT_TEXT, SUBTYPE_SELECTION_OPTION_KEY);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="868"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" SliceQuery.findSubtype(optionItem, FORMAT_TEXT, SUBTYPE_SELECTION_OPTION_VALUE);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="870"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_NO_TINT`"
+ errorLine1=" boolean isIcon = !sliceItem.hasHint(HINT_NO_TINT);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RowView.java"
+ line="950"
+ column="49"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#EXTRA_TOGGLE_STATE`"
+ errorLine1=" .putExtra(EXTRA_TOGGLE_STATE, isChecked);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceActionView.java"
+ line="289"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" init(new SliceItem(slice, FORMAT_SLICE, null, slice.getHints()));"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="70"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" mColorItem = SliceQuery.findTopLevelItem(item.getSlice(), FORMAT_INT, SUBTYPE_COLOR,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="84"
+ column="83"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" mColorItem = SliceQuery.findTopLevelItem(item.getSlice(), FORMAT_INT, SUBTYPE_COLOR,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="84"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" mLayoutDirItem = SliceQuery.findTopLevelItem(item.getSlice(), FORMAT_INT,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="86"
+ column="75"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" SUBTYPE_LAYOUT_DIRECTION, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="87"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_CONTENT_DESCRIPTION`"
+ errorLine1=" mContentDescr = SliceQuery.findSubtype(item, FORMAT_TEXT, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="89"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" mContentDescr = SliceQuery.findSubtype(item, FORMAT_TEXT, SUBTYPE_CONTENT_DESCRIPTION);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="89"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] hints = new String[]{HINT_TITLE, HINT_SHORTCUT};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="156"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" String[] hints = new String[]{HINT_TITLE, HINT_SHORTCUT};"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="156"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" SliceItem actionItem = SliceQuery.find(mSliceItem, FORMAT_ACTION, hints, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="157"
+ column="61"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" iconItem = SliceQuery.find(actionItem, FORMAT_IMAGE, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="159"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" iconItem = SliceQuery.find(actionItem, FORMAT_IMAGE, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="159"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" labelItem = SliceQuery.find(actionItem, FORMAT_TEXT, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="160"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" actionItem = SliceQuery.find(mSliceItem, FORMAT_ACTION, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="164"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" iconItem = SliceQuery.find(mSliceItem, FORMAT_IMAGE, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="169"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" iconItem = SliceQuery.find(mSliceItem, FORMAT_IMAGE, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="169"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TITLE`"
+ errorLine1=" labelItem = SliceQuery.find(mSliceItem, FORMAT_TEXT, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="172"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" labelItem = SliceQuery.find(mSliceItem, FORMAT_TEXT, HINT_TITLE, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="172"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_IMAGE`"
+ errorLine1=" iconItem = SliceQuery.find(mSliceItem, FORMAT_IMAGE, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="177"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" labelItem = SliceQuery.find(mSliceItem, FORMAT_TEXT, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="180"
+ column="53"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" SliceItem slice = SliceQuery.find(mSliceItem, FORMAT_SLICE, (String) null, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="199"
+ column="55"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" new Slice.Builder(uri).build(), FORMAT_ACTION,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="225"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_ACTION`"
+ errorLine1=" actionItem = new SliceItem(pi, null, FORMAT_ACTION, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceContent.java"
+ line="234"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" SliceItem ttlItem = SliceQuery.find(slice, FORMAT_LONG, HINT_TTL, null);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="138"
+ column="65"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" SliceItem ttlItem = SliceQuery.find(slice, FORMAT_LONG, HINT_TTL, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="138"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" SliceItem updatedItem = SliceQuery.find(slice, FORMAT_LONG, HINT_LAST_UPDATED, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="142"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" SliceItem updatedItem = SliceQuery.find(slice, FORMAT_LONG, HINT_LAST_UPDATED, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="142"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_BUNDLE`"
+ errorLine1=" SliceItem hostExtrasItem = SliceQuery.findSubtype(slice, FORMAT_BUNDLE,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="146"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#EXTRA_TOGGLE_STATE`"
+ errorLine1=" .putExtra(EXTRA_TOGGLE_STATE, toggleValue);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="280"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#EXTRA_RANGE_VALUE`"
+ errorLine1=" .putExtra(EXTRA_RANGE_VALUE, adjustedValue);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="320"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_MAX`"
+ errorLine1=" SliceItem maxItem = SliceQuery.findSubtype(range, FORMAT_INT, SUBTYPE_MAX);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="340"
+ column="75"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem maxItem = SliceQuery.findSubtype(range, FORMAT_INT, SUBTYPE_MAX);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="340"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem minItem = SliceQuery.findSubtype(range, FORMAT_INT, SUBTYPE_MIN);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="341"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_VALUE`"
+ errorLine1=" SliceItem currentItem = SliceQuery.findSubtype(range, FORMAT_INT, SUBTYPE_VALUE);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="360"
+ column="79"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem currentItem = SliceQuery.findSubtype(range, FORMAT_INT, SUBTYPE_VALUE);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="360"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" SliceItem keywordGroup = SliceQuery.find(mSlice, FORMAT_SLICE, HINT_KEYWORDS, null);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="380"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" SliceItem keywordGroup = SliceQuery.find(mSlice, FORMAT_SLICE, HINT_KEYWORDS, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="380"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_TEXT`"
+ errorLine1=" List<SliceItem> itemList = SliceQuery.findAll(keywordGroup, FORMAT_TEXT);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="382"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PARTIAL`"
+ errorLine1=" boolean hasHintPartial = SliceQuery.find(mSlice, null, HINT_PARTIAL, null) != null;"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="406"
+ column="64"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_PERMISSION_REQUEST`"
+ errorLine1=" return mSlice.hasHint(HINT_PERMISSION_REQUEST);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="448"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ERROR`"
+ errorLine1=" return mSlice.hasHint(HINT_ERROR);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="458"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" SliceItem actionGroup = SliceQuery.find(slice, FORMAT_SLICE, HINT_ACTIONS, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="476"
+ column="70"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" SliceItem actionGroup = SliceQuery.find(slice, FORMAT_SLICE, HINT_ACTIONS, null);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="476"
+ column="56"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" String[] hints = new String[] {HINT_ACTIONS, HINT_SHORTCUT};"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="477"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_SHORTCUT`"
+ errorLine1=" String[] hints = new String[] {HINT_ACTIONS, HINT_SHORTCUT};"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="477"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_SLICE`"
+ errorLine1=" ? SliceQuery.findAll(actionGroup, FORMAT_SLICE, hints, null)"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceMetadata.java"
+ line="479"
+ column="51"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" Slice.Builder b = new Slice.Builder(sb).addHints(HINT_ACTIONS);"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="108"
+ column="78"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_ACTIONS`"
+ errorLine1=" builder.addSubSlice(sb.addHints(HINT_ACTIONS).build());"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="111"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" SliceItem ttlItem = SliceQuery.findTopLevelItem(s, FORMAT_LONG, HINT_TTL, null, null);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="130"
+ column="73"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" SliceItem ttlItem = SliceQuery.findTopLevelItem(s, FORMAT_LONG, HINT_TTL, null, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="130"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_TTL`"
+ errorLine1=" slice.addLong(ttlItem.getLong(), SUBTYPE_MILLIS, HINT_TTL);"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="132"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" s, FORMAT_LONG, HINT_LAST_UPDATED, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="137"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_LONG`"
+ errorLine1=" s, FORMAT_LONG, HINT_LAST_UPDATED, null, null);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="137"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_LAST_UPDATED`"
+ errorLine1=" slice.addLong(updatedItem.getLong(), SUBTYPE_MILLIS, HINT_LAST_UPDATED);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="139"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" SliceItem colorItem = SliceQuery.findTopLevelItem(s, FORMAT_INT, SUBTYPE_COLOR, null,"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="143"
+ column="74"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" SliceItem colorItem = SliceQuery.findTopLevelItem(s, FORMAT_INT, SUBTYPE_COLOR, null,"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="143"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" slice.addInt(colorItem.getInt(), SUBTYPE_COLOR);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="146"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" s, FORMAT_INT, SUBTYPE_LAYOUT_DIRECTION, null, null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="151"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" s, FORMAT_INT, SUBTYPE_LAYOUT_DIRECTION, null, null);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="151"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_LAYOUT_DIRECTION`"
+ errorLine1=" slice.addInt(layoutDirItem.getInt(), SUBTYPE_LAYOUT_DIRECTION);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="153"
+ column="50"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#HINT_KEYWORDS`"
+ errorLine1=" slice.addSubSlice(sb.addHints(HINT_KEYWORDS).build());"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="163"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.Slice#SUBTYPE_COLOR`"
+ errorLine1=" mCurrentSlice, FORMAT_INT, SUBTYPE_COLOR);"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceView.java"
+ line="824"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 19): `android.app.slice.SliceItem#FORMAT_INT`"
+ errorLine1=" mCurrentSlice, FORMAT_INT, SUBTYPE_COLOR);"
+ errorLine2=" ~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceView.java"
+ line="824"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 19): `android.R.attr#colorAccent`"
+ errorLine1=" return getColorAttr(context, android.R.attr.colorAccent);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceViewUtil.java"
+ line="64"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 19): `android.R.attr#colorError`"
+ errorLine1=" return getColorAttr(context, android.R.attr.colorError);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceViewUtil.java"
+ line="71"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_slice_send.xml"
+ line="17"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `tintMode` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:tintMode="src_in""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_remote_input.xml"
+ line="67"
+ column="17"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -24,6 +1696,39 @@
</issue>
<issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" return LayoutInflater.from(mContext).inflate(R.layout.abc_slice_grid, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceAdapter.java"
+ line="268"
+ column="87"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" return LayoutInflater.from(mContext).inflate(R.layout.abc_slice_message, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceAdapter.java"
+ line="270"
+ column="90"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceAdapter.java"
+ line="273"
+ column="25"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 20, the call containing class androidx.slice.widget.ActionRow is not annotated with @RequiresApi(x) where x is at least 20. Either annotate the containing class with at least @RequiresApi(20) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(20)."
errorLine1=" if (input.getRemoteInput().getAllowFreeFormInput()) {"
@@ -123,6 +1828,754 @@
</issue>
<issue
+ id="UseSwitchCompatOrMaterialCode"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1=" Switch switchView = (Switch) LayoutInflater.from(getContext()).inflate("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceActionView.java"
+ line="119"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UseSwitchCompatOrMaterialXml"
+ message="Use `SwitchCompat` from AppCompat or `SwitchMaterial` from Material library"
+ errorLine1="<Switch xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2="^">
+ <location
+ file="src/main/res/layout/abc_slice_switch.xml"
+ line="18"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="This attribute is not supported in images generated from this vector icon for API < 21; check generated icon to make sure it looks acceptable"
+ errorLine1=" android:autoMirrored="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/abc_ic_slice_send.xml"
+ line="17"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `IconCompat.TYPE_ADAPTIVE_BITMAP`, `IconCompat.TYPE_BITMAP`, `IconCompat.TYPE_DATA`, `IconCompat.TYPE_RESOURCE`, `IconCompat.TYPE_UNKNOWN`, `IconCompat.TYPE_URI`, `IconCompat.TYPE_URI_ADAPTIVE_BITMAP`"
+ errorLine1=" switch (icon.getType()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="246"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `IconCompat.TYPE_ADAPTIVE_BITMAP`, `IconCompat.TYPE_BITMAP`, `IconCompat.TYPE_DATA`, `IconCompat.TYPE_RESOURCE`, `IconCompat.TYPE_UNKNOWN`, `IconCompat.TYPE_URI`, `IconCompat.TYPE_URI_ADAPTIVE_BITMAP`"
+ errorLine1=" case Icon.TYPE_RESOURCE:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceUtils.java"
+ line="247"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `IconCompat.TYPE_ADAPTIVE_BITMAP`, `IconCompat.TYPE_BITMAP`, `IconCompat.TYPE_DATA`, `IconCompat.TYPE_RESOURCE`, `IconCompat.TYPE_UNKNOWN`, `IconCompat.TYPE_URI`, `IconCompat.TYPE_URI_ADAPTIVE_BITMAP`"
+ errorLine1=" switch (icon.getType()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceXml.java"
+ line="285"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `IconCompat.TYPE_ADAPTIVE_BITMAP`, `IconCompat.TYPE_BITMAP`, `IconCompat.TYPE_DATA`, `IconCompat.TYPE_RESOURCE`, `IconCompat.TYPE_UNKNOWN`, `IconCompat.TYPE_URI`, `IconCompat.TYPE_URI_ADAPTIVE_BITMAP`"
+ errorLine1=" case Icon.TYPE_RESOURCE:"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceXml.java"
+ line="286"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Unexpected constant; expected one of: `IconCompat.TYPE_ADAPTIVE_BITMAP`, `IconCompat.TYPE_BITMAP`, `IconCompat.TYPE_DATA`, `IconCompat.TYPE_RESOURCE`, `IconCompat.TYPE_UNKNOWN`, `IconCompat.TYPE_URI`, `IconCompat.TYPE_URI_ADAPTIVE_BITMAP`"
+ errorLine1=" case Icon.TYPE_URI:"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/SliceXml.java"
+ line="289"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_min" formatted="false" msgid="6996334305156847955">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/strings.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/strings.xml"
+ line="30"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="30"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_years" formatted="false" msgid="6212691832333991589">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/strings.xml"
+ line="30"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/strings.xml"
+ line="32"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/strings.xml"
+ line="36"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/strings.xml"
+ line="36"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="abc_slice_duration_days" formatted="false" msgid="6241698511167107334">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/strings.xml"
+ line="36"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_alignStart`"
+ errorLine1=" android:layout_alignStart="@android:id/title""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_message.xml"
+ line="58"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_alignLeft`"
+ errorLine1=" android:layout_alignLeft="@android:id/title""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_message.xml"
+ line="59"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_small_template.xml"
+ line="46"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/activatedBackgroundIndicator` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/activatedBackgroundIndicator""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_grid.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/activatedBackgroundIndicator` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/activatedBackgroundIndicator""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_message.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?android:attr/activatedBackgroundIndicator` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?android:attr/activatedBackgroundIndicator""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_message_local.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `ActionRow` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="public class ActionRow extends FrameLayout {"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ActionRow.java"
+ line="58"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `SliceActionView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1="public class SliceActionView extends FrameLayout implements View.OnClickListener,"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceActionView.java"
+ line="59"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``LinearLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" mViewContainer.setOnTouchListener(isClickable ? this : null);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/GridRowView.java"
+ line="505"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `RemoteInputView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent event) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/RemoteInputView.java"
+ line="177"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`ShortcutView#performClick` should call `super#performClick`"
+ errorLine1=" public boolean performClick() {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/ShortcutView.java"
+ line="107"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`SliceViewHolder#onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceAdapter.java"
+ line="364"
+ column="24"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `SliceView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slice/widget/SliceView.java"
+ line="306"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_message.xml"
+ line="47"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageButton"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/abc_slice_remote_input.xml"
+ line="54"
+ column="10"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public ActionRow(Context context, boolean fullActions) {"
diff --git a/slidingpanelayout/slidingpanelayout/lint-baseline.xml b/slidingpanelayout/slidingpanelayout/lint-baseline.xml
index 4a01220..25b7ac9 100644
--- a/slidingpanelayout/slidingpanelayout/lint-baseline.xml
+++ b/slidingpanelayout/slidingpanelayout/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `SlidingPaneLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/slidingpanelayout/widget/SlidingPaneLayout.java"
+ line="819"
+ column="20"/>
+ </issue>
<issue
id="UnknownNullness"
diff --git a/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml b/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml
index 5ab223b..f7d995f 100644
--- a/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml
+++ b/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="MissingTestSizeAnnotation"
@@ -12,4 +12,37 @@
column="9"/>
</issue>
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
</issues>
diff --git a/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml b/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml
index 7ee6746..dd69836 100644
--- a/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml
+++ b/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="MissingTestSizeAnnotation"
@@ -12,4 +12,37 @@
column="9"/>
</issue>
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application>"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
</issues>
diff --git a/sqlite/sqlite-framework/lint-baseline.xml b/sqlite/sqlite-framework/lint-baseline.xml
index 3b001c2..ecc6cc5 100644
--- a/sqlite/sqlite-framework/lint-baseline.xml
+++ b/sqlite/sqlite-framework/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/sqlite/sqlite-inspection/lint-baseline.xml b/sqlite/sqlite-inspection/lint-baseline.xml
index 2c4647a..8d5ec34 100644
--- a/sqlite/sqlite-inspection/lint-baseline.xml
+++ b/sqlite/sqlite-inspection/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanUncheckedReflection"
@@ -23,4 +23,15 @@
column="13"/>
</issue>
+ <issue
+ id="IgnoreWithoutReason"
+ message="Test is ignored without giving any explanation"
+ errorLine1=" @Ignore"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/androidTest/java/androidx/sqlite/inspection/test/InvalidationTest.kt"
+ line="92"
+ column="5"/>
+ </issue>
+
</issues>
diff --git a/sqlite/sqlite/lint-baseline.xml b/sqlite/sqlite/lint-baseline.xml
index 8461ad8..ea8c9ce2 100644
--- a/sqlite/sqlite/lint-baseline.xml
+++ b/sqlite/sqlite/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/startup/integration-tests/test-app/lint-baseline.xml b/startup/integration-tests/test-app/lint-baseline.xml
new file mode 100644
index 0000000..1eb9487
--- /dev/null
+++ b/startup/integration-tests/test-app/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+</issues>
diff --git a/startup/startup-runtime-lint/lint-baseline.xml b/startup/startup-runtime-lint/lint-baseline.xml
new file mode 100644
index 0000000..08d32a4
--- /dev/null
+++ b/startup/startup-runtime-lint/lint-baseline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = DESCRIPTION,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/startup/lint/EnsureInitializerMetadataDetector.kt"
+ line="60"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""<meta-data>" looks like an XML reference; surround with backtics in string to display as symbol, e.g. \`<meta-data>\`"
+ errorLine1=" corresponding <meta-data> entry in the AndroidManifest.xml file."
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/startup/lint/EnsureInitializerMetadataDetector.kt"
+ line="63"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""<meta-data>" looks like an XML reference; surround with backtics in string to display as symbol, e.g. \`<meta-data>\`"
+ errorLine1=" context.report(issue = ISSUE, location = location, message = DESCRIPTION)"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/startup/lint/EnsureInitializerMetadataDetector.kt"
+ line="123"
+ column="78"/>
+ </issue>
+
+ <issue
+ id="LintImplUseExistingConstants"
+ message="Use `Scope.JAVA_FILE_SCOPE` instead"
+ errorLine1=" EnumSet.of(Scope.JAVA_FILE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/startup/lint/InitializerConstructorDetector.kt"
+ line="50"
+ column="17"/>
+ </issue>
+
+</issues>
diff --git a/startup/startup-runtime-lint/src/test/java/androidx/startup/lint/InitializerConstructorTest.kt b/startup/startup-runtime-lint/src/test/java/androidx/startup/lint/InitializerConstructorTest.kt
index 0f3488a..c73c1ec 100644
--- a/startup/startup-runtime-lint/src/test/java/androidx/startup/lint/InitializerConstructorTest.kt
+++ b/startup/startup-runtime-lint/src/test/java/androidx/startup/lint/InitializerConstructorTest.kt
@@ -68,7 +68,6 @@
lint()
.files(
INITIALIZER,
- TEST_INITIALIZER,
component
)
.issues(InitializerConstructorDetector.ISSUE)
diff --git a/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml b/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml
index d23b92d..5045b9e 100644
--- a/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml
+++ b/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `SwipeRefreshLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
+ line="1217"
+ column="20"/>
+ </issue>
<issue
id="KotlinPropertyAccess"
diff --git a/test/screenshot/lint-baseline.xml b/test/screenshot/lint-baseline.xml
new file mode 100644
index 0000000..789c4ce
--- /dev/null
+++ b/test/screenshot/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" var model = android.os.Build.MODEL.toLowerCase()"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/test/screenshot/ScreenshotTestRule.kt"
+ line="336"
+ column="44"/>
+ </issue>
+
+</issues>
diff --git a/testutils/testutils-espresso/lint-baseline.xml b/testutils/testutils-espresso/lint-baseline.xml
index f01d19e..afde7e7 100644
--- a/testutils/testutils-espresso/lint-baseline.xml
+++ b/testutils/testutils-espresso/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnknownNullness"
diff --git a/testutils/testutils-runtime/lint-baseline.xml b/testutils/testutils-runtime/lint-baseline.xml
index 4e2f7df..2dd473d 100644
--- a/testutils/testutils-runtime/lint-baseline.xml
+++ b/testutils/testutils-runtime/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanUncheckedReflection"
diff --git a/text/text/lint-baseline.xml b/text/text/lint-baseline.xml
index 705f8a4..8634f41 100644
--- a/text/text/lint-baseline.xml
+++ b/text/text/lint-baseline.xml
@@ -1,5 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.fonts.FontStyle#FONT_WEIGHT_NORMAL`"
+ errorLine1=" textPaint.typeface = getTypeface(FontStyle.FONT_WEIGHT_NORMAL, false)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/style/FontSpan.kt"
+ line="42"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.fonts.FontStyle#FONT_WEIGHT_NORMAL`"
+ errorLine1=" textPaint.typeface = getTypeface(FontStyle.FONT_WEIGHT_NORMAL, false)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/style/FontSpan.kt"
+ line="42"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.fonts.FontStyle#FONT_WEIGHT_BOLD`"
+ errorLine1=" FontStyle.FONT_WEIGHT_BOLD"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/style/FontSpan.kt"
+ line="49"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.fonts.FontStyle#FONT_WEIGHT_NORMAL`"
+ errorLine1=" FontStyle.FONT_WEIGHT_NORMAL"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/style/FontSpan.kt"
+ line="51"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 28): `android.graphics.fonts.FontStyle#FONT_WEIGHT_NORMAL`"
+ errorLine1=" oldTypeface?.weight ?: FontStyle.FONT_WEIGHT_NORMAL"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/style/FontWeightStyleSpan.kt"
+ line="79"
+ column="36"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.text.LineBreaker#JUSTIFICATION_MODE_NONE`"
+ errorLine1=" const val JUSTIFICATION_MODE_NONE = LineBreaker.JUSTIFICATION_MODE_NONE"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="51"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.text.LineBreaker#JUSTIFICATION_MODE_INTER_WORD`"
+ errorLine1=" const val JUSTIFICATION_MODE_INTER_WORD = LineBreaker.JUSTIFICATION_MODE_INTER_WORD"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="52"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.text.Layout#HYPHENATION_FREQUENCY_NORMAL`"
+ errorLine1=" const val HYPHENATION_FREQUENCY_NORMAL = Layout.HYPHENATION_FREQUENCY_NORMAL"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="58"
+ column="46"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.text.Layout#HYPHENATION_FREQUENCY_FULL`"
+ errorLine1=" const val HYPHENATION_FREQUENCY_FULL = Layout.HYPHENATION_FREQUENCY_FULL"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="59"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 23 (current min is 21): `android.text.Layout#HYPHENATION_FREQUENCY_NONE`"
+ errorLine1=" const val HYPHENATION_FREQUENCY_NONE = Layout.HYPHENATION_FREQUENCY_NONE"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="60"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.text.LineBreaker#BREAK_STRATEGY_SIMPLE`"
+ errorLine1=" const val BREAK_STRATEGY_SIMPLE = LineBreaker.BREAK_STRATEGY_SIMPLE"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="70"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.text.LineBreaker#BREAK_STRATEGY_HIGH_QUALITY`"
+ errorLine1=" const val BREAK_STRATEGY_HIGH_QUALITY = LineBreaker.BREAK_STRATEGY_HIGH_QUALITY"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="71"
+ column="45"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 21): `android.graphics.text.LineBreaker#BREAK_STRATEGY_BALANCED`"
+ errorLine1=" const val BREAK_STRATEGY_BALANCED = LineBreaker.BREAK_STRATEGY_BALANCED"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/compose/ui/text/android/LayoutCompat.kt"
+ line="72"
+ column="41"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
diff --git a/textclassifier/integration-tests/testapp/lint-baseline.xml b/textclassifier/integration-tests/testapp/lint-baseline.xml
index c33b099..1be91a9 100644
--- a/textclassifier/integration-tests/testapp/lint-baseline.xml
+++ b/textclassifier/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1="<application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="2"/>
+ </issue>
<issue
id="SyntheticAccessor"
@@ -35,6 +46,79 @@
</issue>
<issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/android.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/android.png"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1="<application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="TextFields"
+ message="This text field does not specify an `inputType`"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="39"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="39"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TextClassifier in use", should use `@string` resource"
+ errorLine1=" android:hint="TextClassifier in use"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Text to be classified", should use `@string` resource"
+ errorLine1=" android:hint="Text to be classified""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="43"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Linkify", should use `@string` resource"
+ errorLine1=" android:text="Linkify"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="55"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/textclassifier/textclassifier/lint-baseline.xml b/textclassifier/textclassifier/lint-baseline.xml
index 02540d3..bc41c4b 100644
--- a/textclassifier/textclassifier/lint-baseline.xml
+++ b/textclassifier/textclassifier/lint-baseline.xml
@@ -1,5 +1,401 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_VIEW_CALENDAR`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_VIEW_CALENDAR;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="76"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_VIEW_MAP`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_VIEW_MAP;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="81"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_TRACK_FLIGHT`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_TRACK_FLIGHT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="86"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_OPEN_URL`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_OPEN_URL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="91"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_SEND_SMS`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_SEND_SMS;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="96"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_CALL_PHONE`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_CALL_PHONE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="101"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_SEND_EMAIL`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_SEND_EMAIL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="106"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_TEXT_REPLY`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_TEXT_REPLY;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="111"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_CREATE_REMINDER`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_CREATE_REMINDER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="116"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 14): `android.view.textclassifier.ConversationAction#TYPE_SHARE_LOCATION`"
+ errorLine1=" android.view.textclassifier.ConversationAction.TYPE_SHARE_LOCATION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/ConversationAction.java"
+ line="121"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_OVERTYPE`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.ACTION_OVERTYPE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="67"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_COPY`"
+ errorLine1=" public static final int ACTION_COPY = android.view.textclassifier.SelectionEvent.ACTION_COPY;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="69"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_PASTE`"
+ errorLine1=" public static final int ACTION_PASTE = android.view.textclassifier.SelectionEvent.ACTION_PASTE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="71"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_CUT`"
+ errorLine1=" public static final int ACTION_CUT = android.view.textclassifier.SelectionEvent.ACTION_CUT;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="73"
+ column="42"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_SHARE`"
+ errorLine1=" public static final int ACTION_SHARE = android.view.textclassifier.SelectionEvent.ACTION_SHARE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="75"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_SMART_SHARE`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.ACTION_SMART_SHARE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="78"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_DRAG`"
+ errorLine1=" public static final int ACTION_DRAG = android.view.textclassifier.SelectionEvent.ACTION_DRAG;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="80"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_ABANDON`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.ACTION_ABANDON;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="83"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_OTHER`"
+ errorLine1=" public static final int ACTION_OTHER = android.view.textclassifier.SelectionEvent.ACTION_OTHER;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="85"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_SELECT_ALL`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.ACTION_SELECT_ALL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="90"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#ACTION_RESET`"
+ errorLine1=" public static final int ACTION_RESET = android.view.textclassifier.SelectionEvent.ACTION_RESET;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="92"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#EVENT_SELECTION_STARTED`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.EVENT_SELECTION_STARTED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="128"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#EVENT_SELECTION_MODIFIED`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.EVENT_SELECTION_MODIFIED;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="131"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#EVENT_SMART_SELECTION_SINGLE`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.EVENT_SMART_SELECTION_SINGLE;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="134"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#EVENT_SMART_SELECTION_MULTI`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.EVENT_SMART_SELECTION_MULTI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="137"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#EVENT_AUTO_SELECTION`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.EVENT_AUTO_SELECTION;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="140"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#INVOCATION_MANUAL`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.INVOCATION_MANUAL;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="150"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#INVOCATION_LINK`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.INVOCATION_LINK;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="153"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 28 (current min is 14): `android.view.textclassifier.SelectionEvent#INVOCATION_UNKNOWN`"
+ errorLine1=" android.view.textclassifier.SelectionEvent.INVOCATION_UNKNOWN;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="156"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `elevation` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:elevation="@dimen/text_edit_floating_toolbar_elevation""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_container.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `importantForAccessibility` is only used in API level 16 and higher (current min is 14)"
+ errorLine1=" android:importantForAccessibility="no" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_menu_button.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fontFamily` is only used in API level 16 and higher (current min is 14) Did you mean `app:fontFamily` ?"
+ errorLine1=" android:fontFamily="sans-serif-medium""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_menu_button.xml"
+ line="55"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `importantForAccessibility` is only used in API level 16 and higher (current min is 14)"
+ errorLine1=" android:importantForAccessibility="no""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_menu_button.xml"
+ line="61"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.floating_popup_overflow_button, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/widget/FloatingToolbar.java"
+ line="1396"
+ column="71"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.floating_popup_menu_button, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/widget/FloatingToolbar.java"
+ line="1655"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="InflateParams"
+ message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
+ errorLine1=" .inflate(R.layout.floating_popup_container, null);"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/widget/FloatingToolbar.java"
+ line="1700"
+ column="61"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -2499,6 +2895,94 @@
</issue>
<issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `EVENT_AUTO_SELECTION`, `EVENT_SELECTION_MODIFIED`, `EVENT_SELECTION_STARTED`, `EVENT_SMART_SELECTION_MULTI`, `EVENT_SMART_SELECTION_SINGLE`"
+ errorLine1=" switch (eventType) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="426"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ACTION_RESET`, `ACTION_SELECT_ALL`, `EVENT_AUTO_SELECTION`, `EVENT_SELECTION_MODIFIED`, `EVENT_SELECTION_STARTED`, `EVENT_SMART_SELECTION_MULTI`, `EVENT_SMART_SELECTION_SINGLE`"
+ errorLine1=" switch (eventType) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/SelectionEvent.java"
+ line="663"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" ObjectAnimator.ofFloat(view, View.ALPHA, 0, 1).setDuration(150));"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/widget/FloatingToolbar.java"
+ line="1737"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" ObjectAnimator.ofFloat(view, View.ALPHA, 1, 0).setDuration(100));"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/textclassifier/widget/FloatingToolbar.java"
+ line="1752"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?attr/floatingToolbarPopupBackgroundDrawable` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?attr/floatingToolbarPopupBackgroundDrawable""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_container.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?attr/selectableItemBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_menu_button.xml"
+ line="28"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `?attr/actionBarItemBackground` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="?attr/actionBarItemBackground" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_overflow_button.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1="<ImageButton xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/floating_popup_overflow_button.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public float getConfidenceScore(@EntityType String entity) {"
diff --git a/tracing/tracing/lint-baseline.xml b/tracing/tracing/lint-baseline.xml
index 29332a8..1a149b7 100644
--- a/tracing/tracing/lint-baseline.xml
+++ b/tracing/tracing/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/transition/transition/lint-baseline.xml b/transition/transition/lint-baseline.xml
index 53f158c..7f4e7da 100644
--- a/transition/transition/lint-baseline.xml
+++ b/transition/transition/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" sGhostViewClass = Class.forName("android.view.GhostView");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/transition/GhostViewPlatform.java"
+ line="90"
+ column="35"/>
+ </issue>
<issue
id="BanUncheckedReflection"
@@ -398,6 +409,28 @@
</issue>
<issue
+ id="ShiftFlags"
+ message="Consider declaring this constant using 1 << 1 instead"
+ errorLine1=" public static final int MODE_OUT = 0x2;"
+ errorLine2=" ~~~">
+ <location
+ file="src/main/java/androidx/transition/Visibility.java"
+ line="71"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="ViewConstructor"
+ message="Custom view `OverlayViewGroup` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+ errorLine1=" static class OverlayViewGroup extends ViewGroup {"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/transition/ViewOverlayApi14.java"
+ line="110"
+ column="18"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public long getStartDelay(ViewGroup sceneRoot, Transition transition,"
diff --git a/tv-provider/tv-provider/lint-baseline.xml b/tv-provider/tv-provider/lint-baseline.xml
index b17f119..c8b4ea5 100644
--- a/tv-provider/tv-provider/lint-baseline.xml
+++ b/tv-provider/tv-provider/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/tvprovider/media/tv/BasePreviewProgram.java"
+ line="631"
+ column="17"/>
+ </issue>
<issue
id="PrivateConstructorForUtilityClass"
diff --git a/ui/ui-tooling/lint-baseline.xml b/ui/ui-tooling/lint-baseline.xml
index 932b484..88fe476 100644
--- a/ui/ui-tooling/lint-baseline.xml
+++ b/ui/ui-tooling/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 26 (current min is 21): `android.content.res.Configuration#UI_MODE_TYPE_VR_HEADSET`"
+ errorLine1=" UI_MODE_TYPE_VR_HEADSET,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/ui/tooling/preview/UiMode.kt"
+ line="52"
+ column="9"/>
+ </issue>
<issue
id="BanUncheckedReflection"
diff --git a/vectordrawable/integration-tests/testapp/lint-baseline.xml b/vectordrawable/integration-tests/testapp/lint-baseline.xml
index ad33fc5..82f039c 100644
--- a/vectordrawable/integration-tests/testapp/lint-baseline.xml
+++ b/vectordrawable/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="NewApi"
@@ -145,6 +145,809 @@
</issue>
<issue
+ id="UnusedAttribute"
+ message="Attribute `controlX1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX1="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/control_points_interpolator.xml"
+ line="19"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY1="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/control_points_interpolator.xml"
+ line="20"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX2="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/control_points_interpolator.xml"
+ line="21"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY2` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY2="1"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/control_points_interpolator.xml"
+ line="22"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startX="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endX="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endY="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startX="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endX="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endY="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="?colorPrimary"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.4" android:color="#fff"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="29"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="?colorControlActivated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item.xml"
+ line="30"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startX="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endX="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endY="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="?colorPrimary"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.4" android:color="#f00"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="29"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.4" android:color="#fff"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="30"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="?colorControlActivated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_linear_item_overlap.xml"
+ line="31"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="?colorPrimary"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_radial_item.xml"
+ line="27"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.4" android:color="#fff"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_radial_item.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="?colorControlActivated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_radial_item.xml"
+ line="29"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="?colorPrimary"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_radial_item_short.xml"
+ line="24"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="?colorControlActivated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_radial_item_short.xml"
+ line="25"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="?colorPrimary"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item.xml"
+ line="27"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.4" android:color="#fff"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="?colorControlActivated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item.xml"
+ line="29"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="-0.3" android:color="#f00"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item_long.xml"
+ line="24"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="?colorPrimary"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item_long.xml"
+ line="25"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.4" android:color="#0f0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item_long.xml"
+ line="26"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.6" android:color="#00f"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item_long.xml"
+ line="27"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.7" android:color="?colorControlActivated"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item_long.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="1.5" android:color="#00f"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/fill_gradient_sweep_item_long.xml"
+ line="29"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M 0.0,0.0 c 0.08,0.0 0.04,1.0 0.2,0.8 l 0.6,0.1 L 1.0,1.0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/path_interpolator.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `propertyXName` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:propertyXName="translateX""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/anim/path_motion.xml"
+ line="21"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `propertyYName` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:propertyYName="translateY""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/anim/path_motion.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="m -35, 0 a 35,35 0 1,0 70,0 a 35,35 0 1,0 -70,0 m 70, 0 a 35,35 0 1,0 -70,0 a 35,35 0 1,0 70,0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/anim/path_motion.xml"
+ line="23"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `propertyXName` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:propertyXName="translateX""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/anim/path_motion_object.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `propertyYName` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:propertyYName="translateY""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/anim/path_motion_object.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="M0 0 M 18 18 M 0 0 m -35, 0 a 35,35 0 1,0 70,0 a 35,35 0 1,0 -70,0 m 70, 0 a 35,35 0 1,0 -70,0 a 35,35 0 1,0 70,0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/anim/path_motion_object.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlX1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlX1="1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/single_control_point_interpolator.xml"
+ line="20"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `controlY1` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:controlY1="0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/interpolator/single_control_point_interpolator.xml"
+ line="21"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startX="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endX="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startX="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endX="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="#f00"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="28"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.2" android:color="#f0f"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="29"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="#f00f"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item.xml"
+ line="30"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startX="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endX` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endX="100""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `startY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:startY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `endY` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" android:endY="0""
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.1" android:color="#f00"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="25"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.2" android:color="#2f0f"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="26"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `offset` is only used in API level 24 and higher (current min is 14)"
+ errorLine1=" <item android:offset="0.9" android:color="#f00f"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/color/stroke_gradient_item_alpha.xml"
+ line="27"
+ column="11"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `viewportHeight` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:viewportHeight="480""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `viewportWidth` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:viewportWidth="480" >"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="21"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `pathData` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:pathData="m20,200l100,90l180-180l-35-35l-145,145l-60-60l-40,40z""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="26"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `fillColor` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:fillColor="?android:attr/colorControlActivated""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `strokeColor` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:strokeColor="?android:attr/colorControlActivated""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="28"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `strokeLineCap` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:strokeLineCap="round""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="29"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `strokeLineJoin` is only used in API level 21 and higher (current min is 14)"
+ errorLine1=" android:strokeLineJoin="round" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/raw/vector_drawable01.xml"
+ line="30"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/vector_drawable04.xml"
+ line="16"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedAttribute"
+ message="Attribute `autoMirrored` is only used in API level 19 and higher (current min is 14)"
+ errorLine1=" android:autoMirrored="true" >"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/vector_drawable28.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
id="InvalidVectorPath"
message="Use -0.001 instead of -.001 to avoid crashes on some devices"
errorLine1=" m-.001, 0"
@@ -310,6 +1113,39 @@
</issue>
<issue
+ id="QueryPermissionsNeeded"
+ message="Consider adding a `<queries>` declaration to your manifest when calling this \
method; see https://g.co/dev/packagevisibility for details"
+ errorLine1=" List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java"
+ line="65"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="19"
+ column="6"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.color.color1` appears to be unused"
errorLine1=" <color name="color1">#ff3838</color>"
@@ -409,6 +1245,299 @@
</issue>
<issue
+ id="IconLocation"
+ message="Found bitmap drawable `res/drawable/app_sample_code.png` in densityless folder">
+ <location
+ file="src/main/res/drawable/app_sample_code.png"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``AppCompatImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" imageView1.setOnTouchListener(new View.OnTouchListener() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="116"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="118"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view ``AppCompatImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
+ errorLine1=" imageView2.setOnTouchListener(new View.OnTouchListener() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="126"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="128"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView1.setText("Should show start / end for first AVD");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="46"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView2.setText("Not affected by AVD, b/c removed after register");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="48"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView3.setText("Should show start / end for second AVD");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="50"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView4.setText("Not affected by AVD, b/c unregistered after register");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="52"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView1.setText("AVD 1 started");"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="61"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView1.setText("AVD 1 Ended");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="66"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView2.setText("AVD 1 started");"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="73"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView2.setText("AVD 1 Ended");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="78"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView3.setText("AVD 2 started");"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="90"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView3.setText("AVD 2 Ended");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="95"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView4.setText("AVD 2 started");"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="103"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" textView4.setText("AVD 2 Ended");"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/AVDCListenerDemo.java"
+ line="108"
+ column="43"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" t.setText("avgL=" + df.format(time / mIcons.length) + " ms");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SimpleAnimatedVectorDrawable.java"
+ line="66"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" t.setText("avgL=" + df.format(time / mIcons.length) + " ms");"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SimpleAnimatedVectorDrawable.java"
+ line="66"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" t.setText("avgL=" + df.format(time / mIcons.length) + " ms");"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SimpleAnimatedVectorDrawable.java"
+ line="66"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+ errorLine1=" t.setText("avgL=" + df.format(time / mIcons.length) + " ms");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SimpleStaticVectorDrawable.java"
+ line="123"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" t.setText("avgL=" + df.format(time / mIcons.length) + " ms");"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SimpleStaticVectorDrawable.java"
+ line="123"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" t.setText("avgL=" + df.format(time / mIcons.length) + " ms");"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/com/example/android/support/vectordrawable/app/SimpleStaticVectorDrawable.java"
+ line="123"
+ column="63"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TextView", should use `@string` resource"
+ errorLine1=" android:text="TextView""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/avdc_listener.xml"
+ line="29"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TextView", should use `@string` resource"
+ errorLine1=" android:text="TextView""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/avdc_listener.xml"
+ line="33"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TextView", should use `@string` resource"
+ errorLine1=" android:text="TextView""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/avdc_listener.xml"
+ line="41"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "TextView", should use `@string` resource"
+ errorLine1=" android:text="TextView""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/avdc_listener.xml"
+ line="45"
+ column="9"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/vectordrawable/vectordrawable-animated/lint-baseline.xml b/vectordrawable/vectordrawable-animated/lint-baseline.xml
index 80a2b71..e78b395 100644
--- a/vectordrawable/vectordrawable-animated/lint-baseline.xml
+++ b/vectordrawable/vectordrawable-animated/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
@@ -46,6 +46,17 @@
</issue>
<issue
+ id="Recycle"
+ message="This animation should be started with `#start()`"
+ errorLine1=" anim = new ValueAnimator();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AnimatorInflaterCompat.java"
+ line="879"
+ column="20"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" public void onAnimationStart(Drawable drawable) {};"
diff --git a/vectordrawable/vectordrawable/lint-baseline.xml b/vectordrawable/vectordrawable/lint-baseline.xml
index bd95ef7..7585b4f 100644
--- a/vectordrawable/vectordrawable/lint-baseline.xml
+++ b/vectordrawable/vectordrawable/lint-baseline.xml
@@ -1,5 +1,236 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 19 (current min is 14): `android.R.attr#autoMirrored`"
+ errorLine1=" android.R.attr.width, android.R.attr.alpha, android.R.attr.autoMirrored,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="26"
+ column="57"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#tintMode`"
+ errorLine1=" android.R.attr.tintMode, android.R.attr.viewportWidth, android.R.attr.viewportHeight"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="27"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#viewportHeight`"
+ errorLine1=" android.R.attr.tintMode, android.R.attr.viewportWidth, android.R.attr.viewportHeight"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="27"
+ column="68"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#viewportWidth`"
+ errorLine1=" android.R.attr.tintMode, android.R.attr.viewportWidth, android.R.attr.viewportHeight"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="27"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#translateX`"
+ errorLine1=" android.R.attr.translateX, android.R.attr.translateY"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="41"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#translateY`"
+ errorLine1=" android.R.attr.translateX, android.R.attr.translateY"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="41"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#fillColor`"
+ errorLine1=" android.R.attr.name, android.R.attr.fillColor, android.R.attr.pathData,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="52"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#pathData`"
+ errorLine1=" android.R.attr.name, android.R.attr.fillColor, android.R.attr.pathData,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="52"
+ column="60"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#strokeColor`"
+ errorLine1=" android.R.attr.strokeColor, android.R.attr.strokeWidth, android.R.attr.trimPathStart,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="53"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#strokeWidth`"
+ errorLine1=" android.R.attr.strokeColor, android.R.attr.strokeWidth, android.R.attr.trimPathStart,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="53"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#trimPathStart`"
+ errorLine1=" android.R.attr.strokeColor, android.R.attr.strokeWidth, android.R.attr.trimPathStart,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="53"
+ column="69"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#strokeLineCap`"
+ errorLine1=" android.R.attr.trimPathEnd, android.R.attr.trimPathOffset, android.R.attr.strokeLineCap,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="54"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#trimPathEnd`"
+ errorLine1=" android.R.attr.trimPathEnd, android.R.attr.trimPathOffset, android.R.attr.strokeLineCap,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="54"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#trimPathOffset`"
+ errorLine1=" android.R.attr.trimPathEnd, android.R.attr.trimPathOffset, android.R.attr.strokeLineCap,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="54"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#strokeLineJoin`"
+ errorLine1=" android.R.attr.strokeLineJoin, android.R.attr.strokeMiterLimit,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="55"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#strokeMiterLimit`"
+ errorLine1=" android.R.attr.strokeLineJoin, android.R.attr.strokeMiterLimit,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="55"
+ column="44"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#fillAlpha`"
+ errorLine1=" android.R.attr.strokeAlpha, android.R.attr.fillAlpha, android.R.attr.fillType"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="56"
+ column="41"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#strokeAlpha`"
+ errorLine1=" android.R.attr.strokeAlpha, android.R.attr.fillAlpha, android.R.attr.fillType"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="56"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.R.attr#fillType`"
+ errorLine1=" android.R.attr.strokeAlpha, android.R.attr.fillAlpha, android.R.attr.fillType"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="56"
+ column="67"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 21 (current min is 14): `android.R.attr#pathData`"
+ errorLine1=" android.R.attr.name, android.R.attr.pathData, android.R.attr.fillType"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="73"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 24 (current min is 14): `android.R.attr#fillType`"
+ errorLine1=" android.R.attr.name, android.R.attr.pathData, android.R.attr.fillType"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/vectordrawable/graphics/drawable/AndroidResources.java"
+ line="73"
+ column="59"/>
+ </issue>
<issue
id="LambdaLast"
diff --git a/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml b/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml
index 54d4e3a..ef34a0f 100644
--- a/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml
+++ b/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
diff --git a/versionedparcelable/versionedparcelable/lint-baseline.xml b/versionedparcelable/versionedparcelable/lint-baseline.xml
index e72173f..586cfda 100644
--- a/versionedparcelable/versionedparcelable/lint-baseline.xml
+++ b/versionedparcelable/versionedparcelable/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanUncheckedReflection"
diff --git a/viewpager/viewpager/lint-baseline.xml b/viewpager/viewpager/lint-baseline.xml
index c22d7d0..60c5343 100644
--- a/viewpager/viewpager/lint-baseline.xml
+++ b/viewpager/viewpager/lint-baseline.xml
@@ -1,5 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `PagerTabStrip` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/PagerTabStrip.java"
+ line="224"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `ViewPager` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="2169"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" boolean consumeHorizontal = hgrav == Gravity.LEFT || hgrav == Gravity.RIGHT;"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="1565"
+ column="91"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" boolean consumeHorizontal = hgrav == Gravity.LEFT || hgrav == Gravity.RIGHT;"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="1565"
+ column="66"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.LEFT:"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="1693"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.RIGHT:"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="1701"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.LEFT:"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="1867"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" case Gravity.RIGHT:"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/viewpager/widget/ViewPager.java"
+ line="1875"
+ column="34"/>
+ </issue>
<issue
id="LambdaLast"
diff --git a/viewpager2/integration-tests/testapp/lint-baseline.xml b/viewpager2/integration-tests/testapp/lint-baseline.xml
index 73682b6..f57c6f2 100644
--- a/viewpager2/integration-tests/testapp/lint-baseline.xml
+++ b/viewpager2/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
@@ -23,4 +23,125 @@
column="25"/>
</issue>
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="Should explicitly set `android:allowBackup` to `true` or `false` (it's `true` by default, and that can have some security implications for the application's data)"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/activity_tablayout.xml"
+ line="17"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="1" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout-land/activity_tablayout.xml"
+ line="43"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#AA0C2962` with a theme that also paints a background (inferred theme is `@style/Theme.AppCompat.Light`)"
+ errorLine1=" android:background="#AA0C2962" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_viewpager2.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#0C2962` with a theme that also paints a background (inferred theme is `@style/Theme.AppCompat.Light`)"
+ errorLine1=" android:background="#0C2962""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_preview_pages.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_mutable_collection.xml"
+ line="104"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_mutable_collection.xml"
+ line="112"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_mutable_collection.xml"
+ line="120"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_mutable_collection.xml"
+ line="128"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` lambda should call `View#performClick` when a click is detected"
+ errorLine1=" findViewById<View>(R.id.touchpad).setOnTouchListener { _, event ->"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/viewpager2/integration/testapp/FakeDragActivity.kt"
+ line="55"
+ column="62"/>
+ </issue>
+
</issues>
diff --git a/viewpager2/viewpager2/lint-baseline.xml b/viewpager2/viewpager2/lint-baseline.xml
index 8151399..643cbd0 100644
--- a/viewpager2/viewpager2/lint-baseline.xml
+++ b/viewpager2/viewpager2/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="UnsafeNewApiCall"
diff --git a/wear/wear-complications-data/lint-baseline.xml b/wear/wear-complications-data/lint-baseline.xml
index d52013b..d0c3c4b 100644
--- a/wear/wear-complications-data/lint-baseline.xml
+++ b/wear/wear-complications-data/lint-baseline.xml
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return formattedDate.toUpperCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/wearable/complications/TimeFormatText.java"
+ line="91"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="DefaultLocale"
+ message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
+ errorLine1=" return formattedDate.toLowerCase();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/wearable/complications/TimeFormatText.java"
+ line="93"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="SimpleDateFormat"
+ message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+ errorLine1=" mDateFormat = new SimpleDateFormat(format);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/android/support/wearable/complications/TimeFormatText.java"
+ line="72"
+ column="23"/>
+ </issue>
<issue
id="BanTargetApiAnnotation"
@@ -12,4 +45,994 @@
column="1"/>
</issue>
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_days" formatted="false" msgid="8500262093840795448">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/complication_strings.xml"
+ line="4"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/complication_strings.xml"
+ line="8"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/complication_strings.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/complication_strings.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_hours" formatted="false" msgid="3258361256003469346">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/complication_strings.xml"
+ line="10"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/complication_strings.xml"
+ line="12"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/complication_strings.xml"
+ line="16"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/complication_strings.xml"
+ line="16"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_short_minutes" formatted="false" msgid="3812930575997556650">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/complication_strings.xml"
+ line="16"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/complication_strings.xml"
+ line="18"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/complication_strings.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/complication_strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/complication_strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_days" formatted="false" msgid="345557497041553025">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/complication_strings.xml"
+ line="24"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "in" (Indonesian) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-in/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ja" (Japanese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ja/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "km" (Khmer) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-km/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ko" (Korean) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ko/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lo" (Lao) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lo/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "ms" (Malay) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-ms/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "my" (Burmese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-my/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "th" (Thai) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-th/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "vi" (Vietnamese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-vi/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rCN/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rHK/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "zh" (Chinese) the following quantities are not relevant: `one`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-zh-rTW/complication_strings.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/complication_strings.xml"
+ line="30"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/complication_strings.xml"
+ line="30"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_hours" formatted="false" msgid="2990178439049007198">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/complication_strings.xml"
+ line="30"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "cs" (Czech) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-cs/complication_strings.xml"
+ line="36"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "lt" (Lithuanian) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-lt/complication_strings.xml"
+ line="36"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="UnusedQuantity"
+ message="For language "sk" (Slovak) the following quantities are not relevant: `many`"
+ errorLine1=" <plurals name="time_difference_words_minutes" formatted="false" msgid="9081188175463984403">"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-sk/complication_strings.xml"
+ line="36"
+ column="5"/>
+ </issue>
+
</issues>
diff --git a/wear/wear-complications-provider/samples/lint-baseline.xml b/wear/wear-complications-provider/samples/lint-baseline.xml
new file mode 100644
index 0000000..c0f8d85
--- /dev/null
+++ b/wear/wear-complications-provider/samples/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `ProviderUpdateRequester` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1="var updateRequester: ProviderUpdateRequester? = null"
+ errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/complications/samples/BackgroundProviderService.kt"
+ line="32"
+ column="1"/>
+ </issue>
+
+</issues>
diff --git a/wear/wear-watchface-complications-rendering/lint-baseline.xml b/wear/wear-watchface-complications-rendering/lint-baseline.xml
new file mode 100644
index 0000000..833e395
--- /dev/null
+++ b/wear/wear-watchface-complications-rendering/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="InlinedApi"
+ message="Field requires API level 29 (current min is 27): `android.graphics.text.LineBreaker#BREAK_STRATEGY_HIGH_QUALITY`"
+ errorLine1=" builder.setBreakStrategy(LineBreaker.BREAK_STRATEGY_HIGH_QUALITY);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/watchface/complications/rendering/TextRenderer.java"
+ line="387"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `BORDER_STYLE_NONE`"
+ errorLine1=" switch (borderStyle) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/watchface/complications/rendering/ComplicationStyle.java"
+ line="403"
+ column="9"/>
+ </issue>
+
+</issues>
diff --git a/wear/wear-watchface-data/lint-baseline.xml b/wear/wear-watchface-data/lint-baseline.xml
index e66fe67..171b46e 100644
--- a/wear/wear-watchface-data/lint-baseline.xml
+++ b/wear/wear-watchface-data/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanTargetApiAnnotation"
@@ -12,4 +12,15 @@
column="1"/>
</issue>
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `ComplicationData.TYPE_EMPTY`, `ComplicationData.TYPE_ICON`, `ComplicationData.TYPE_LARGE_IMAGE`, `ComplicationData.TYPE_LONG_TEXT`, `ComplicationData.TYPE_NOT_CONFIGURED`, `ComplicationData.TYPE_SHORT_TEXT`, `ComplicationData.TYPE_SMALL_IMAGE`"
+ errorLine1=" switch (data.getType()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/android/support/wearable/watchface/accessibility/AccessibilityUtils.java"
+ line="91"
+ column="13"/>
+ </issue>
+
</issues>
diff --git a/wear/wear-watchface/lint-baseline.xml b/wear/wear-watchface/lint-baseline.xml
index 5a03523..58635ed 100644
--- a/wear/wear-watchface/lint-baseline.xml
+++ b/wear/wear-watchface/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanTargetApiAnnotation"
@@ -23,4 +23,66 @@
column="1"/>
</issue>
+ <issue
+ id="ExportedService"
+ message="Exported service does not require permission"
+ errorLine1=" <service"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="DrawAllocation"
+ message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
+ errorLine1=" RenderParameters("
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/wear/watchface/ui/ComplicationConfigFragment.kt"
+ line="191"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="Wakelock"
+ message="Found a wakelock `acquire()` but no `release()` calls anywhere"
+ errorLine1=" ambientUpdateWakelock.acquire()"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/watchface/WatchFaceService.kt"
+ line="324"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" ambientUpdateWakelock.acquire()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/watchface/WatchFaceService.kt"
+ line="324"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" ambientUpdateWakelock.acquire()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/watchface/WatchFaceService.kt"
+ line="324"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: ic_elements_settings_styles.png (found in drawable-hdpi, drawable-mdpi, drawable-xhdpi)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
</issues>
diff --git a/wear/wear-watchface/samples/lint-baseline.xml b/wear/wear-watchface/samples/lint-baseline.xml
new file mode 100644
index 0000000..66b94f6
--- /dev/null
+++ b/wear/wear-watchface/samples/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`Gravity.END`" instead of "`Gravity.RIGHT`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" ).setWear2StatusBarGravity(Gravity.RIGHT or Gravity.TOP).build()"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/java/androidx/wear/watchface/samples/ExampleOpenGLWatchFaceService.kt"
+ line="136"
+ column="44"/>
+ </issue>
+
+</issues>
diff --git a/wear/wear/lint-baseline.xml b/wear/wear/lint-baseline.xml
index fbf3e5b..e56083a 100644
--- a/wear/wear/lint-baseline.xml
+++ b/wear/wear/lint-baseline.xml
@@ -1,5 +1,188 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="SwitchIntDef"
+ message="Switch statement on an `int` with known associated constant missing case `View.TEXT_ALIGNMENT_CENTER`, `View.TEXT_ALIGNMENT_GRAVITY`, `View.TEXT_ALIGNMENT_INHERIT`"
+ errorLine1=" switch (getTextAlignment()) {"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/widget/WearCurvedTextView.java"
+ line="306"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (835 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" android:pathData="M 99.625,-194.5 c 0.0,0.0 -182.125,0.0 -194.25,0.0 c -12.125,0.0 -11.875,11.0 -11.875,11.0 c 0.0,0.0 0.00002,151.259307861 0.00002,151.259307861 c 0.0,0.0 17.625,-0.207061767578 17.625,-0.207061767578 c 0.0,0.0 -0.00002,-108.614746094 -0.00002,-111.239746094 c 0.0,-2.625 1.9375,-2.375 1.9375,-2.375 c 0.0,0.0 175.4375,0.0 177.8125,0.0 c 2.375,0.0 2.125,2.9375 2.125,2.9375 c 0.0,0.0 0.0,285.8125 0.0,288.125 c 0.0,2.3125 -2.0,2.0 -2.0,2.0 c 0.0,0.0 -174.875,0.0 -177.6875,0.0 c -2.8125,0.0 -2.3125,-1.875 -2.3125,-1.875 c 0.0,0.0 0.00005,-86.4319152832 0.00005,-86.4319152832 c 0.0,0.0 -17.25,0.0 -17.25,0.0 c 0.0,0.0 -0.00005,121.306915283 -0.00005,132.306915283 c 0.0,11.0 9.25,10.75 9.25,10.75 c 0.0,0.0 184.25,0.0 195.5,0.0 c 11.25,0.0 10.5,-12.25 10.5,-12.25 c 0.0,0.0 0.125,-364.75 0.125,-374.5 c 0.0,-9.75 -9.5,-9.5 -9.5,-9.5 Z""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/open_on_phone.xml"
+ line="19"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="@dimen/ws_nav_drawer_two_item_row_start_space_weight""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_2_item.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="@dimen/ws_nav_drawer_three_item_row_start_space_weight""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_3_item.xml"
+ line="38"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="0.5""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_4_item.xml"
+ line="38"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="0.5""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_5_item.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="@dimen/ws_nav_drawer_two_item_row_start_space_weight""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_5_item.xml"
+ line="45"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="0.5""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_6_item.xml"
+ line="40"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="@dimen/ws_nav_drawer_three_item_row_start_space_weight""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_6_item.xml"
+ line="46"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="0.33""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_7_item.xml"
+ line="39"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="NestedWeights"
+ message="Nested weights are bad for performance"
+ errorLine1=" android:layout_weight="@dimen/ws_nav_drawer_two_item_row_start_space_weight""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_single_page_nav_drawer_7_item.xml"
+ line="45"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#cc000000` with a theme that also paints a background (inferred theme is `@android:style/Theme.Holo`)"
+ errorLine1=" android:background="#cc000000">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/ws_overlay_confirmation.xml"
+ line="9"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: ws_full_sad.png (found in drawable-hdpi, drawable-xhdpi)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="`onTouch` should call `View#performClick` when a click is detected"
+ errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
+ errorLine2=" ~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/widget/ConfirmationOverlay.java"
+ line="302"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `SwipeDismissLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/widget/SwipeDismissLayout.java"
+ line="307"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `WearableDrawerLayout` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent ev) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java"
+ line="516"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="ClickableViewAccessibility"
+ message="Custom view `WearableRecyclerView` overrides `onTouchEvent` but not `performClick`"
+ errorLine1=" public boolean onTouchEvent(MotionEvent event) {"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/wear/widget/WearableRecyclerView.java"
+ line="144"
+ column="20"/>
+ </issue>
<issue
id="KotlinPropertyAccess"
diff --git a/webkit/integration-tests/testapp/lint-baseline.xml b/webkit/integration-tests/testapp/lint-baseline.xml
index 82eeb33..dfeca0b 100644
--- a/webkit/integration-tests/testapp/lint-baseline.xml
+++ b/webkit/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="ScopedStorage"
+ message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10, unless you use `requestLegacyExternalStorage`"
+ errorLine1=" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="23"
+ column="36"/>
+ </issue>
<issue
id="BanSynchronizedMethods"
@@ -156,35 +167,226 @@
</issue>
<issue
- id="UnusedResources"
- message="The resource `R.raw.some_text` appears to be unused">
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="20dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
- file="src/main/res/raw/some_text.html"/>
+ file="src/main/res/layout/fragment_renderer_terminated.xml"
+ line="27"
+ column="9"/>
</issue>
<issue
- id="UnusedResources"
- message="The resource `R.string.clear_allowlist_button_text` appears to be unused"
- errorLine1=" <string name="clear_allowlist_button_text">Clear the allowlist</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ id="SpUsage"
+ message="Should use "`sp`" instead of "`dp`" for text sizes"
+ errorLine1=" android:textSize="20dp""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
- file="src/main/res/values/strings.xml"
- line="50"
+ file="src/main/res/layout/fragment_renderer_unresponsive.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_centerVertical`"
+ errorLine1=" android:layout_centerVertical="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_centerVertical`"
+ errorLine1=" android:layout_centerVertical="true""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="46"
column="13"/>
</issue>
<issue
- id="UnusedResources"
- message="The resource `R.string.set_allowlist_button_text` appears to be unused"
- errorLine1=" <string name="set_allowlist_button_text">Allowlist the test domain</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ id="ObsoleteLayoutParam"
+ message="Invalid layout param in a `LinearLayout`: `layout_alignBottom`"
+ errorLine1=" android:layout_alignBottom="@+id/button1""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
- file="src/main/res/values/strings.xml"
- line="51"
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="52"
column="13"/>
</issue>
<issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous com.example.androidx.webkit.AssetLoaderInternalStorageActivity.WriteFileTask)"
+ errorLine1=" new WriteFileTask(mDemoFile, DEMO_HTML_CONTENT) {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java"
+ line="96"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="DisableBaselineAlignment"
+ message="Set `android:baselineAligned="false"` on this element for better performance"
+ errorLine1="<LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_per_web_view_enable.xml"
+ line="18"
+ column="2"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_allowlist.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_custom_interstitial.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#FF0` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="#FF0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppDayNightTheme`)"
+ errorLine1=" android:background="@color/colorBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_giant_interstitial.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_invisible.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_loud_interstitial.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_medium_interstitial.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_per_web_view_enable.xml"
+ line="25"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/interstitialBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/interstitialBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_popup_interstitial.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_small_interstitial.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorBackground">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_unattached.xml"
+ line="26"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `#FF0` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="#FF0""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="20"
+ column="5"/>
+ </issue>
+
+ <issue
id="SyntheticAccessor"
message="Access to `private` method `allowlistSafeBrowsingTestSite` of class `AllowlistActivity` requires synthetic accessor"
errorLine1=" allowlistSafeBrowsingTestSite(null);"
@@ -691,6 +893,534 @@
</issue>
<issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_asset_loader.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_asset_loader_list.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="25"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <WebView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="25"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <WebView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="35"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" <WebView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="45"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_js_java_interaction.xml"
+ line="23"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_safe_browsing.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="24"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:tools="http://schemas.android.com/tools""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="RedundantNamespace"
+ message="This namespace declaration is redundant"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener_malicious_website.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_asset_loader.xml"
+ line="27"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="25"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="31"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <WebView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="25"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <WebView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="35"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" <WebView xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_force_dark.xml"
+ line="45"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="24"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="30"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:tools; already declared on the root element"
+ errorLine1=" xmlns:tools="http://schemas.android.com/tools""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="37"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="UnusedNamespace"
+ message="Unused namespace declaration xmlns:android; already declared on the root element"
+ errorLine1=" xmlns:android="http://schemas.android.com/apk/res/android""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener_malicious_website.xml"
+ line="22"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="25"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_popup_interstitial.xml"
+ line="57"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_popup_interstitial.xml"
+ line="66"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_renderer_termination.xml"
+ line="77"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_renderer_termination.xml"
+ line="87"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="42"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="48"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_proxy_override.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText"
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_tracing_controller.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStatus.setText("API not available");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/webkit/RendererTerminationActivity.java"
+ line="75"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStatus.setText("terminated");"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/webkit/RendererTerminationActivity.java"
+ line="222"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStatus.setText("started");"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/webkit/RendererTerminationActivity.java"
+ line="233"
+ column="25"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStatus.setText("unresponsive");"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/webkit/RendererTerminationActivity.java"
+ line="242"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mStatus.setText("responsive");"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/java/com/example/androidx/webkit/RendererTerminationActivity.java"
+ line="252"
+ column="37"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Reply via ReplyProxy", should use `@string` resource"
+ errorLine1=" android:text="Reply via ReplyProxy" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_document_start_javascript.xml"
+ line="43"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type an URL here", should use `@string` resource"
+ errorLine1=" android:hint="Type an URL here"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_proxy_override.xml"
+ line="43"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Renderer status:", should use `@string` resource"
+ errorLine1=" android:text="Renderer status:""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_renderer_termination.xml"
+ line="37"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Type an URL here", should use `@string` resource"
+ errorLine1=" android:hint="Type an URL here""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_tracing_controller.xml"
+ line="42"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Reply via ReplyProxy", should use `@string` resource"
+ errorLine1=" android:text="Reply via ReplyProxy" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="47"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Reply via Port", should use `@string` resource"
+ errorLine1=" android:text="Reply via Port" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_web_message_listener.xml"
+ line="53"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="left""
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/activity_renderer_termination.xml"
+ line="31"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="RtlHardcoded"
+ message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
+ errorLine1=" android:gravity="left">"
+ errorLine2=" ~~~~">
+ <location
+ file="src/main/res/layout/activity_renderer_termination.xml"
+ line="75"
+ column="26"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
diff --git a/webkit/webkit/lint-baseline.xml b/webkit/webkit/lint-baseline.xml
index 876cc27..ab4d271 100644
--- a/webkit/webkit/lint-baseline.xml
+++ b/webkit/webkit/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="KotlinPropertyAccess"
diff --git a/window/window-samples/lint-baseline.xml b/window/window-samples/lint-baseline.xml
new file mode 100644
index 0000000..4475e27
--- /dev/null
+++ b/window/window-samples/lint-baseline.xml
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/rootLayout, defined or included multiple times in layout/activity_split_layout.xml: [layout/activity_split_layout.xml defines @+id/rootLayout, layout/activity_split_layout.xml => layout/split_layout_content.xml defines @+id/rootLayout, layout/activity_split_layout.xml => layout/split_layout_control.xml defines @+id/rootLayout]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/activity_split_layout.xml"
+ line="34"
+ column="9"/>
+ <location
+ file="src/main/res/layout/activity_split_layout.xml"
+ line="22"
+ column="5"/>
+ <location
+ file="src/main/res/layout/split_layout_content.xml"
+ line="22"
+ column="5"/>
+ <location
+ file="src/main/res/layout/split_layout_control.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="DuplicateIncludedIds"
+ message="Duplicate id @+id/rootLayout, defined or included multiple times in layout/activity_split_layout.xml: [layout/activity_split_layout.xml defines @+id/rootLayout, layout/activity_split_layout.xml => layout/split_layout_content.xml defines @+id/rootLayout, layout/activity_split_layout.xml => layout/split_layout_control.xml defines @+id/rootLayout]"
+ errorLine1=" <include"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/layout/activity_split_layout.xml"
+ line="37"
+ column="9"/>
+ <location
+ file="src/main/res/layout/activity_split_layout.xml"
+ line="22"
+ column="5"/>
+ <location
+ file="src/main/res/layout/split_layout_content.xml"
+ line="22"
+ column="5"/>
+ <location
+ file="src/main/res/layout/split_layout_control.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="VectorRaster"
+ message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
+ errorLine1=" android:width="320dp" xmlns:android="http://schemas.android.com/apk/res/android">"
+ errorLine2=" ~~~~~">
+ <location
+ file="src/main/res/drawable/ic_android_green_320dp.xml"
+ line="19"
+ column="20"/>
+ </issue>
+
+ <issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="UseCompoundDrawables"
+ message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_display_features.xml"
+ line="47"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="UseCompoundDrawables"
+ message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_display_features.xml"
+ line="66"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="UseCompoundDrawables"
+ message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
+ errorLine1=" <LinearLayout"
+ errorLine2=" ~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_display_features.xml"
+ line="85"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@android:color/holo_orange_dark` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@android:color/holo_orange_dark">"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/presentation_second_display.xml"
+ line="22"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorSplitContentBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorSplitContentBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/split_layout_content.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="Overdraw"
+ message="Possible overdraw: Root element paints background `@color/colorSplitControlsBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
+ errorLine1=" android:background="@color/colorSplitControlsBackground""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/split_layout_control.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="21"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_display_features.xml"
+ line="52"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_display_features.xml"
+ line="71"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_display_features.xml"
+ line="90"
+ column="14"/>
+ </issue>
+
+</issues>
diff --git a/window/window/lint-baseline.xml b/window/window/lint-baseline.xml
index 44e9dec..5fadc3b 100644
--- a/window/window/lint-baseline.xml
+++ b/window/window/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="PrivateApi"
+ message="Accessing internal APIs via reflection is not supported and may not work on all devices or in the future"
+ errorLine1=" Class<?> displayInfoClass = Class.forName("android.view.DisplayInfo");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/window/WindowBoundsHelper.java"
+ line="351"
+ column="41"/>
+ </issue>
<issue
id="BanUncheckedReflection"
diff --git a/work/integration-tests/testapp/lint-baseline.xml b/work/integration-tests/testapp/lint-baseline.xml
index 7cdfb0a..a43213e 100644
--- a/work/integration-tests/testapp/lint-baseline.xml
+++ b/work/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="BadPeriodicWorkRequestEnqueue"
+ message="Use `enqueueUniquePeriodicWork()` instead of `enqueue()`"
+ errorLine1=" /**"
+ errorLine2=" ^">
+ <location
+ file="../../workmanager/src/main/java/androidx/work/WorkManager.java"
+ line="213"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="BadPeriodicWorkRequestEnqueue"
+ message="Use `enqueueUniquePeriodicWork()` instead of `enqueue()`"
+ errorLine1=" /**"
+ errorLine2=" ^">
+ <location
+ file="../../workmanager/src/main/java/androidx/work/WorkManager.java"
+ line="213"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="BadPeriodicWorkRequestEnqueue"
+ message="Use `enqueueUniquePeriodicWork()` instead of `enqueue()`"
+ errorLine1=" /**"
+ errorLine2=" ^">
+ <location
+ file="../../workmanager/src/main/java/androidx/work/WorkManager.java"
+ line="213"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="ManifestOrder"
+ message="`<uses-permission>` tag appears after `<application>` tag"
+ errorLine1=" <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="53"
+ column="6"/>
+ </issue>
<issue
id="UnsafeNewApiCall"
@@ -145,6 +189,28 @@
</issue>
<issue
+ id="AllowBackup"
+ message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
+ errorLine1=" mBitmapLoadTask = new android.os.AsyncTask<Image, Void, Bitmap>() {"
+ errorLine2=" ^">
+ <location
+ file="src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java"
+ line="75"
+ column="35"/>
+ </issue>
+
+ <issue
id="UnusedResources"
message="The resource `R.integer.channel_importance` appears to be unused"
errorLine1=" <integer name="channel_importance">3</integer>"
@@ -277,6 +343,226 @@
</issue>
<issue
+ id="MissingApplicationIcon"
+ message="Should explicitly set `android:icon`, there is no default"
+ errorLine1=" <application"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="20"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/schedule_delay""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="96"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="ButtonStyle"
+ message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)"
+ errorLine1=" <Button android:id="@+id/coroutine_sleep""
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="104"
+ column="14"/>
+ </issue>
+
+ <issue
+ id="Autofill"
+ message="Missing `autofillHints` attribute"
+ errorLine1=" <EditText android:id="@+id/delay_in_ms""
+ errorLine2=" ~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="78"
+ column="10"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <com.google.android.material.floatingactionbutton.FloatingActionButton"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_image_processing.xml"
+ line="34"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <com.google.android.material.floatingactionbutton.FloatingActionButton"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_image_processing.xml"
+ line="45"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="ContentDescription"
+ message="Missing `contentDescription` attribute on image"
+ errorLine1=" <ImageView"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/layout/item_processed_image.xml"
+ line="29"
+ column="6"/>
+ </issue>
+
+ <issue
+ id="SetTextI18n"
+ message="String literal in `setText` can not be translated. Use Android resources instead."
+ errorLine1=" mTextView.setText("nothing to show");"
+ errorLine2=" ~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/integration/testapp/RetryActivity.java"
+ line="79"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Infinite Work + Charging Constraint", should use `@string` resource"
+ errorLine1=" android:text="Infinite Work + Charging Constraint"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="36"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Infinite Work + Network Constraint", should use `@string` resource"
+ errorLine1=" android:text="Infinite Work + Network Constraint"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="44"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Enqueue Battery Not Low Work", should use `@string` resource"
+ errorLine1=" android:text="Enqueue Battery Not Low Work"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="52"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Sherlock Holmes", should use `@string` resource"
+ errorLine1=" android:text="Sherlock Holmes"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="60"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Image Processing", should use `@string` resource"
+ errorLine1=" android:text="Image Processing"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="68"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Observe Image URI", should use `@string` resource"
+ errorLine1=" android:text="Observe Image URI"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="76"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Delay in ms", should use `@string` resource"
+ errorLine1=" android:hint="Delay in ms""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="85"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "0", should use `@string` resource"
+ errorLine1=" android:text="0"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="88"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Schedule w/ Delay", should use `@string` resource"
+ errorLine1=" android:text="Schedule w/ Delay"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="102"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Coroutine Sleep", should use `@string` resource"
+ errorLine1=" android:text="Coroutine Sleep"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="110"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Coroutine Cancel", should use `@string` resource"
+ errorLine1=" android:text="Coroutine Cancel"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/activity_main.xml"
+ line="120"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardcodedText"
+ message="Hardcoded string "Click", should use `@string` resource"
+ errorLine1=" android:text="Click""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/layout/retry_activity.xml"
+ line="24"
+ column="13"/>
+ </issue>
+
+ <issue
id="UnknownNullness"
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
errorLine1=" protected void onCreate(final Bundle savedInstanceState) {"
diff --git a/work/workmanager-gcm/lint-baseline.xml b/work/workmanager-gcm/lint-baseline.xml
new file mode 100644
index 0000000..8ef0325
--- /dev/null
+++ b/work/workmanager-gcm/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" wakeLock.acquire();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/background/gcm/WorkManagerGcmDispatcher.java"
+ line="112"
+ column="13"/>
+ </issue>
+
+</issues>
diff --git a/work/workmanager-lint/lint-baseline.xml b/work/workmanager-lint/lint-baseline.xml
new file mode 100644
index 0000000..4dc8e1c
--- /dev/null
+++ b/work/workmanager-lint/lint-baseline.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" version="4.2.0-alpha15">
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = DESCRIPTION,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/RemoveWorkManagerInitializerDetector.kt"
+ line="54"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""WorkManagerInitializer" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`WorkManagerInitializer\`"
+ errorLine1=" message = DESCRIPTION"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/RemoveWorkManagerInitializerDetector.kt"
+ line="123"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = DESCRIPTION,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/RxWorkerSetProgressDetector.kt"
+ line="43"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""foregroundServiceType" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`foregroundServiceType\`"
+ errorLine1=" message = "Missing $name foregroundServiceType in " +"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/SpecifyForegroundServiceTypeIssueDetector.kt"
+ line="102"
+ column="58"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="Single sentence error messages should not end with a period"
+ errorLine1=" message = "Specify a valid range of job id's for `WorkManager` to use.""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/SpecifyJobSchedulerIdRangeIssueDetector.kt"
+ line="101"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message="The issue summary should be shorter; typically just a 3-6 words; it's used as a topic header in HTML reports and in the IDE inspections window"
+ errorLine1=" briefDescription = DESCRIPTION,"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/WorkerHasPublicModifierDetector.kt"
+ line="44"
+ column="32"/>
+ </issue>
+
+ <issue
+ id="LintImplTextFormat"
+ message=""ListenableWorker" looks like a code reference; surround with backtics in string to display as symbol, e.g. \`ListenableWorker\`"
+ errorLine1=" When you define a ListenableWorker which is constructed using the "
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/WorkerHasPublicModifierDetector.kt"
+ line="46"
+ column="35"/>
+ </issue>
+
+ <issue
+ id="LintImplUseExistingConstants"
+ message="Use `Scope.JAVA_FILE_SCOPE` instead"
+ errorLine1=" EnumSet.of(Scope.JAVA_FILE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/IdleBatteryChargingConstraintsDetector.kt"
+ line="60"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplUseExistingConstants"
+ message="Use `Scope.JAVA_FILE_SCOPE` instead"
+ errorLine1=" EnumSet.of(Scope.JAVA_FILE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/InvalidPeriodicWorkRequestIntervalDetector.kt"
+ line="52"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplUseExistingConstants"
+ message="Use `Scope.JAVA_FILE_SCOPE` instead"
+ errorLine1=" EnumSet.of(Scope.JAVA_FILE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/RxWorkerSetProgressDetector.kt"
+ line="52"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplUseExistingConstants"
+ message="Use `Scope.JAVA_FILE_SCOPE` instead"
+ errorLine1=" EnumSet.of(Scope.JAVA_FILE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/SpecifyJobSchedulerIdRangeIssueDetector.kt"
+ line="54"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="LintImplUseExistingConstants"
+ message="Use `Scope.JAVA_FILE_SCOPE` instead"
+ errorLine1=" EnumSet.of(Scope.JAVA_FILE)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/lint/WorkerHasPublicModifierDetector.kt"
+ line="54"
+ column="17"/>
+ </issue>
+
+</issues>
diff --git a/work/workmanager-testing/lint-baseline.xml b/work/workmanager-testing/lint-baseline.xml
index e76ab76..7092053 100644
--- a/work/workmanager-testing/lint-baseline.xml
+++ b/work/workmanager-testing/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="KotlinPropertyAccess"
diff --git a/work/workmanager/lint-baseline.xml b/work/workmanager/lint-baseline.xml
index 7d8fdfc..1cd0eeb 100644
--- a/work/workmanager/lint-baseline.xml
+++ b/work/workmanager/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha06" client="gradle" variant="debug" version="4.2.0-alpha06">
+<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
<issue
id="BanSynchronizedMethods"
@@ -79,6 +79,17 @@
</issue>
<issue
+ id="BatteryLife"
+ message="Declaring a broadcastreceiver for `android.net.conn.CONNECTIVITY_CHANGE` is deprecated for apps targeting N and higher. In general, apps should not rely on this broadcast and instead use `WorkManager`."
+ errorLine1=" <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/AndroidManifest.xml"
+ line="99"
+ column="39"/>
+ </issue>
+
+ <issue
id="UnsafeNewApiCall"
message="This call is to a method from API 19, the call containing class androidx.work.impl.background.systemalarm.Alarms is not annotated with @RequiresApi(x) where x is at least 19. Either annotate the containing class with at least @RequiresApi(19) or move the call to a static method in a wrapper class annotated with at least @RequiresApi(19)."
errorLine1=" alarmManager.setExact(RTC_WAKEUP, triggerAtMillis, pendingIntent);"
@@ -420,6 +431,83 @@
</issue>
<issue
+ id="UnsafeProtectedBroadcastReceiver"
+ message="This broadcast receiver declares an intent-filter for a protected broadcast action string, which can only be sent by the system, not third-party applications. However, the receiver's onReceive method does not appear to call getAction to ensure that the received Intent's action string matches the expected value, potentially making it possible for another actor to send a spoofed intent with no action string or a different action string and cause undesired behavior. In this case, it is possible that the onReceive method passed the received Intent to another method that checked the action string. If so, this finding can safely be ignored."
+ errorLine1=" public void onReceive(Context context, Intent intent) {"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/background/systemalarm/RescheduleReceiver.java"
+ line="35"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" mWakeLock.acquire();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/background/systemalarm/DelayMetCommandHandler.java"
+ line="191"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" mForegroundLock.acquire();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/Processor.java"
+ line="155"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" processCommandLock.acquire();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcher.java"
+ line="251"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="WakelockTimeout"
+ message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
+ errorLine1=" wakeLock.acquire();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcher.java"
+ line="276"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `WorkManagerImpl` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static WorkManagerImpl sDelegatedInstance = null;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/WorkManagerImpl.java"
+ line="100"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="StaticFieldLeak"
+ message="Do not place Android context classes in static fields (static reference to `WorkManagerImpl` which has field `mContext` pointing to `Context`); this is a memory leak"
+ errorLine1=" private static WorkManagerImpl sDefaultInstance = null;"
+ errorLine2=" ~~~~~~">
+ <location
+ file="src/main/java/androidx/work/impl/WorkManagerImpl.java"
+ line="101"
+ column="13"/>
+ </issue>
+
+ <issue
id="KotlinPropertyAccess"
message="This method should be called `getState` such that `state` can be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public abstract T getInitialState();"