diff --git a/app/build.gradle b/app/build.gradle
index 4651b798..87d833de 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 27
- buildToolsVersion "27.0.3"
+ compileSdkVersion 28
+ buildToolsVersion "28.0.3"
defaultConfig {
applicationId "com.example.android.sampletvinput"
minSdkVersion 21
- targetSdkVersion 27
+ targetSdkVersion 28
versionCode 3
versionName "1.2"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 89986606..c063926c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -124,5 +124,10 @@
+
+
+
diff --git a/app/src/main/java/com/example/android/sampletvinput/MainFragment.java b/app/src/main/java/com/example/android/sampletvinput/MainFragment.java
index 1d677580..d7c35782 100644
--- a/app/src/main/java/com/example/android/sampletvinput/MainFragment.java
+++ b/app/src/main/java/com/example/android/sampletvinput/MainFragment.java
@@ -27,7 +27,7 @@
*/
public class MainFragment extends Fragment {
private static final String URL =
- "http://github.com/googlesamples/androidtv-sample-inputs/blob/master/README.md";
+ "https://github.com/googlesamples/androidtv-sample-inputs/blob/master/README.md";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
diff --git a/app/src/main/java/com/example/android/sampletvinput/player/DemoPlayer.java b/app/src/main/java/com/example/android/sampletvinput/player/DemoPlayer.java
index cf5a30b4..e1026a83 100644
--- a/app/src/main/java/com/example/android/sampletvinput/player/DemoPlayer.java
+++ b/app/src/main/java/com/example/android/sampletvinput/player/DemoPlayer.java
@@ -22,7 +22,7 @@
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.RequiresApi;
import android.view.Surface;
import com.google.android.exoplayer.CodecCounters;
import com.google.android.exoplayer.DummyTrackRenderer;
diff --git a/app/src/main/java/com/example/android/sampletvinput/player/FakeTrickplayRunnable.java b/app/src/main/java/com/example/android/sampletvinput/player/FakeTrickplayRunnable.java
index b485fc99..9d699e14 100644
--- a/app/src/main/java/com/example/android/sampletvinput/player/FakeTrickplayRunnable.java
+++ b/app/src/main/java/com/example/android/sampletvinput/player/FakeTrickplayRunnable.java
@@ -20,7 +20,7 @@
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.RequiresApi;
import android.util.Log;
import com.google.android.media.tv.companionlibrary.TvPlayer;
diff --git a/app/src/main/java/com/example/android/sampletvinput/rich/FirstStepFragment.java b/app/src/main/java/com/example/android/sampletvinput/rich/FirstStepFragment.java
index ed70baf3..d23a24cc 100644
--- a/app/src/main/java/com/example/android/sampletvinput/rich/FirstStepFragment.java
+++ b/app/src/main/java/com/example/android/sampletvinput/rich/FirstStepFragment.java
@@ -18,10 +18,10 @@
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
+import androidx.annotation.NonNull;
+import androidx.leanback.app.GuidedStepFragment;
+import androidx.leanback.widget.GuidanceStylist.Guidance;
+import androidx.leanback.widget.GuidedAction;
import com.example.android.sampletvinput.R;
import java.util.List;
diff --git a/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkDetailsFragment.java b/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkDetailsFragment.java
index 16b1c6bb..b3e29f4c 100644
--- a/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkDetailsFragment.java
+++ b/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkDetailsFragment.java
@@ -20,17 +20,17 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
-import android.support.v17.leanback.app.DetailsFragment;
-import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ClassPresenterSelector;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-import android.support.v17.leanback.widget.DetailsOverviewRowPresenter;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnActionClickedListener;
-import android.support.v4.content.ContextCompat;
+import androidx.leanback.app.DetailsFragment;
+import androidx.leanback.widget.AbstractDetailsDescriptionPresenter;
+import androidx.leanback.widget.Action;
+import androidx.leanback.widget.ArrayObjectAdapter;
+import androidx.leanback.widget.ClassPresenterSelector;
+import androidx.leanback.widget.DetailsOverviewRow;
+import androidx.leanback.widget.DetailsOverviewRowPresenter;
+import androidx.leanback.widget.ListRow;
+import androidx.leanback.widget.ListRowPresenter;
+import androidx.leanback.widget.OnActionClickedListener;
+import androidx.core.content.ContextCompat;
import com.example.android.sampletvinput.R;
/**
diff --git a/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkSidePanelActivity.java b/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkSidePanelActivity.java
index e4d8bc52..406678a9 100644
--- a/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkSidePanelActivity.java
+++ b/app/src/main/java/com/example/android/sampletvinput/rich/RichAppLinkSidePanelActivity.java
@@ -18,8 +18,8 @@
import android.app.Activity;
import android.os.Bundle;
-import android.support.v17.leanback.widget.VerticalGridView;
-import android.support.v7.widget.RecyclerView;
+import androidx.leanback.widget.VerticalGridView;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/com/example/android/sampletvinput/rich/RichSetupFragment.java b/app/src/main/java/com/example/android/sampletvinput/rich/RichSetupFragment.java
index 4c14bf86..ee1eb92b 100644
--- a/app/src/main/java/com/example/android/sampletvinput/rich/RichSetupFragment.java
+++ b/app/src/main/java/com/example/android/sampletvinput/rich/RichSetupFragment.java
@@ -18,8 +18,8 @@
import android.graphics.drawable.Drawable;
import android.media.tv.TvInputInfo;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
+import androidx.annotation.NonNull;
+import androidx.leanback.widget.GuidanceStylist.Guidance;
import com.example.android.sampletvinput.R;
import com.example.android.sampletvinput.SampleJobService;
import com.google.android.media.tv.companionlibrary.setup.ChannelSetupStepFragment;
diff --git a/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputService.java b/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputService.java
index af9b1bfa..6a5f9a5f 100644
--- a/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputService.java
+++ b/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputService.java
@@ -27,8 +27,8 @@
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import android.util.Log;
import android.view.Display;
import android.view.LayoutInflater;
diff --git a/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputSetupActivity.java b/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputSetupActivity.java
index 41a45b15..0401de90 100644
--- a/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputSetupActivity.java
+++ b/app/src/main/java/com/example/android/sampletvinput/rich/RichTvInputSetupActivity.java
@@ -18,7 +18,7 @@
import android.app.Activity;
import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
+import androidx.leanback.app.GuidedStepFragment;
/** The setup activity for demonstrating {@link RichTvInputService}. */
public class RichTvInputSetupActivity extends Activity {
diff --git a/build.gradle b/build.gradle
index 390aecc9..4471ed7f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.0'
+ classpath 'com.android.tools.build:gradle:4.1.1'
}
}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 00000000..d015431a
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,2 @@
+android.useAndroidX=true
+android.enableJetifier=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 512621e4..6ca5201b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Mar 28 17:53:17 PDT 2018
+#Thu Dec 10 10:49:58 AEDT 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
diff --git a/library/build.gradle b/library/build.gradle
index bbb16536..e13b32df 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -6,11 +6,12 @@ apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
android {
- compileSdkVersion 27
+ compileSdkVersion 28
+ buildToolsVersion '28.0.3'
defaultConfig {
minSdkVersion 21
- targetSdkVersion 27
+ targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -44,7 +45,13 @@ dependencies {
implementation "com.android.support:appcompat-v7:$appCompatVersion"
implementation "com.android.support:leanback-v17:$appCompatVersion"
implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.2.1'
- implementation "com.google.android.gms:play-services-ads:$playServicesVersion"
+ implementation "com.google.android.gms:play-services-ads:18.1.1"
+ implementation "androidx.annotation:annotation:1.1.0"
+ def leanback_version = "1.0.0"
+ implementation "androidx.leanback:leanback:$leanback_version"
+ // leanback-preference is an add-on that provides a settings UI for TV apps.
+ implementation "androidx.leanback:leanback-preference:$leanback_version"
+ implementation 'androidx.recyclerview:recyclerview:1.1.0'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.8.9'
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/AdController.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/AdController.java
index c896655b..4ac57c08 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/AdController.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/AdController.java
@@ -17,7 +17,7 @@
package com.google.android.media.tv.companionlibrary;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.FrameLayout;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/BaseTvInputService.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/BaseTvInputService.java
index ee6834ab..308e965d 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/BaseTvInputService.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/BaseTvInputService.java
@@ -36,7 +36,7 @@
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.RequiresApi;
import android.util.Log;
import android.util.LongSparseArray;
import android.view.Surface;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/ads/EpgSyncWithAdsJobService.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/ads/EpgSyncWithAdsJobService.java
index 2414fa1e..3aabd3ab 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/ads/EpgSyncWithAdsJobService.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/ads/EpgSyncWithAdsJobService.java
@@ -17,7 +17,7 @@
package com.google.android.media.tv.companionlibrary.ads;
import android.net.Uri;
-import android.support.annotation.VisibleForTesting;
+import androidx.annotation.VisibleForTesting;
import com.google.android.media.tv.companionlibrary.model.Advertisement;
import com.google.android.media.tv.companionlibrary.model.Channel;
import com.google.android.media.tv.companionlibrary.model.InternalProviderData;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Advertisement.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Advertisement.java
index aa16d390..c50cd8ef 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Advertisement.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Advertisement.java
@@ -16,7 +16,7 @@
package com.google.android.media.tv.companionlibrary.model;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
/** A class to store advertisement information. */
public class Advertisement implements Comparable {
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/InternalProviderData.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/InternalProviderData.java
index 76958bda..0087e142 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/InternalProviderData.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/InternalProviderData.java
@@ -16,7 +16,7 @@
package com.google.android.media.tv.companionlibrary.model;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.google.android.media.tv.companionlibrary.utils.TvContractUtils;
import java.util.ArrayList;
import java.util.Iterator;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/ModelUtils.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/ModelUtils.java
index f42e73d2..f35ab93d 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/ModelUtils.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/ModelUtils.java
@@ -24,7 +24,7 @@
import android.media.tv.TvContract.Channels;
import android.net.Uri;
import android.os.AsyncTask;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.util.Log;
import android.util.LongSparseArray;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Program.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Program.java
index cae75ce2..9aec3e8c 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Program.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/model/Program.java
@@ -21,7 +21,7 @@
import android.media.tv.TvContentRating;
import android.media.tv.TvContract;
import android.os.Build;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.text.TextUtils;
import com.google.android.media.tv.companionlibrary.utils.CollectionUtils;
import com.google.android.media.tv.companionlibrary.utils.TvContractUtils;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupFragment.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupFragment.java
index c4a167af..8371a907 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupFragment.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupFragment.java
@@ -24,8 +24,8 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.support.annotation.ColorInt;
-import android.support.v4.content.LocalBroadcastManager;
+import androidx.annotation.ColorInt;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.util.Log;
import android.util.Pair;
import android.view.LayoutInflater;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepFragment.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepFragment.java
index ebb3d0bf..0ff070d0 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepFragment.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepFragment.java
@@ -22,10 +22,10 @@
import android.content.SharedPreferences;
import android.media.tv.TvInputInfo;
import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v4.content.LocalBroadcastManager;
+import androidx.leanback.app.GuidedStepFragment;
+import androidx.leanback.widget.GuidanceStylist.Guidance;
+import androidx.leanback.widget.GuidedAction;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.util.Log;
import android.util.Pair;
import android.widget.ProgressBar;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepSupportFragment.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepSupportFragment.java
index f94efd87..93f34f66 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepSupportFragment.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStepSupportFragment.java
@@ -22,10 +22,10 @@
import android.content.SharedPreferences;
import android.media.tv.TvInputInfo;
import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepSupportFragment;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v4.content.LocalBroadcastManager;
+import androidx.leanback.app.GuidedStepSupportFragment;
+import androidx.leanback.widget.GuidanceStylist.Guidance;
+import androidx.leanback.widget.GuidedAction;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.util.Log;
import android.util.Pair;
import android.widget.ProgressBar;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStylist.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStylist.java
index 5a9286e9..eccc6222 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStylist.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/setup/ChannelSetupStylist.java
@@ -15,7 +15,7 @@
*/
package com.google.android.media.tv.companionlibrary.setup;
-import android.support.v17.leanback.widget.GuidanceStylist;
+import androidx.leanback.widget.GuidanceStylist;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/sync/EpgSyncJobService.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/sync/EpgSyncJobService.java
index a5d62278..c69f44bd 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/sync/EpgSyncJobService.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/sync/EpgSyncJobService.java
@@ -34,8 +34,8 @@
import android.os.Build;
import android.os.PersistableBundle;
import android.os.RemoteException;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.content.LocalBroadcastManager;
+import androidx.annotation.VisibleForTesting;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.util.Log;
import android.util.LongSparseArray;
import android.util.SparseArray;
@@ -48,7 +48,6 @@
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import junit.framework.Assert;
/**
* Service to handle callbacks from JobScheduler. This service will be called by the system to
@@ -245,7 +244,6 @@ private static void scheduleJob(Context context, JobInfo job) {
JobScheduler jobScheduler =
(JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
int result = jobScheduler.schedule(job);
- Assert.assertEquals(JobScheduler.RESULT_SUCCESS, result);
if (DEBUG) {
Log.d(TAG, "Scheduling result is " + result);
}
diff --git a/library/src/main/java/com/google/android/media/tv/companionlibrary/xmltv/XmlTvParser.java b/library/src/main/java/com/google/android/media/tv/companionlibrary/xmltv/XmlTvParser.java
index ed026d65..e875c242 100644
--- a/library/src/main/java/com/google/android/media/tv/companionlibrary/xmltv/XmlTvParser.java
+++ b/library/src/main/java/com/google/android/media/tv/companionlibrary/xmltv/XmlTvParser.java
@@ -18,7 +18,7 @@
import android.graphics.Color;
import android.media.tv.TvContentRating;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.util.Log;
import android.util.Xml;