From 6b07072a0857f053295cc6ed3fd746d5c6f46d49 Mon Sep 17 00:00:00 2001 From: GinVavilon Date: Sun, 28 Jul 2019 17:10:18 +0300 Subject: [PATCH] Delete program if it is removed by user Fix problem: if user removes program game is not shown on launch --- .../com/limelight/utils/TvChannelHelper.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/limelight/utils/TvChannelHelper.java b/app/src/main/java/com/limelight/utils/TvChannelHelper.java index 7b0203e4..4e18ce23 100644 --- a/app/src/main/java/com/limelight/utils/TvChannelHelper.java +++ b/app/src/main/java/com/limelight/utils/TvChannelHelper.java @@ -16,11 +16,9 @@ import android.media.tv.TvContract; import android.net.Uri; import android.os.Build; -import com.limelight.AppView; import com.limelight.LimeLog; import com.limelight.PosterContentProvider; import com.limelight.R; -import com.limelight.ShortcutTrampoline; import com.limelight.nvstream.http.ComputerDetails; import com.limelight.nvstream.http.NvApp; @@ -32,6 +30,7 @@ public class TvChannelHelper { private static final int ASPECT_RATIO_MOVIE_POSTER = 5; private static final int TYPE_GAME = 12; private static final int INTERNAL_PROVIDER_ID_INDEX = 1; + private static final int PROGRAM_BROWSABLE_INDEX = 2; private static final int ID_INDEX = 0; private Activity context; @@ -214,7 +213,7 @@ public class TvChannelHelper { private Long getProgramId(long channelId, String appId) { try (Cursor cursor = context.getContentResolver().query( TvContract.buildPreviewProgramsUriForChannel(channelId), - new String[] {TvContract.PreviewPrograms._ID, TvContract.PreviewPrograms.COLUMN_INTERNAL_PROVIDER_ID}, + new String[] {TvContract.PreviewPrograms._ID, TvContract.PreviewPrograms.COLUMN_INTERNAL_PROVIDER_ID, TvContract.PreviewPrograms.COLUMN_BROWSABLE}, null, null, null)) { @@ -224,7 +223,18 @@ public class TvChannelHelper { while (cursor.moveToNext()) { String internalProviderId = cursor.getString(INTERNAL_PROVIDER_ID_INDEX); if (appId.equals(internalProviderId)) { - return cursor.getLong(ID_INDEX); + long id = cursor.getLong(ID_INDEX); + int browsable = cursor.getInt(PROGRAM_BROWSABLE_INDEX); + if (browsable != 0) { + return id; + } else { + int countDeleted = context.getContentResolver().delete(TvContract.buildPreviewProgramUri(id), null, null); + if (countDeleted > 0) { + LimeLog.info("Preview program has been deleted"); + } else { + LimeLog.warning("Preview program has not been deleted"); + } + } } }