forked from recloudstream/cloudstream
emulator layout
This commit is contained in:
parent
43592e64f8
commit
ddab37c08d
8 changed files with 42 additions and 18 deletions
|
@ -39,6 +39,7 @@ import com.lagradost.cloudstream3.ui.result.START_ACTION_RESUME_LATEST
|
||||||
import com.lagradost.cloudstream3.ui.search.*
|
import com.lagradost.cloudstream3.ui.search.*
|
||||||
import com.lagradost.cloudstream3.ui.search.SearchFragment.Companion.filterSearchResponse
|
import com.lagradost.cloudstream3.ui.search.SearchFragment.Companion.filterSearchResponse
|
||||||
import com.lagradost.cloudstream3.ui.search.SearchHelper.handleSearchClickCallback
|
import com.lagradost.cloudstream3.ui.search.SearchHelper.handleSearchClickCallback
|
||||||
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
||||||
import com.lagradost.cloudstream3.utils.AppUtils.loadSearchResult
|
import com.lagradost.cloudstream3.utils.AppUtils.loadSearchResult
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.getKey
|
import com.lagradost.cloudstream3.utils.DataStore.getKey
|
||||||
|
@ -800,11 +801,13 @@ class HomeFragment : Fragment() {
|
||||||
if (ctx.isTvSettings()) {
|
if (ctx.isTvSettings()) {
|
||||||
home_api_fab?.isVisible = false
|
home_api_fab?.isVisible = false
|
||||||
home_change_api?.isVisible = true
|
home_change_api?.isVisible = true
|
||||||
home_change_api_loading?.isVisible = true
|
if(ctx.isTrueTvSettings()) {
|
||||||
home_change_api_loading?.isFocusable = true
|
home_change_api_loading?.isVisible = true
|
||||||
home_change_api_loading?.isFocusableInTouchMode = true
|
home_change_api_loading?.isFocusable = true
|
||||||
home_change_api?.isFocusable = true
|
home_change_api_loading?.isFocusableInTouchMode = true
|
||||||
home_change_api?.isFocusableInTouchMode = true
|
home_change_api?.isFocusable = true
|
||||||
|
home_change_api?.isFocusableInTouchMode = true
|
||||||
|
}
|
||||||
// home_bookmark_select?.isFocusable = true
|
// home_bookmark_select?.isFocusable = true
|
||||||
// home_bookmark_select?.isFocusableInTouchMode = true
|
// home_bookmark_select?.isFocusableInTouchMode = true
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -16,7 +16,7 @@ import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_DOWNLOAD
|
||||||
import com.lagradost.cloudstream3.ui.download.DownloadButtonViewHolder
|
import com.lagradost.cloudstream3.ui.download.DownloadButtonViewHolder
|
||||||
import com.lagradost.cloudstream3.ui.download.DownloadClickEvent
|
import com.lagradost.cloudstream3.ui.download.DownloadClickEvent
|
||||||
import com.lagradost.cloudstream3.ui.download.EasyDownloadButton
|
import com.lagradost.cloudstream3.ui.download.EasyDownloadButton
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
|
||||||
import com.lagradost.cloudstream3.utils.UIHelper.setImage
|
import com.lagradost.cloudstream3.utils.UIHelper.setImage
|
||||||
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
|
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
|
||||||
import com.lagradost.cloudstream3.utils.VideoDownloadManager
|
import com.lagradost.cloudstream3.utils.VideoDownloadManager
|
||||||
|
@ -193,7 +193,7 @@ class EpisodeAdapter(
|
||||||
clickCallback.invoke(EpisodeClickEvent(ACTION_CLICK_DEFAULT, card))
|
clickCallback.invoke(EpisodeClickEvent(ACTION_CLICK_DEFAULT, card))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (episodeHolder.context.isTvSettings()) {
|
if (episodeHolder.context.isTrueTvSettings()) {
|
||||||
episodeHolder.isFocusable = true
|
episodeHolder.isFocusable = true
|
||||||
episodeHolder.isFocusableInTouchMode = true
|
episodeHolder.isFocusableInTouchMode = true
|
||||||
episodeHolder.touchscreenBlocksFocus = false
|
episodeHolder.touchscreenBlocksFocus = false
|
||||||
|
|
|
@ -31,6 +31,7 @@ import com.lagradost.cloudstream3.ui.home.HomeFragment
|
||||||
import com.lagradost.cloudstream3.ui.home.HomeFragment.Companion.currentSpan
|
import com.lagradost.cloudstream3.ui.home.HomeFragment.Companion.currentSpan
|
||||||
import com.lagradost.cloudstream3.ui.home.HomeFragment.Companion.loadHomepageList
|
import com.lagradost.cloudstream3.ui.home.HomeFragment.Companion.loadHomepageList
|
||||||
import com.lagradost.cloudstream3.ui.home.ParentItemAdapter
|
import com.lagradost.cloudstream3.ui.home.ParentItemAdapter
|
||||||
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.getKey
|
import com.lagradost.cloudstream3.utils.DataStore.getKey
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.setKey
|
import com.lagradost.cloudstream3.utils.DataStore.setKey
|
||||||
|
@ -319,7 +320,7 @@ class SearchFragment : Fragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (context?.isTvSettings() == true) {
|
if (context?.isTrueTvSettings() == true) {
|
||||||
search_filter.isFocusable = true
|
search_filter.isFocusable = true
|
||||||
search_filter.isFocusableInTouchMode = true
|
search_filter.isFocusableInTouchMode = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import android.widget.TextView
|
||||||
import androidx.cardview.widget.CardView
|
import androidx.cardview.widget.CardView
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
|
||||||
import com.lagradost.cloudstream3.utils.AppUtils.getNameFull
|
import com.lagradost.cloudstream3.utils.AppUtils.getNameFull
|
||||||
import com.lagradost.cloudstream3.utils.DataStoreHelper
|
import com.lagradost.cloudstream3.utils.DataStoreHelper
|
||||||
import com.lagradost.cloudstream3.utils.DataStoreHelper.fixVisual
|
import com.lagradost.cloudstream3.utils.DataStoreHelper.fixVisual
|
||||||
|
@ -81,23 +81,32 @@ object SearchResultBuilder {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bg.context.isTvSettings()) {
|
if (bg.context.isTrueTvSettings()) {
|
||||||
bg.isFocusable = true
|
bg.isFocusable = true
|
||||||
bg.isFocusableInTouchMode = true
|
bg.isFocusableInTouchMode = true
|
||||||
bg.touchscreenBlocksFocus = false
|
bg.touchscreenBlocksFocus = false
|
||||||
|
itemView.isFocusableInTouchMode = true
|
||||||
|
itemView.isFocusable = true
|
||||||
}
|
}
|
||||||
|
|
||||||
bg.setOnLongClickListener {
|
bg.setOnLongClickListener {
|
||||||
clickCallback.invoke(SearchClickCallback(SEARCH_ACTION_SHOW_METADATA, it, position, card))
|
clickCallback.invoke(SearchClickCallback(SEARCH_ACTION_SHOW_METADATA, it, position, card))
|
||||||
return@setOnLongClickListener true
|
return@setOnLongClickListener true
|
||||||
}
|
}
|
||||||
|
itemView.setOnLongClickListener {
|
||||||
|
clickCallback.invoke(SearchClickCallback(SEARCH_ACTION_SHOW_METADATA, it, position, card))
|
||||||
|
return@setOnLongClickListener true
|
||||||
|
}
|
||||||
bg.setOnFocusChangeListener { view, b ->
|
bg.setOnFocusChangeListener { view, b ->
|
||||||
if (b) {
|
if (b) {
|
||||||
clickCallback.invoke(SearchClickCallback(SEARCH_ACTION_FOCUSED, view, position, card))
|
clickCallback.invoke(SearchClickCallback(SEARCH_ACTION_FOCUSED, view, position, card))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
itemView.setOnFocusChangeListener { view, b ->
|
||||||
|
if (b) {
|
||||||
|
clickCallback.invoke(SearchClickCallback(SEARCH_ACTION_FOCUSED, view, position, card))
|
||||||
|
}
|
||||||
|
}
|
||||||
when (card) {
|
when (card) {
|
||||||
is DataStoreHelper.ResumeWatchingResult -> {
|
is DataStoreHelper.ResumeWatchingResult -> {
|
||||||
val pos = card.watchPos?.fixVisual()
|
val pos = card.watchPos?.fixVisual()
|
||||||
|
|
|
@ -57,13 +57,21 @@ import kotlin.concurrent.thread
|
||||||
|
|
||||||
class SettingsFragment : PreferenceFragmentCompat() {
|
class SettingsFragment : PreferenceFragmentCompat() {
|
||||||
companion object {
|
companion object {
|
||||||
fun Context.isTvSettings(): Boolean {
|
private fun Context.getLayoutInt() : Int {
|
||||||
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
var value = settingsManager.getInt(this.getString(R.string.app_layout_key), -1)
|
return settingsManager.getInt(this.getString(R.string.app_layout_key), -1)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Context.isTvSettings(): Boolean {
|
||||||
|
var value = getLayoutInt()
|
||||||
if (value == -1) {
|
if (value == -1) {
|
||||||
value = if (isAutoTv()) 1 else 0
|
value = if (isAutoTv()) 1 else 0
|
||||||
}
|
}
|
||||||
return value == 1
|
return value == 1 || value == 2
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Context.isTrueTvSettings() : Boolean {
|
||||||
|
return getLayoutInt() == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Context.isAutoTv(): Boolean {
|
private fun Context.isAutoTv(): Boolean {
|
||||||
|
|
|
@ -26,7 +26,7 @@ import com.lagradost.cloudstream3.CommonActivity.onColorSelectedEvent
|
||||||
import com.lagradost.cloudstream3.CommonActivity.onDialogDismissedEvent
|
import com.lagradost.cloudstream3.CommonActivity.onDialogDismissedEvent
|
||||||
import com.lagradost.cloudstream3.CommonActivity.showToast
|
import com.lagradost.cloudstream3.CommonActivity.showToast
|
||||||
import com.lagradost.cloudstream3.R
|
import com.lagradost.cloudstream3.R
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.setKey
|
import com.lagradost.cloudstream3.utils.DataStore.setKey
|
||||||
import com.lagradost.cloudstream3.utils.Event
|
import com.lagradost.cloudstream3.utils.Event
|
||||||
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
|
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
|
||||||
|
@ -197,10 +197,10 @@ class SubtitlesFragment : Fragment() {
|
||||||
state = getCurrentSavedStyle()
|
state = getCurrentSavedStyle()
|
||||||
context?.updateState()
|
context?.updateState()
|
||||||
|
|
||||||
val isTvSettings = context?.isTvSettings() == true
|
val isTvTrueSettings = context?.isTrueTvSettings() == true
|
||||||
|
|
||||||
fun View.setFocusableInTv() {
|
fun View.setFocusableInTv() {
|
||||||
this.isFocusableInTouchMode = isTvSettings
|
this.isFocusableInTouchMode = isTvTrueSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
fun View.setup(id: Int) {
|
fun View.setup(id: Int) {
|
||||||
|
|
|
@ -100,12 +100,14 @@
|
||||||
<item>@string/automatic</item>
|
<item>@string/automatic</item>
|
||||||
<item>@string/phone_layout</item>
|
<item>@string/phone_layout</item>
|
||||||
<item>@string/tv_layout</item>
|
<item>@string/tv_layout</item>
|
||||||
|
<item>@string/emulator_layout</item>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<array name="app_layout_values">
|
<array name="app_layout_values">
|
||||||
<item>-1</item>
|
<item>-1</item>
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<string-array name="themes_overlay_names">
|
<string-array name="themes_overlay_names">
|
||||||
|
|
|
@ -343,6 +343,7 @@
|
||||||
<string name="automatic">Auto</string>
|
<string name="automatic">Auto</string>
|
||||||
<string name="tv_layout">TV Layout</string>
|
<string name="tv_layout">TV Layout</string>
|
||||||
<string name="phone_layout">Phone Layout</string>
|
<string name="phone_layout">Phone Layout</string>
|
||||||
|
<string name="emulator_layout">Emulator Layout</string>
|
||||||
|
|
||||||
<string name="primary_color_settings">Primary Color</string>
|
<string name="primary_color_settings">Primary Color</string>
|
||||||
<string name="app_theme_settings">App Theme</string>
|
<string name="app_theme_settings">App Theme</string>
|
||||||
|
|
Loading…
Reference in a new issue