diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-03-30 17:10:38 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-03-30 17:10:38 +0000 |
commit | f5496882e51f8780b630e71807e6d9bb2abdd6b4 (patch) | |
tree | 7f2de3f53b52b3db1af0739624d4010adae69424 | |
parent | b6f74ca8de8825021ffd6616f2e10344998444b0 (diff) | |
parent | 627804cbc092aee2ad79056b151750469872fb92 (diff) | |
download | TV-f5496882e51f8780b630e71807e6d9bb2abdd6b4.tar.gz |
Merge "Broadcast inputId upon selection to LauncherX" into sc-dev
-rw-r--r-- | src/com/android/tv/MainActivity.java | 7 | ||||
-rw-r--r-- | src/com/android/tv/util/GtvUtils.java | 56 |
2 files changed, 62 insertions, 1 deletions
diff --git a/src/com/android/tv/MainActivity.java b/src/com/android/tv/MainActivity.java index 9c615b93..8dbafe47 100644 --- a/src/com/android/tv/MainActivity.java +++ b/src/com/android/tv/MainActivity.java @@ -149,6 +149,7 @@ import com.android.tv.ui.sidepanel.parentalcontrols.RatingsFragment; import com.android.tv.util.AsyncDbTask; import com.android.tv.util.AsyncDbTask.DbExecutor; import com.android.tv.util.CaptionSettings; +import com.android.tv.util.GtvUtils; import com.android.tv.util.OnboardingUtils; import com.android.tv.util.SetupUtils; import com.android.tv.util.TvInputManagerHelper; @@ -456,7 +457,11 @@ public class MainActivity extends Activity } @Override - public void onChannelChanged(Channel previousChannel, Channel currentChannel) {} + public void onChannelChanged(Channel previousChannel, Channel currentChannel) { + if (currentChannel != null) { + GtvUtils.broadcastInputId(MainActivity.this, currentChannel.getInputId()); + } + } }; private final Runnable mRestoreMainViewRunnable = this::restoreMainTvView; diff --git a/src/com/android/tv/util/GtvUtils.java b/src/com/android/tv/util/GtvUtils.java new file mode 100644 index 00000000..eb50e062 --- /dev/null +++ b/src/com/android/tv/util/GtvUtils.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.tv.util; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.util.Log; + +/** A utility class for Google TV */ +public class GtvUtils { + private static final String TAG = "GtvUtils"; + private static final String AMATI_FEATURE = "com.google.android.feature.AMATI_EXPERIENCE"; + private static final String PERMISSION_WRITE_EPG_DATA = + "com.android.providers.tv.permission.WRITE_EPG_DATA"; + private static final String ACTION_INPUT_SELECTED = "android.apps.tv.launcherx.INPUT_SELECTED"; + private static final String EXTRA_INPUT_ID = "extra_input_id"; + private static final String LAUNCHERX_PACKAGE_NAME = "com.google.android.apps.tv.launcherx"; + private static Boolean mEnabled = null; + + private static boolean isEnabled(Context context) { + if (mEnabled == null) { + PackageManager pm = context.getPackageManager(); + mEnabled = pm.hasSystemFeature(AMATI_FEATURE); + } + return mEnabled; + } + + /** Broadcasts the intent with inputId to the Launcher */ + public static void broadcastInputId(Context context, String inputId) { + if (isEnabled(context)) { + if (inputId == null) { + Log.e(TAG, "Will not broadcast inputId because it is null"); + } else { + Intent intent = new Intent(ACTION_INPUT_SELECTED); + intent.putExtra(EXTRA_INPUT_ID, inputId); + intent.setPackage(LAUNCHERX_PACKAGE_NAME); + context.sendBroadcast(intent, PERMISSION_WRITE_EPG_DATA); + } + } + } +} |