| <?xml version="1.0" encoding="UTF-8"?> |
| <issues format="6" by="lint 8.6.0-beta01" type="baseline" client="gradle" dependencies="false" name="AGP (8.6.0-beta01)" variant="all" version="8.6.0-beta01"> |
| |
| <issue |
| id="MissingPermission" |
| message="Missing permissions required by LocationManager.removeUpdates: 1..22;android.permission.ACCESS_COARSE_LOCATION or 1..22;android.permission.ACCESS_FINE_LOCATION" |
| errorLine1=" locationManager.removeUpdates(mLocationListener);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/AppManager.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 24 (current min is 21): `android.content.res.Configuration#getLocales`" |
| errorLine1=" assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0)).isEqualTo(" |
| errorLine2=" ~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/CarContextTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 24 (current min is 21): `android.os.LocaleList#get`" |
| errorLine1=" assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0)).isEqualTo(" |
| errorLine2=" ~~~"> |
| <location |
| file="src/test/java/androidx/car/app/CarContextTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `android.app.Notification#getChannelId`" |
| errorLine1=" assertThat(changed.getChannelId()).isEqualTo(EXTENDED_CHANNEL);" |
| errorLine2=" ~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/notification/CarNotificationManagerTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `android.app.Notification#getChannelId`" |
| errorLine1=" assertThat(output.getChannelId()).isEqualTo(DEFAULT_CHANNEL);" |
| errorLine2=" ~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/notification/CarNotificationManagerTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `android.app.Notification#getChannelId`" |
| errorLine1=" assertThat(output.getChannelId()).isEqualTo(DEFAULT_CHANNEL);" |
| errorLine2=" ~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/notification/CarNotificationManagerTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.ZonedDateTime#parse`" |
| errorLine1=" ZonedDateTime zonedDateTime = ZonedDateTime.parse("2020-05-14T19:57:00-07:00[US/Pacific]");" |
| errorLine2=" ~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `create`" |
| errorLine1=" DateTimeWithZone dateTimeWithZone = DateTimeWithZone.create(zonedDateTime);" |
| errorLine2=" ~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `assertDateTimeWithZoneEquals`" |
| errorLine1=" assertDateTimeWithZoneEquals(zonedDateTime, dateTimeWithZone);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `create`" |
| errorLine1=" DateTimeWithZone.create(null);" |
| errorLine2=" ~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#getSeconds`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#ofMillis`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#getSeconds`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#ofMillis`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#getSeconds`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#ofMillis`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#getSeconds`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#ofMillis`" |
| errorLine1=" Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();" |
| errorLine2=" ~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 24, or core library desugaring (current min is 21): `java.util.Collection#stream`" |
| errorLine1=" .stream()" |
| errorLine2=" ~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 24, or core library desugaring (current min is 21): `java.util.stream.Stream#mapToLong`" |
| errorLine1=" .mapToLong(List::size)" |
| errorLine2=" ~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 24, or core library desugaring (current min is 21): `java.util.stream.LongStream#sum`" |
| errorLine1=" .sum()).isEqualTo(6);" |
| errorLine2=" ~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Class requires API level 28 (current min is 21): `android.content.pm.SigningInfo`" |
| errorLine1=" packageInfo.signingInfo = mock(SigningInfo.class);" |
| errorLine2=" ~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Field requires API level 28 (current min is 21): `android.content.pm.PackageInfo#signingInfo`" |
| errorLine1=" packageInfo.signingInfo = mock(SigningInfo.class);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 28 (current min is 21): `android.content.pm.SigningInfo#getSigningCertificateHistory`" |
| errorLine1=" when(packageInfo.signingInfo.getSigningCertificateHistory()).thenReturn(signatures);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Field requires API level 28 (current min is 21): `android.content.pm.PackageInfo#signingInfo`" |
| errorLine1=" when(packageInfo.signingInfo.getSigningCertificateHistory()).thenReturn(signatures);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.ZonedDateTime#parse`" |
| errorLine1=" ZonedDateTime arrivalTime = ZonedDateTime.parse("2020-05-14T19:57:00-07:00[US/Pacific]");" |
| errorLine2=" ~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#ofHours`" |
| errorLine1=" Duration remainingTime = Duration.ofHours(10);" |
| errorLine2=" ~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `Builder`" |
| errorLine1=" new TravelEstimate.Builder(mRemainingDistance, arrivalTime).setRemainingTime(" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `setRemainingTime`" |
| errorLine1=" new TravelEstimate.Builder(mRemainingDistance, arrivalTime).setRemainingTime(" |
| errorLine2=" ~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#getSeconds`" |
| errorLine1=" assertThat(travelEstimate.getRemainingTimeSeconds()).isEqualTo(remainingTime.getSeconds());" |
| errorLine2=" ~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `assertDateTimeWithZoneEquals`" |
| errorLine1=" assertDateTimeWithZoneEquals(arrivalTime, travelEstimate.getArrivalTimeAtDestination());" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.ZonedDateTime#parse`" |
| errorLine1=" ZonedDateTime arrivalTime = ZonedDateTime.parse("2020-05-14T19:57:00-07:00[US/Pacific]");" |
| errorLine2=" ~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `Builder`" |
| errorLine1=" new TravelEstimate.Builder(" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `setRemainingTime`" |
| errorLine1=" remainingDistance, arrivalTime).setRemainingTime(" |
| errorLine2=" ~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26, or core library desugaring (current min is 21): `java.time.Duration#ofSeconds`" |
| errorLine1=" Duration.ofSeconds(REMAINING_TIME_UNKNOWN)).build();" |
| errorLine2=" ~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="NewApi" |
| message="Call requires API level 26 (current min is 21): `assertDateTimeWithZoneEquals`" |
| errorLine1=" assertDateTimeWithZoneEquals(arrivalTime, travelEstimate.getArrivalTimeAtDestination());" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"/> |
| </issue> |
| |
| <issue |
| id="WrongConstant" |
| message="Must be one of: CarAppApiLevels.UNKNOWN, CarAppApiLevels.LEVEL_1, CarAppApiLevels.LEVEL_2, CarAppApiLevels.LEVEL_3, CarAppApiLevels.LEVEL_4, CarAppApiLevels.LEVEL_5, CarAppApiLevels.LEVEL_6, CarAppApiLevels.LEVEL_7, CarAppApiLevels.LEVEL_8" |
| errorLine1=" mCarAppApiLevel = handshakeInfo.getHostCarAppApiLevel();" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/CarContext.java"/> |
| </issue> |
| |
| <issue |
| id="BanUncheckedReflection" |
| message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API." |
| errorLine1=" enumName = (String) nameMethod.invoke(obj);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/serialization/Bundler.java"/> |
| </issue> |
| |
| <issue |
| id="BanUncheckedReflection" |
| message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API." |
| errorLine1=" Object obj = converter.invoke(null, binder);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/serialization/Bundler.java"/> |
| </issue> |
| |
| <issue |
| id="BanUncheckedReflection" |
| message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API." |
| errorLine1=" return nameMethod.invoke(null, enumName);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/serialization/Bundler.java"/> |
| </issue> |
| |
| <issue |
| id="UnspecifiedRegisterReceiverFlag" |
| message="`mBroadcastReceiver` is missing `RECEIVER_EXPORTED` or `RECEIVER_NOT_EXPORTED` flag for unprotected broadcasts registered for androidx.car.app.connection.action.CAR_CONNECTION_UPDATED" |
| errorLine1=" mContext.registerReceiver(mBroadcastReceiver, filter);" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/connection/CarConnectionTypeLiveData.java"/> |
| </issue> |
| |
| <issue |
| id="UnsafeOptInUsageError" |
| message="This declaration is opt-in and its usage should be marked with `@androidx.car.app.annotations.ExperimentalCarApi` or `@OptIn(markerClass = androidx.car.app.annotations.ExperimentalCarApi.class)`" |
| errorLine1=" private final List<CarZone> mCarZones;" |
| errorLine2=" ~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/hardware/common/CarValue.java"/> |
| </issue> |
| |
| <issue |
| id="UnsafeOptInUsageError" |
| message="This declaration is opt-in and its usage should be marked with `@androidx.car.app.annotations.ExperimentalCarApi` or `@OptIn(markerClass = androidx.car.app.annotations.ExperimentalCarApi.class)`" |
| errorLine1=" private final Badge mBadge;" |
| errorLine2=" ~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/model/GridItem.java"/> |
| </issue> |
| |
| <issue |
| id="UnsafeOptInUsageError" |
| message="This declaration is opt-in and its usage should be marked with `@androidx.car.app.annotations.ExperimentalCarApi` or `@OptIn(markerClass = androidx.car.app.annotations.ExperimentalCarApi.class)`" |
| errorLine1=" Badge mBadge;" |
| errorLine2=" ~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/model/GridItem.java"/> |
| </issue> |
| |
| <issue |
| id="UnsafeOptInUsageError" |
| message="This declaration is opt-in and its usage should be marked with `@androidx.car.app.annotations.ExperimentalCarApi` or `@OptIn(markerClass = androidx.car.app.annotations.ExperimentalCarApi.class)`" |
| errorLine1=" } else if (rowObj instanceof ConversationItem) {" |
| errorLine2=" ~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/model/constraints/RowListConstraints.java"/> |
| </issue> |
| |
| <issue |
| id="SupportAnnotationUsage" |
| message="This annotation does not apply for type java.util.List<androidx.car.app.hardware.climate.CarClimateFeature>; expected int" |
| errorLine1=" @ClimateProfileRequest.ClimateProfileFeature" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/hardware/climate/RegisterClimateStateRequest.java"/> |
| </issue> |
| |
| <issue |
| id="SupportAnnotationUsage" |
| message="This annotation does not apply for type java.util.List<androidx.car.app.hardware.climate.CarClimateFeature>; expected int" |
| errorLine1=" @ClimateProfileRequest.ClimateProfileFeature" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/hardware/climate/RegisterClimateStateRequest.java"/> |
| </issue> |
| |
| <issue |
| id="SupportAnnotationUsage" |
| message="This annotation does not apply for type java.util.List<androidx.car.app.hardware.climate.CarClimateFeature>; expected int" |
| errorLine1=" @ClimateProfileRequest.ClimateProfileFeature" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/hardware/climate/RegisterClimateStateRequest.java"/> |
| </issue> |
| |
| <issue |
| id="SupportAnnotationUsage" |
| message="This annotation does not apply for type androidx.car.app.model.Row.Builder; expected int or long" |
| errorLine1=" @IntRange(from = 0)" |
| errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
| <location |
| file="src/main/java/androidx/car/app/model/Row.java"/> |
| </issue> |
| |
| </issues> |