rename to setting
This commit is contained in:
parent
33d3da97e5
commit
c17d62c698
|
|
@ -22,6 +22,7 @@ class ChannelFragment : Fragment() {
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View {
|
): View {
|
||||||
_binding = ChannelBinding.inflate(inflater, container, false)
|
_binding = ChannelBinding.inflate(inflater, container, false)
|
||||||
|
_binding!!.root.visibility = View.GONE
|
||||||
(activity as MainActivity).fragmentReady()
|
(activity as MainActivity).fragmentReady()
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
@ -41,7 +42,6 @@ class ChannelFragment : Fragment() {
|
||||||
handler.postDelayed(removeRunnable, delay)
|
handler.postDelayed(removeRunnable, delay)
|
||||||
} else {
|
} else {
|
||||||
val ch = "${binding.channelContent.text}$channel".toInt()
|
val ch = "${binding.channelContent.text}$channel".toInt()
|
||||||
Log.i(TAG, "channel $ch")
|
|
||||||
(activity as MainActivity).play(ch)
|
(activity as MainActivity).play(ch)
|
||||||
binding.channelContent.text = ""
|
binding.channelContent.text = ""
|
||||||
view?.visibility = View.GONE
|
view?.visibility = View.GONE
|
||||||
|
|
|
||||||
|
|
@ -23,17 +23,11 @@ class InfoFragment : Fragment() {
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View {
|
): View {
|
||||||
_binding = InfoBinding.inflate(inflater, container, false)
|
_binding = InfoBinding.inflate(inflater, container, false)
|
||||||
|
_binding!!.root.visibility = View.GONE
|
||||||
(activity as MainActivity).fragmentReady()
|
(activity as MainActivity).fragmentReady()
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
|
|
||||||
// Use a Handler to delay the fragment transaction
|
|
||||||
handler.postDelayed(removeRunnable, delay)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun show(tvViewModel: TVViewModel) {
|
fun show(tvViewModel: TVViewModel) {
|
||||||
binding.textView.text = tvViewModel.title.value
|
binding.textView.text = tvViewModel.title.value
|
||||||
if (tvViewModel.title.value == "CCTV8K 超高清") {
|
if (tvViewModel.title.value == "CCTV8K 超高清") {
|
||||||
|
|
@ -56,10 +50,13 @@ class InfoFragment : Fragment() {
|
||||||
handler.postDelayed(removeRunnable, delay)
|
handler.postDelayed(removeRunnable, delay)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
handler.postDelayed(removeRunnable, delay)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
Log.i(TAG, "onPause")
|
|
||||||
// Cancel the delayed task when the fragment is paused
|
|
||||||
handler.removeCallbacks(removeRunnable)
|
handler.removeCallbacks(removeRunnable)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ class MainActivity : FragmentActivity() {
|
||||||
private val mainFragment = MainFragment()
|
private val mainFragment = MainFragment()
|
||||||
private val infoFragment = InfoFragment()
|
private val infoFragment = InfoFragment()
|
||||||
private val channelFragment = ChannelFragment()
|
private val channelFragment = ChannelFragment()
|
||||||
|
private lateinit var settingFragment: SettingFragment
|
||||||
|
|
||||||
private var doubleBackToExitPressedOnce = false
|
private var doubleBackToExitPressedOnce = false
|
||||||
|
|
||||||
|
|
@ -42,7 +43,6 @@ class MainActivity : FragmentActivity() {
|
||||||
private var channelNum = true
|
private var channelNum = true
|
||||||
|
|
||||||
private var versionName = ""
|
private var versionName = ""
|
||||||
private lateinit var dialogFragment: MyDialogFragment
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
@ -58,8 +58,7 @@ class MainActivity : FragmentActivity() {
|
||||||
.add(R.id.main_browse_fragment, infoFragment)
|
.add(R.id.main_browse_fragment, infoFragment)
|
||||||
.add(R.id.main_browse_fragment, channelFragment)
|
.add(R.id.main_browse_fragment, channelFragment)
|
||||||
.add(R.id.main_browse_fragment, mainFragment)
|
.add(R.id.main_browse_fragment, mainFragment)
|
||||||
.hide(infoFragment)
|
.hide(mainFragment)
|
||||||
.hide(channelFragment)
|
|
||||||
.commit()
|
.commit()
|
||||||
mainFragment.view?.requestFocus()
|
mainFragment.view?.requestFocus()
|
||||||
}
|
}
|
||||||
|
|
@ -70,7 +69,7 @@ class MainActivity : FragmentActivity() {
|
||||||
channelNum = sharedPref.getBoolean(CHANNEL_NUM, channelNum)
|
channelNum = sharedPref.getBoolean(CHANNEL_NUM, channelNum)
|
||||||
|
|
||||||
versionName = getPackageInfo().versionName
|
versionName = getPackageInfo().versionName
|
||||||
dialogFragment = MyDialogFragment(versionName, channelReversal, channelNum)
|
settingFragment = SettingFragment(versionName, channelReversal, channelNum)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showInfoFragment(tvViewModel: TVViewModel) {
|
fun showInfoFragment(tvViewModel: TVViewModel) {
|
||||||
|
|
@ -80,6 +79,20 @@ class MainActivity : FragmentActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showChannel(channel: String) {
|
||||||
|
if (!mainFragment.isHidden) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settingFragment.isVisible) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (channelNum) {
|
||||||
|
channelFragment.show(channel)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun play(tvViewModel: TVViewModel) {
|
fun play(tvViewModel: TVViewModel) {
|
||||||
playerFragment.play(tvViewModel)
|
playerFragment.play(tvViewModel)
|
||||||
mainFragment.view?.requestFocus()
|
mainFragment.view?.requestFocus()
|
||||||
|
|
@ -214,20 +227,20 @@ class MainActivity : FragmentActivity() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(TAG, "dialogFragment ${dialogFragment.isVisible}")
|
Log.i(TAG, "settingFragment ${settingFragment.isVisible}")
|
||||||
if (!dialogFragment.isVisible) {
|
if (!settingFragment.isVisible) {
|
||||||
dialogFragment.show(supportFragmentManager, "settings_dialog")
|
settingFragment.show(supportFragmentManager, "setting")
|
||||||
handler.removeCallbacks(hideHelp)
|
handler.removeCallbacks(hideHelp)
|
||||||
handler.postDelayed(hideHelp, delayHideHelp)
|
handler.postDelayed(hideHelp, delayHideHelp)
|
||||||
} else {
|
} else {
|
||||||
handler.removeCallbacks(hideHelp)
|
handler.removeCallbacks(hideHelp)
|
||||||
dialogFragment.dismiss()
|
settingFragment.dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val hideHelp = Runnable {
|
private val hideHelp = Runnable {
|
||||||
if (dialogFragment.isVisible) {
|
if (settingFragment.isVisible) {
|
||||||
dialogFragment.dismiss()
|
settingFragment.dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -283,20 +296,6 @@ class MainActivity : FragmentActivity() {
|
||||||
}, 2000)
|
}, 2000)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showChannel(channel: String) {
|
|
||||||
if (!mainFragment.isHidden) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dialogFragment.isVisible) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (channelNum) {
|
|
||||||
channelFragment.show(channel)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
||||||
when (keyCode) {
|
when (keyCode) {
|
||||||
KeyEvent.KEYCODE_0 -> {
|
KeyEvent.KEYCODE_0 -> {
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,6 @@ class MainFragment : BrowseSupportFragment() {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
|
|
||||||
activity?.let { request.initYSP(it) }
|
activity?.let { request.initYSP(it) }
|
||||||
|
|
||||||
sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
|
sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
|
||||||
|
|
||||||
loadRows()
|
loadRows()
|
||||||
|
|
@ -100,7 +99,6 @@ class MainFragment : BrowseSupportFragment() {
|
||||||
if (check(tvViewModel)) {
|
if (check(tvViewModel)) {
|
||||||
(activity as? MainActivity)?.play(tvViewModel)
|
(activity as? MainActivity)?.play(tvViewModel)
|
||||||
(activity as? MainActivity)?.showInfoFragment(tvViewModel)
|
(activity as? MainActivity)?.showInfoFragment(tvViewModel)
|
||||||
|
|
||||||
setSelectedPosition(
|
setSelectedPosition(
|
||||||
tvViewModel.getRowPosition(), true,
|
tvViewModel.getRowPosition(), true,
|
||||||
SelectItemViewHolderTask(tvViewModel.getItemPosition())
|
SelectItemViewHolderTask(tvViewModel.getItemPosition())
|
||||||
|
|
@ -114,58 +112,6 @@ class MainFragment : BrowseSupportFragment() {
|
||||||
fragmentReady()
|
fragmentReady()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
super.onDestroy()
|
|
||||||
handler.removeCallbacks(mUpdateProgramRunnable)
|
|
||||||
with(sharedPref!!.edit()) {
|
|
||||||
putInt("position", itemPosition)
|
|
||||||
apply()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun updateProgram(tvViewModel: TVViewModel) {
|
|
||||||
val timestamp = getDateTimestamp()
|
|
||||||
if (timestamp - tvViewModel.programUpdateTime > 60) {
|
|
||||||
if (tvViewModel.program.value!!.isEmpty()) {
|
|
||||||
tvViewModel.programUpdateTime = timestamp
|
|
||||||
request.fetchProgram(tvViewModel)
|
|
||||||
} else {
|
|
||||||
if (timestamp - tvViewModel.program.value!!.last().et < 600) {
|
|
||||||
tvViewModel.programUpdateTime = timestamp
|
|
||||||
request.fetchProgram(tvViewModel)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
inner class UpdateProgramRunnable : Runnable {
|
|
||||||
override fun run() {
|
|
||||||
tvListViewModel.getTVListViewModel().value?.filter { it.programId.value != null }
|
|
||||||
?.forEach { tvViewModel ->
|
|
||||||
updateProgram(
|
|
||||||
tvViewModel
|
|
||||||
)
|
|
||||||
}
|
|
||||||
handler.postDelayed(this, 60000)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun check(tvViewModel: TVViewModel): Boolean {
|
|
||||||
val title = tvViewModel.title.value
|
|
||||||
val videoUrl = tvViewModel.videoIndex.value?.let { tvViewModel.videoUrl.value?.get(it) }
|
|
||||||
if (videoUrl == null || videoUrl == "") {
|
|
||||||
Log.e(TAG, "$title videoUrl is empty")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
if (videoUrl == lastVideoUrl) {
|
|
||||||
Log.e(TAG, "$title videoUrl is duplication")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
fun toLastPosition() {
|
fun toLastPosition() {
|
||||||
setSelectedPosition(
|
setSelectedPosition(
|
||||||
selectedPosition, false,
|
selectedPosition, false,
|
||||||
|
|
@ -206,22 +152,35 @@ class MainFragment : BrowseSupportFragment() {
|
||||||
|
|
||||||
adapter = rowsAdapter
|
adapter = rowsAdapter
|
||||||
|
|
||||||
itemPosition = sharedPref?.getInt("position", 0)!!
|
itemPosition = sharedPref?.getInt(POSITION, 0)!!
|
||||||
if (itemPosition >= tvListViewModel.size()) {
|
if (itemPosition >= tvListViewModel.size()) {
|
||||||
itemPosition = 0
|
itemPosition = 0
|
||||||
}
|
}
|
||||||
tvListViewModel.setItemPosition(itemPosition)
|
tvListViewModel.setItemPosition(itemPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun check(tvViewModel: TVViewModel): Boolean {
|
||||||
|
val title = tvViewModel.title.value
|
||||||
|
val videoUrl = tvViewModel.videoIndex.value?.let { tvViewModel.videoUrl.value?.get(it) }
|
||||||
|
if (videoUrl == null || videoUrl == "") {
|
||||||
|
Log.e(TAG, "$title videoUrl is empty")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (videoUrl == lastVideoUrl) {
|
||||||
|
Log.e(TAG, "$title videoUrl is duplication")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
fun fragmentReady() {
|
fun fragmentReady() {
|
||||||
ready++
|
ready++
|
||||||
Log.i(TAG, "ready $ready")
|
Log.i(TAG, "ready $ready")
|
||||||
if (ready == 4) {
|
if (ready == 4) {
|
||||||
// request.fetchPage()
|
// request.fetchPage()
|
||||||
val tvViewModel = tvListViewModel.getTVViewModel(itemPosition)
|
tvListViewModel.getTVViewModel(itemPosition)?.changed()
|
||||||
tvViewModel?.changed()
|
|
||||||
|
|
||||||
(activity as? MainActivity)?.switchMainFragment()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -322,12 +281,56 @@ class MainFragment : BrowseSupportFragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateProgram(tvViewModel: TVViewModel) {
|
||||||
|
val timestamp = getDateTimestamp()
|
||||||
|
if (timestamp - tvViewModel.programUpdateTime > 60) {
|
||||||
|
if (tvViewModel.program.value!!.isEmpty()) {
|
||||||
|
tvViewModel.programUpdateTime = timestamp
|
||||||
|
request.fetchProgram(tvViewModel)
|
||||||
|
} else {
|
||||||
|
if (timestamp - tvViewModel.program.value!!.last().et < 600) {
|
||||||
|
tvViewModel.programUpdateTime = timestamp
|
||||||
|
request.fetchProgram(tvViewModel)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class UpdateProgramRunnable : Runnable {
|
||||||
|
override fun run() {
|
||||||
|
tvListViewModel.getTVListViewModel().value?.filter { it.programId.value != null }
|
||||||
|
?.forEach { tvViewModel ->
|
||||||
|
updateProgram(
|
||||||
|
tvViewModel
|
||||||
|
)
|
||||||
|
}
|
||||||
|
handler.postDelayed(this, 60000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onStop() {
|
||||||
|
Log.i(TAG, "onStop")
|
||||||
|
super.onStop()
|
||||||
|
with(sharedPref!!.edit()) {
|
||||||
|
putInt(POSITION, itemPosition)
|
||||||
|
apply()
|
||||||
|
}
|
||||||
|
Log.i(TAG, "POSITION saved")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
Log.i(TAG, "onDestroy")
|
||||||
|
super.onDestroy()
|
||||||
|
handler.removeCallbacks(mUpdateProgramRunnable)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
view!!.requestFocus()
|
view?.post { view?.requestFocus() }
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "MainFragment"
|
private const val TAG = "MainFragment"
|
||||||
|
private const val POSITION = "position"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,7 +8,7 @@ import androidx.fragment.app.DialogFragment
|
||||||
import com.lizongying.mytv.databinding.DialogBinding
|
import com.lizongying.mytv.databinding.DialogBinding
|
||||||
|
|
||||||
|
|
||||||
class MyDialogFragment(private val versionName: String,
|
class SettingFragment(private val versionName: String,
|
||||||
private val channelReversal: Boolean,
|
private val channelReversal: Boolean,
|
||||||
private val channelNum: Boolean,
|
private val channelNum: Boolean,
|
||||||
) :
|
) :
|
||||||
|
|
@ -52,7 +52,7 @@ class MyDialogFragment(private val versionName: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG = "MyDialogFragment"
|
const val TAG = "SettingFragment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue