Merge Android 14 QPR3 to AOSP main
Bug: 346855327
Merged-In: I2f337eff0a553ab8dd9e69e8970248095a29a8e0
Change-Id: I18cb2b0740701b37c0f0f107f6ad8f7b2c469412
diff --git a/Android.bp b/Android.bp
index 463c5e2..50ed06f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -34,11 +34,12 @@
version_name = "1.24-asop"
version_code = "417000452"
-android_app {
- name: "LiveTv",
-
+java_defaults {
+ name: "LiveTv_defaults",
srcs: ["src/**/*.java"],
+ manifest: "AndroidManifest_common.xml",
+
// TODO(b/122608868) turn proguard back on
optimize: {
enabled: false,
@@ -113,6 +114,21 @@
"--extra-packages",
"com.android.tv.common",
],
+}
+
+android_app {
+ name: "LiveTv",
+ defaults: ["LiveTv_defaults"],
+ additional_manifests: ["AndroidManifest_all_inputs.xml"],
+ lint: {
+ baseline_filename: "lint-baseline.xml",
+ },
+}
+
+android_app {
+ name: "LiveTvNonPassthrough",
+ defaults: ["LiveTv_defaults"],
+ additional_manifests: ["AndroidManifest_non_passthrough.xml"],
lint: {
baseline_filename: "lint-baseline.xml",
},
diff --git a/AndroidManifest_all_inputs.xml b/AndroidManifest_all_inputs.xml
new file mode 100644
index 0000000..85f5b88
--- /dev/null
+++ b/AndroidManifest_all_inputs.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2015 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+-->
+<!-- This manifest is for LiveTv -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.android.tv">
+
+ <application android:name="com.android.tv.app.LiveTvApplication"
+ android:allowBackup="true"
+ android:appComponentFactory="android.support.v4.app.CoreComponentFactory"
+ android:banner="@drawable/live_tv_banner"
+ android:icon="@drawable/ic_tv_app"
+ android:label="@string/app_name"
+ android:supportsRtl="true"
+ android:theme="@style/Theme.TV"
+ tools:replace="android:appComponentFactory">
+
+ <!-- providers are listed here to keep them separate from the internal versions -->
+ <provider android:name="com.android.tv.search.LocalSearchProvider"
+ android:authorities="com.android.tv.search"
+ android:enabled="true"
+ android:exported="true">
+ <meta-data android:name="SupportedSwitchActionType"
+ android:value="CHANNEL|TVINPUT"/>
+ </provider>
+
+ <activity android:name="com.android.tv.MainActivity"
+ android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation"
+ android:launchMode="singleTask"
+ android:resizeableActivity="true"
+ android:screenOrientation="landscape"
+ android:supportsPictureInPicture="true"
+ android:theme="@style/Theme.TV.MainActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data android:mimeType="vnd.android.cursor.item/program"/>
+ <data android:mimeType="vnd.android.cursor.dir/program"/>
+ <data android:mimeType="vnd.android.cursor.item/channel"/>
+ <data android:mimeType="vnd.android.cursor.dir/channel"/>
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.media.tv.action.SETUP_INPUTS"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.SEARCH"/>
+ </intent-filter>
+ <meta-data android:name="supports_leanback"
+ android:value="true"/>
+ <meta-data android:name="android.app.searchable"
+ android:resource="@xml/searchable"/>
+ </activity>
+ </application>
+
+</manifest>
diff --git a/AndroidManifest.xml b/AndroidManifest_common.xml
similarity index 85%
rename from AndroidManifest.xml
rename to AndroidManifest_common.xml
index 5d9492a..24e05d0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest_common.xml
@@ -87,14 +87,6 @@
android:theme="@style/Theme.TV"
tools:replace="android:appComponentFactory">
- <!-- providers are listed here to keep them separate from the internal versions -->
- <provider android:name="com.android.tv.search.LocalSearchProvider"
- android:authorities="com.android.tv.search"
- android:enabled="true"
- android:exported="true">
- <meta-data android:name="SupportedSwitchActionType"
- android:value="CHANNEL|TVINPUT"/>
- </provider>
<provider android:name="com.android.tv.common.CommonPreferenceProvider"
android:authorities="com.android.tv.common.preferences"
android:exported="false"
@@ -108,10 +100,9 @@
<action android:name="android.intent.action.GLOBAL_BUTTON"/>
</intent-filter>
- <!--
- Not directly related to GlobalKeyReceiver but needed to be able to provide our
- content rating definitions to the system service.
- -->
+ <!-- Not directly related to GlobalKeyReceiver but needed to be able to provide our
+ content rating definitions to the system service.
+ -->
<intent-filter>
<action android:name="android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS"/>
</intent-filter>
@@ -131,38 +122,6 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
- <activity android:name="com.android.tv.MainActivity"
- android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation"
- android:launchMode="singleTask"
- android:resizeableActivity="true"
- android:screenOrientation="landscape"
- android:supportsPictureInPicture="true"
- android:theme="@style/Theme.TV.MainActivity"
- android:exported="true">
- <intent-filter>
- <action android:name="android.intent.action.VIEW"/>
-
- <category android:name="android.intent.category.DEFAULT"/>
-
- <data android:mimeType="vnd.android.cursor.item/channel"/>
- <data android:mimeType="vnd.android.cursor.dir/channel"/>
- <data android:mimeType="vnd.android.cursor.item/program"/>
- <data android:mimeType="vnd.android.cursor.dir/program"/>
- </intent-filter>
- <intent-filter>
- <action android:name="android.media.tv.action.SETUP_INPUTS"/>
-
- <category android:name="android.intent.category.DEFAULT"/>
- </intent-filter>
- <intent-filter>
- <action android:name="android.intent.action.SEARCH"/>
- </intent-filter>
-
- <meta-data android:name="supports_leanback"
- android:value="true"/>
- <meta-data android:name="android.app.searchable"
- android:resource="@xml/searchable"/>
- </activity>
<activity android:name="com.android.tv.LauncherActivity"
android:exported="false"
android:configChanges="keyboard|keyboardHidden"
diff --git a/AndroidManifest_non_passthrough.xml b/AndroidManifest_non_passthrough.xml
new file mode 100644
index 0000000..c4633ed
--- /dev/null
+++ b/AndroidManifest_non_passthrough.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2015 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+-->
+<!-- This manifest is for LiveTv -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.android.tv">
+
+ <application android:name="com.android.tv.app.LiveTvApplication"
+ android:allowBackup="true"
+ android:appComponentFactory="android.support.v4.app.CoreComponentFactory"
+ android:banner="@drawable/live_tv_banner"
+ android:icon="@drawable/ic_tv_app"
+ android:label="@string/app_name"
+ android:supportsRtl="true"
+ android:theme="@style/Theme.TV"
+ tools:replace="android:appComponentFactory">
+
+ <!-- providers are listed here to keep them separate from the internal versions -->
+ <provider android:name="com.android.tv.search.LocalSearchProvider"
+ android:authorities="com.android.tv.search"
+ android:enabled="true"
+ android:exported="true">
+ <meta-data android:name="SupportedSwitchActionType"
+ android:value="CHANNEL"/>
+ </provider>
+
+ <activity android:name="com.android.tv.MainActivity"
+ android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation"
+ android:launchMode="singleTask"
+ android:resizeableActivity="true"
+ android:screenOrientation="landscape"
+ android:supportsPictureInPicture="true"
+ android:theme="@style/Theme.TV.MainActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data android:mimeType="vnd.android.cursor.item/program"
+ android:scheme="content"
+ android:host="android.media.tv"
+ android:pathPrefix="/program" />
+ <data android:mimeType="vnd.android.cursor.dir/program"
+ android:scheme="content"
+ android:host="android.media.tv"
+ android:pathPrefix="/program" />
+ <data android:mimeType="vnd.android.cursor.item/channel"
+ android:scheme="content"
+ android:host="android.media.tv"
+ android:pathPrefix="/channel" />
+ <data android:mimeType="vnd.android.cursor.dir/channel"
+ android:scheme="content"
+ android:host="android.media.tv"
+ android:pathPrefix="/channel" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.media.tv.action.SETUP_INPUTS"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.SEARCH"/>
+ </intent-filter>
+ <meta-data android:name="supports_leanback"
+ android:value="true"/>
+ <meta-data android:name="android.app.searchable"
+ android:resource="@xml/searchable"/>
+ </activity>
+ </application>
+
+</manifest>
diff --git a/common/lint-baseline.xml b/common/lint-baseline.xml
index b6f9dfc..10fd161 100644
--- a/common/lint-baseline.xml
+++ b/common/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+<issues format="6" by="lint 8.4.0-alpha01" type="baseline" client="" dependencies="true" name="" variant="all" version="8.4.0-alpha01">
<issue
id="NewApi"
@@ -12,4 +12,4 @@
column="30"/>
</issue>
-</issues>
+</issues>
\ No newline at end of file
diff --git a/lint-baseline.xml b/lint-baseline.xml
index 29aff21..6fdd609 100644
--- a/lint-baseline.xml
+++ b/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+<issues format="6" by="lint 8.4.0-alpha01" type="baseline" client="" dependencies="true" name="" variant="all" version="8.4.0-alpha01">
<issue
id="NewApi"
@@ -25,6 +25,28 @@
<issue
id="NewApi"
+ message="Call requires API level 26 (current min is 23): `android.content.Context#registerReceiver`"
+ errorLine1=" mContext.registerReceiver(mReceiver, new IntentFilter(AudioManager.ACTION_HDMI_AUDIO_PLUG),"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/src/com/android/tv/receiver/AudioCapabilitiesReceiver.java"
+ line="70"
+ column="18"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 24 (current min is 23): `updateAndStartServiceIfNeeded`"
+ errorLine1=" scheduler.updateAndStartServiceIfNeeded();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/src/com/android/tv/receiver/BootCompletedReceiver.java"
+ line="95"
+ column="23"/>
+ </issue>
+
+ <issue
+ id="NewApi"
message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputInfo#canRecord`"
errorLine1=" if (info.canRecord()) {"
errorLine2=" ~~~~~~~~~">
@@ -80,6 +102,39 @@
<issue
id="NewApi"
+ message="Call requires API level 26 (current min is 23): `android.content.ContextWrapper#registerReceiver`"
+ errorLine1=" registerReceiver(mBroadcastReceiver, SYSTEM_INTENT_FILTER, Context.RECEIVER_EXPORTED);"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/src/com/android/tv/MainActivity.java"
+ line="874"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Method reference requires API level 24 (current min is 23): `MainActivity.super::enterPictureInPictureMode`"
+ errorLine1=" mHandler.post(MainActivity.super::enterPictureInPictureMode);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/src/com/android/tv/MainActivity.java"
+ line="2462"
+ column="27"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputInfo#getTunerCount`"
+ errorLine1=" input.getTunerCount(),"
+ errorLine2=" ~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/src/com/android/tv/ui/TunableTvView.java"
+ line="1227"
+ column="39"/>
+ </issue>
+
+ <issue
+ id="NewApi"
message="Call requires API level 24 (current min is 23): `createScheduler`"
errorLine1=" mRecordingScheduler = RecordingScheduler.createScheduler(this);"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -100,28 +155,4 @@
column="34"/>
</issue>
- <issue
- id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputInfo#getTunerCount`">
- <location
- file="packages/apps/TV/src/com/android/tv/ui/TunableTvView.java"
- line="1205"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 24 (current min is 23): `updateAndStartServiceIfNeeded`">
- <location
- file="packages/apps/TV/src/com/android/tv/receiver/BootCompletedReceiver.java"
- line="95"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Method reference requires API level 24 (current min is 23): `MainActivity.super::enterPictureInPictureMode`">
- <location
- file="packages/apps/TV/src/com/android/tv/MainActivity.java"
- line="2435"/>
- </issue>
-
</issues>
\ No newline at end of file
diff --git a/src/com/android/tv/features/TvFeatures.java b/src/com/android/tv/features/TvFeatures.java
index c4e388a..75bfabe 100644
--- a/src/com/android/tv/features/TvFeatures.java
+++ b/src/com/android/tv/features/TvFeatures.java
@@ -28,8 +28,7 @@
import android.content.pm.PackageManager;
import android.os.Build;
-import androidx.core.R;
-
+import com.android.tv.R;
import com.android.tv.common.feature.CommonFeatures;
import com.android.tv.common.feature.Feature;
import com.android.tv.common.feature.FeatureUtils;
diff --git a/src/com/android/tv/ui/KeypadChannelSwitchView.java b/src/com/android/tv/ui/KeypadChannelSwitchView.java
index a26175a..262c350 100644
--- a/src/com/android/tv/ui/KeypadChannelSwitchView.java
+++ b/src/com/android/tv/ui/KeypadChannelSwitchView.java
@@ -35,6 +35,7 @@
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
+
import com.android.tv.MainActivity;
import com.android.tv.R;
import com.android.tv.TvSingletons;
@@ -43,6 +44,7 @@
import com.android.tv.common.util.DurationTimer;
import com.android.tv.data.ChannelNumber;
import com.android.tv.data.api.Channel;
+
import java.util.ArrayList;
import java.util.List;
@@ -50,7 +52,7 @@
implements TvTransitionManager.TransitionLayout {
private static final String TAG = "KeypadChannelSwitchView";
- private static final int MAX_CHANNEL_NUMBER_DIGIT = 4;
+ private static final int MAX_CHANNEL_NUMBER_DIGIT = 5;
private static final int MAX_MINOR_CHANNEL_NUMBER_DIGIT = 3;
private static final int MAX_CHANNEL_ITEM = 8;
private static final String CHANNEL_DELIMITERS_REGEX = "[-\\.\\s]";
@@ -248,13 +250,26 @@
public void onNumberKeyUp(int num) {
// Reset typed channel number in some cases.
if (mTypedChannelNumber.majorNumber == null) {
+ Log.i(TAG, "Channel number reset because majorNumber is null");
mTypedChannelNumber.reset();
} else if (!mTypedChannelNumber.hasDelimiter
&& mTypedChannelNumber.majorNumber.length() >= MAX_CHANNEL_NUMBER_DIGIT) {
+ Log.i(
+ TAG,
+ "Channel number reset because majorNumber.length = "
+ + mTypedChannelNumber.majorNumber.length()
+ + " >= MAX_CHANNEL_NUMBER_DIGIT = "
+ + MAX_CHANNEL_NUMBER_DIGIT);
mTypedChannelNumber.reset();
} else if (mTypedChannelNumber.hasDelimiter
&& mTypedChannelNumber.minorNumber != null
&& mTypedChannelNumber.minorNumber.length() >= MAX_MINOR_CHANNEL_NUMBER_DIGIT) {
+ Log.i(
+ TAG,
+ "Channel number reset because minorNumber.length = "
+ + mTypedChannelNumber.minorNumber.length()
+ + " >= MAX_MINOR_CHANNEL_NUMBER_DIGIT = "
+ + MAX_MINOR_CHANNEL_NUMBER_DIGIT);
mTypedChannelNumber.reset();
}
diff --git a/tuner/lint-baseline.xml b/tuner/lint-baseline.xml
index f359c6b..807d727 100644
--- a/tuner/lint-baseline.xml
+++ b/tuner/lint-baseline.xml
@@ -1,188 +1,257 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 7.2.0-dev" client="cli" variant="all" version="4.1.0">
+<issues format="6" by="lint 8.4.0-alpha01" type="baseline" client="" dependencies="true" name="" variant="all" version="8.4.0-alpha01">
<issue
id="NewApi"
- message="Call requires API level 26 (current min is 23): `android.app.NotificationManager#createNotificationChannel`">
+ message="Call requires API level 26 (current min is 23): `android.app.NotificationManager#createNotificationChannel`"
+ errorLine1=" notificationManager.createNotificationChannel("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
- line="399"/>
+ line="399"
+ column="29"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 26 (current min is 23): `new android.app.NotificationChannel`">
+ message="Call requires API level 26 (current min is 23): `new android.app.NotificationChannel`"
+ errorLine1=" new NotificationChannel("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
- line="400"/>
+ line="400"
+ column="17"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 26 (current min is 23): `new android.app.Notification.Builder`">
+ message="Call requires API level 26 (current min is 23): `new android.app.Notification.Builder`"
+ errorLine1=" new Notification.Builder(context, TUNER_SET_UP_NOTIFICATION_CHANNEL_ID)"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
- line="406"/>
+ line="406"
+ column="17"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.app.job.JobScheduler#getPendingJob`">
+ message="Call requires API level 26 (current min is 23): `new android.app.Notification.TvExtender`"
+ errorLine1=" .extend(new Notification.TvExtender())"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
+ line="416"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Cast from `TvExtender` to `Extender` requires API level 26 (current min is 23)"
+ errorLine1=" .extend(new Notification.TvExtender())"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
+ line="416"
+ column="33"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 24 (current min is 23): `android.app.job.JobScheduler#getPendingJob`"
+ errorLine1=" JobInfo pendingJob = jobScheduler.getPendingJob(DVR_STORAGE_CLEANUP_JOB_ID);"
+ errorLine2=" ~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/BaseTunerTvInputService.java"
- line="94"/>
+ line="94"
+ column="47"/>
</issue>
<issue
id="NewApi"
- message="Extending RecordingSessionCompat requires API level 24 (current min is 23): `RecordingSessionCompat`">
+ message="Extending RecordingSessionCompat requires API level 24 (current min is 23): `RecordingSessionCompat`"
+ errorLine1="public class TunerRecordingSession extends RecordingSessionCompat {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java"
- line="39"/>
+ line="39"
+ column="44"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `RecordingSessionCompat`">
+ message="Call requires API level 24 (current min is 23): `RecordingSessionCompat`"
+ errorLine1=" super(context);"
+ errorLine2=" ~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java"
- line="54"/>
+ line="54"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyTuned`">
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyTuned`"
+ errorLine1=" notifyTuned(channelUri);"
+ errorLine2=" ~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java"
- line="107"/>
+ line="107"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `notifyRecordingStarted`">
+ message="Call requires API level 24 (current min is 23): `notifyRecordingStarted`"
+ errorLine1=" notifyRecordingStarted(recUri);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java"
- line="116"/>
+ line="116"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyRecordingStopped`">
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyRecordingStopped`"
+ errorLine1=" notifyRecordingStopped(recordedProgramUri);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java"
- line="125"/>
+ line="125"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyError`">
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyError`"
+ errorLine1=" notifyError(reason);"
+ errorLine2=" ~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java"
- line="131"/>
+ line="131"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Extending RecordingSessionCompat requires API level 24 (current min is 23): `RecordingSessionCompat`">
+ message="Extending RecordingSessionCompat requires API level 24 (current min is 23): `RecordingSessionCompat`"
+ errorLine1="public class TunerRecordingSessionExoV2 extends RecordingSessionCompat {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionExoV2.java"
- line="39"/>
+ line="39"
+ column="49"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `RecordingSessionCompat`">
+ message="Call requires API level 24 (current min is 23): `RecordingSessionCompat`"
+ errorLine1=" super(context);"
+ errorLine2=" ~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionExoV2.java"
- line="54"/>
+ line="54"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyTuned`">
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyTuned`"
+ errorLine1=" notifyTuned(channelUri);"
+ errorLine2=" ~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionExoV2.java"
- line="107"/>
+ line="107"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `notifyRecordingStarted`">
+ message="Call requires API level 24 (current min is 23): `notifyRecordingStarted`"
+ errorLine1=" notifyRecordingStarted(recUri);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionExoV2.java"
- line="116"/>
+ line="116"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyRecordingStopped`">
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyRecordingStopped`"
+ errorLine1=" notifyRecordingStopped(recordedProgramUri);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionExoV2.java"
- line="125"/>
+ line="125"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyError`">
+ message="Call requires API level 24 (current min is 23): `android.media.tv.TvInputService.RecordingSession#notifyError`"
+ errorLine1=" notifyError(reason);"
+ errorLine2=" ~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionExoV2.java"
- line="131"/>
+ line="131"
+ column="9"/>
</issue>
<issue
id="NewApi"
- message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`">
+ message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`"
+ errorLine1=" .insert(TvContract.RecordedPrograms.CONTENT_URI, values);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorker.java"
- line="616"/>
+ line="616"
+ column="25"/>
</issue>
<issue
id="NewApi"
- message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`">
+ message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`"
+ errorLine1=" Uri uri = TvContract.RecordedPrograms.CONTENT_URI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorker.java"
- line="689"/>
+ line="689"
+ column="19"/>
</issue>
<issue
id="NewApi"
- message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`">
+ message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`"
+ errorLine1=" .insert(TvContract.RecordedPrograms.CONTENT_URI, values);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorkerExoV2.java"
- line="619"/>
+ line="619"
+ column="25"/>
</issue>
<issue
id="NewApi"
- message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`">
+ message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`"
+ errorLine1=" Uri uri = TvContract.RecordedPrograms.CONTENT_URI;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorkerExoV2.java"
- line="692"/>
+ line="692"
+ column="19"/>
</issue>
<issue
id="NewApi"
- message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`">
+ message="Field requires API level 24 (current min is 23): `android.media.tv.TvContract.RecordedPrograms#CONTENT_URI`"
+ errorLine1=" TvContract.RecordedPrograms.CONTENT_URI,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="packages/apps/TV/tuner/src/com/android/tv/tuner/tvinput/TunerStorageCleanUpService.java"
- line="101"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 26 (current min is 23): `new android.app.Notification.TvExtender`">
- <location
- file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
- line="416"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Cast from `TvExtender` to `Extender` requires API level 26 (current min is 23)">
- <location
- file="packages/apps/TV/tuner/src/com/android/tv/tuner/setup/BaseTunerSetupActivity.java"
- line="416"/>
+ line="101"
+ column="29"/>
</issue>
</issues>
\ No newline at end of file