From 35a858512c3ecbaee896fac23710b6f6bdff8d38 Mon Sep 17 00:00:00 2001 From: Yuriy Liskov Date: Sat, 12 Jul 2025 03:30:07 +0300 Subject: [PATCH] player: focus suggested item fix --- MediaServiceCore | 2 +- SharedModules | 2 +- .../app/models/playback/service/VideoStateService.java | 2 +- .../smartyoutubetv2/common/prefs/PlayerTweaksData.java | 2 +- .../liskovsoft/smartyoutubetv2/common/utils/Utils.java | 6 ++++-- smarttubetv/build.gradle | 8 ++++---- .../smartyoutubetv2/tv/ui/playback/PlaybackFragment.java | 8 ++++---- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/MediaServiceCore b/MediaServiceCore index ff7f9f59a..193f1d30b 160000 --- a/MediaServiceCore +++ b/MediaServiceCore @@ -1 +1 @@ -Subproject commit ff7f9f59aaf14f4d88a3dc3971c5aff670178bab +Subproject commit 193f1d30bc53c589b60fe1727bd47130981d8b6c diff --git a/SharedModules b/SharedModules index 93ee9da43..ec3ef1051 160000 --- a/SharedModules +++ b/SharedModules @@ -1 +1 @@ -Subproject commit 93ee9da4378bc366b60294c1b8283f1c8fe3d010 +Subproject commit ec3ef10516995167e4d78ae691456f50be97dd3b diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/service/VideoStateService.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/service/VideoStateService.java index 6ae14e51a..710413ac6 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/service/VideoStateService.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/service/VideoStateService.java @@ -32,7 +32,7 @@ public class VideoStateService implements ProfileChangeListener { mPrefs = AppPrefs.instance(context); mPrefs.addListener(this); mStates = Helpers.createSafeLRUList( - Utils.isEnoughRam(mPrefs.getContext()) ? MAX_PERSISTENT_STATE_SIZE : MIN_PERSISTENT_STATE_SIZE); + Utils.isEnoughRam() ? MAX_PERSISTENT_STATE_SIZE : MIN_PERSISTENT_STATE_SIZE); restoreState(); } diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java index 4269a82ba..a1908784f 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/prefs/PlayerTweaksData.java @@ -641,7 +641,7 @@ public class PlayerTweaksData implements ProfileChangeListener { mIsSonyFrameDropFixEnabled = Helpers.parseBoolean(split, 29, false); mIsBufferOnStreamsDisabled = Helpers.parseBoolean(split, 30, false); // Cause severe garbage collector stuttering - mIsSectionPlaylistEnabled = Helpers.parseBoolean(split, 31, Utils.isEnoughRam(mPrefs.getContext())); + mIsSectionPlaylistEnabled = Helpers.parseBoolean(split, 31, Utils.isEnoughRam()); mIsScreenOffTimeoutEnabled = Helpers.parseBoolean(split, 32, false); mScreenOffTimeoutSec = Helpers.parseInt(split, 33, 0); mIsUIAnimationsEnabled = Helpers.parseBoolean(split, 34, false); diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/utils/Utils.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/utils/Utils.java index f8727bbcd..80124bef1 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/utils/Utils.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/utils/Utils.java @@ -1075,8 +1075,10 @@ public class Utils { return VERSION.SDK_INT <= 23 || Helpers.equals(BuildConfig.FLAVOR, "strtarmenia"); } - public static boolean isEnoughRam(Context context) { - return VERSION.SDK_INT > 21 && Helpers.getDeviceRam(context) > 1_500_000_000; // 1.5 GB + public static boolean isEnoughRam() { + long maxMemory = Runtime.getRuntime().maxMemory(); + + return (int)(maxMemory / (1024 * 1024)) > 350; // more than 350MB available to the app } public static String getStackTraceAsString(Throwable throwable) { diff --git a/smarttubetv/build.gradle b/smarttubetv/build.gradle index 7d30c7e94..9785f783e 100644 --- a/smarttubetv/build.gradle +++ b/smarttubetv/build.gradle @@ -60,8 +60,8 @@ android { applicationId "com.liskovsoft.smarttubetv" minSdkVersion project.properties.minSdkVersion targetSdkVersion project.properties.targetSdkVersion - versionCode 2049 - versionName "28.59" + versionCode 2050 + versionName "28.60" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L" @@ -136,8 +136,8 @@ android { staptoide { // matchingFallbacks = ['lite'] versionCode 11000 + defaultConfig.versionCode - //applicationId "com.liskovsoft.videomanager" - applicationId "com.teamsmart.videomanager.tv" + applicationId "com.liskovsoft.videomanager" + //applicationId "com.teamsmart.videomanager.tv" } } diff --git a/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java b/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java index 6eaae73be..4c1c1e626 100644 --- a/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java +++ b/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java @@ -613,7 +613,7 @@ public class PlaybackFragment extends SeekModePlaybackFragment implements Playba protected void onBindRowViewHolder(RowPresenter.ViewHolder holder, Object item) { super.onBindRowViewHolder(holder, item); - focusPendingSuggestedItem(); + focusPendingSuggestedItem(holder); } @Override @@ -1515,10 +1515,10 @@ public class PlaybackFragment extends SeekModePlaybackFragment implements Playba mPendingFocus = video; - focusPendingSuggestedItem(); + focusPendingSuggestedItem(null); } - public void focusPendingSuggestedItem() { + private void focusPendingSuggestedItem(ViewHolder holder) { if (mPendingFocus == null || mPendingFocus.getGroup() == null || mRowsSupportFragment == null) { return; } @@ -1531,7 +1531,7 @@ public class PlaybackFragment extends SeekModePlaybackFragment implements Playba int rowIndex = getRowAdapterIndex(existingAdapter); - ViewHolder rowViewHolder = mRowsSupportFragment.getRowViewHolder(rowIndex); + ViewHolder rowViewHolder = holder != null ? holder : mRowsSupportFragment.getRowViewHolder(rowIndex); // Skip PlaybackRowPresenter.ViewHolder if (rowViewHolder instanceof ListRowPresenter.ViewHolder) {