mirror of
https://github.com/lizongying/my-tv.git
synced 2026-10-26 22:26:29 +08:00
add reset
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
### v2.0.5
|
||||||
|
|
||||||
|
* 设置页增加恢复默认按钮,目前只用于同步系统时间
|
||||||
|
|
||||||
### v2.0.4
|
### v2.0.4
|
||||||
|
|
||||||
* 修复不能播放的问题
|
* 修复不能播放的问题
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".MyTvApplication"
|
android:name=".MyTVApplication"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:banner="@drawable/banner"
|
android:banner="@drawable/banner"
|
||||||
android:icon="@drawable/logo"
|
android:icon="@drawable/logo"
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class CardAdapter(
|
|||||||
val inflater = LayoutInflater.from(parent.context)
|
val inflater = LayoutInflater.from(parent.context)
|
||||||
val binding = CardBinding.inflate(inflater, parent, false)
|
val binding = CardBinding.inflate(inflater, parent, false)
|
||||||
|
|
||||||
val application = mainFragment.requireActivity().applicationContext as MyTvApplication
|
val application = mainFragment.requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.card.layoutParams.width = application.px2Px(binding.card.layoutParams.width)
|
binding.card.layoutParams.width = application.px2Px(binding.card.layoutParams.width)
|
||||||
binding.card.layoutParams.height = application.px2Px(binding.card.layoutParams.height)
|
binding.card.layoutParams.height = application.px2Px(binding.card.layoutParams.height)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class ChannelFragment : Fragment() {
|
|||||||
_binding = ChannelBinding.inflate(inflater, container, false)
|
_binding = ChannelBinding.inflate(inflater, container, false)
|
||||||
_binding!!.root.visibility = View.GONE
|
_binding!!.root.visibility = View.GONE
|
||||||
|
|
||||||
val application = requireActivity().applicationContext as MyTvApplication
|
val application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.channel.layoutParams.width = application.px2Px(binding.channel.layoutParams.width)
|
binding.channel.layoutParams.width = application.px2Px(binding.channel.layoutParams.width)
|
||||||
binding.channel.layoutParams.height = application.px2Px(binding.channel.layoutParams.height)
|
binding.channel.layoutParams.height = application.px2Px(binding.channel.layoutParams.height)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class ErrorFragment : Fragment() {
|
|||||||
): View {
|
): View {
|
||||||
_binding = ErrorBinding.inflate(inflater, container, false)
|
_binding = ErrorBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
val application = requireActivity().applicationContext as MyTvApplication
|
val application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.logo.layoutParams.width = application.px2Px(binding.logo.layoutParams.width)
|
binding.logo.layoutParams.width = application.px2Px(binding.logo.layoutParams.width)
|
||||||
binding.logo.layoutParams.height = application.px2Px(binding.logo.layoutParams.height)
|
binding.logo.layoutParams.height = application.px2Px(binding.logo.layoutParams.height)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class InfoFragment : Fragment() {
|
|||||||
): View {
|
): View {
|
||||||
_binding = InfoBinding.inflate(inflater, container, false)
|
_binding = InfoBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
val application = requireActivity().applicationContext as MyTvApplication
|
val application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.info.layoutParams.width = application.px2Px(binding.info.layoutParams.width)
|
binding.info.layoutParams.width = application.px2Px(binding.info.layoutParams.width)
|
||||||
binding.info.layoutParams.height = application.px2Px(binding.info.layoutParams.height)
|
binding.info.layoutParams.height = application.px2Px(binding.info.layoutParams.height)
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
|
|
||||||
class ItemDecoration(context: Context) : RecyclerView.ItemDecoration() {
|
class ItemDecoration(context: Context) : RecyclerView.ItemDecoration() {
|
||||||
|
|
||||||
private var application: MyTvApplication
|
private var application: MyTVApplication
|
||||||
|
|
||||||
init {
|
init {
|
||||||
application = context.applicationContext as MyTvApplication
|
application = context.applicationContext as MyTVApplication
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemOffsets(
|
override fun getItemOffsets(
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class LoadingFragment : Fragment() {
|
|||||||
): View {
|
): View {
|
||||||
_binding = LoadingBinding.inflate(inflater, container, false)
|
_binding = LoadingBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
val application = requireActivity().applicationContext as MyTvApplication
|
val application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.bar.layoutParams.width = application.px2Px(binding.bar.layoutParams.width)
|
binding.bar.layoutParams.width = application.px2Px(binding.bar.layoutParams.width)
|
||||||
binding.bar.layoutParams.height = application.px2Px(binding.bar.layoutParams.height)
|
binding.bar.layoutParams.height = application.px2Px(binding.bar.layoutParams.height)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import android.util.Log
|
|||||||
import android.view.GestureDetector
|
import android.view.GestureDetector
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
|
import android.view.View
|
||||||
import android.view.View.SYSTEM_UI_FLAG_FULLSCREEN
|
import android.view.View.SYSTEM_UI_FLAG_FULLSCREEN
|
||||||
import android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
import android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||||
import android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
import android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
@@ -50,7 +51,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
|
|||||||
Utils.setRequestListener(this)
|
Utils.setRequestListener(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun syncTime() {
|
fun syncTime() {
|
||||||
lifecycleScope.launch(Dispatchers.IO) {
|
lifecycleScope.launch(Dispatchers.IO) {
|
||||||
val utilsJob = async(start = CoroutineStart.LAZY) { Utils.init() }
|
val utilsJob = async(start = CoroutineStart.LAZY) { Utils.init() }
|
||||||
utilsJob.start()
|
utilsJob.start()
|
||||||
@@ -59,9 +60,6 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
|
|||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
|
||||||
|
|
||||||
Request.setRequestListener(this)
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
val lp = window.attributes
|
val lp = window.attributes
|
||||||
@@ -70,6 +68,17 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
|
|||||||
window.setAttributes(lp)
|
window.setAttributes(lp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
window.decorView.apply {
|
||||||
|
systemUiVisibility =
|
||||||
|
SYSTEM_UI_FLAG_FULLSCREEN or
|
||||||
|
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
|
||||||
|
SYSTEM_UI_FLAG_HIDE_NAVIGATION or
|
||||||
|
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
|
||||||
|
View.SYSTEM_UI_FLAG_IMMERSIVE
|
||||||
|
}
|
||||||
|
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||||
window.decorView.systemUiVisibility =
|
window.decorView.systemUiVisibility =
|
||||||
@@ -82,6 +91,10 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
|
|||||||
// window.navigationBarColor = Color.TRANSPARENT
|
// window.navigationBarColor = Color.TRANSPARENT
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
setContentView(R.layout.activity_main)
|
||||||
|
|
||||||
|
Request.setRequestListener(this)
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
val transaction = supportFragmentManager.beginTransaction()
|
val transaction = supportFragmentManager.beginTransaction()
|
||||||
.add(R.id.main_browse_fragment, playerFragment)
|
.add(R.id.main_browse_fragment, playerFragment)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
|
|||||||
|
|
||||||
private var lastVideoUrl = ""
|
private var lastVideoUrl = ""
|
||||||
|
|
||||||
private lateinit var application: MyTvApplication
|
private lateinit var application: MyTVApplication
|
||||||
|
|
||||||
private lateinit var gestureDetector: GestureDetector
|
private lateinit var gestureDetector: GestureDetector
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
|
|||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
_binding = MenuBinding.inflate(inflater, container, false)
|
_binding = MenuBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
application = requireActivity().applicationContext as MyTvApplication
|
application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.menu.layoutParams.width = application.shouldWidthPx()
|
binding.menu.layoutParams.width = application.shouldWidthPx()
|
||||||
binding.menu.layoutParams.height = application.shouldHeightPx()
|
binding.menu.layoutParams.height = application.shouldHeightPx()
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ import android.view.WindowManager
|
|||||||
import androidx.multidex.MultiDex
|
import androidx.multidex.MultiDex
|
||||||
|
|
||||||
|
|
||||||
class MyTvApplication : Application() {
|
class MyTVApplication : Application() {
|
||||||
private lateinit var displayMetrics: DisplayMetrics
|
private lateinit var displayMetrics: DisplayMetrics
|
||||||
private lateinit var realDisplayMetrics: DisplayMetrics
|
private lateinit var realDisplayMetrics: DisplayMetrics
|
||||||
|
|
||||||
@@ -14,6 +14,7 @@ import androidx.core.content.ContextCompat
|
|||||||
import androidx.core.view.marginEnd
|
import androidx.core.view.marginEnd
|
||||||
import androidx.core.view.marginTop
|
import androidx.core.view.marginTop
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
|
import com.lizongying.mytv.api.YSP
|
||||||
import com.lizongying.mytv.databinding.SettingBinding
|
import com.lizongying.mytv.databinding.SettingBinding
|
||||||
|
|
||||||
|
|
||||||
@@ -97,7 +98,14 @@ class SettingFragment : DialogFragment() {
|
|||||||
requestInstallPermissions()
|
requestInstallPermissions()
|
||||||
}
|
}
|
||||||
|
|
||||||
val application = requireActivity().applicationContext as MyTvApplication
|
binding.clear.setOnClickListener {
|
||||||
|
(requireActivity() as MainActivity).syncTime()
|
||||||
|
SP.guid = ""
|
||||||
|
YSP.getGuid()
|
||||||
|
}
|
||||||
|
|
||||||
|
val application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
val textSize = application.px2PxFont(binding.switchChannelReversal.textSize)
|
||||||
|
|
||||||
binding.content.layoutParams.width =
|
binding.content.layoutParams.width =
|
||||||
application.px2Px(binding.content.layoutParams.width)
|
application.px2Px(binding.content.layoutParams.width)
|
||||||
@@ -108,51 +116,41 @@ class SettingFragment : DialogFragment() {
|
|||||||
application.px2Px(binding.content.paddingBottom)
|
application.px2Px(binding.content.paddingBottom)
|
||||||
)
|
)
|
||||||
binding.name.textSize = application.px2PxFont(binding.name.textSize)
|
binding.name.textSize = application.px2PxFont(binding.name.textSize)
|
||||||
binding.version.textSize = application.px2PxFont(binding.version.textSize)
|
binding.version.textSize = textSize
|
||||||
val layoutParamsVersion = binding.version.layoutParams as ViewGroup.MarginLayoutParams
|
val layoutParamsVersion = binding.version.layoutParams as ViewGroup.MarginLayoutParams
|
||||||
layoutParamsVersion.topMargin = application.px2Px(binding.version.marginTop)
|
layoutParamsVersion.topMargin = application.px2Px(binding.version.marginTop)
|
||||||
binding.version.layoutParams = layoutParamsVersion
|
binding.version.layoutParams = layoutParamsVersion
|
||||||
|
|
||||||
binding.checkVersion.textSize = application.px2PxFont(binding.checkVersion.textSize)
|
binding.checkVersion.textSize = textSize
|
||||||
val layoutParamsCheckVersion =
|
val layoutParamsCheckVersion =
|
||||||
binding.checkVersion.layoutParams as ViewGroup.MarginLayoutParams
|
binding.checkVersion.layoutParams as ViewGroup.MarginLayoutParams
|
||||||
layoutParamsCheckVersion.marginEnd = application.px2Px(binding.checkVersion.marginEnd)
|
layoutParamsCheckVersion.marginEnd = application.px2Px(binding.checkVersion.marginEnd)
|
||||||
binding.checkVersion.layoutParams = layoutParamsCheckVersion
|
binding.checkVersion.layoutParams = layoutParamsCheckVersion
|
||||||
|
|
||||||
binding.versionName.textSize = application.px2PxFont(binding.versionName.textSize)
|
binding.versionName.textSize = textSize
|
||||||
|
|
||||||
binding.exit.textSize = application.px2PxFont(binding.exit.textSize)
|
binding.clear.textSize = textSize
|
||||||
|
binding.exit.textSize = textSize
|
||||||
|
|
||||||
binding.switchChannelReversal.textSize =
|
val layoutParamsChannelSwitch =
|
||||||
application.px2PxFont(binding.switchChannelReversal.textSize)
|
|
||||||
val layoutParamsChannelReversal =
|
|
||||||
binding.switchChannelReversal.layoutParams as ViewGroup.MarginLayoutParams
|
binding.switchChannelReversal.layoutParams as ViewGroup.MarginLayoutParams
|
||||||
layoutParamsChannelReversal.topMargin =
|
layoutParamsChannelSwitch.topMargin =
|
||||||
application.px2Px(binding.switchChannelReversal.marginTop)
|
application.px2Px(binding.switchChannelReversal.marginTop)
|
||||||
binding.switchChannelReversal.layoutParams = layoutParamsChannelReversal
|
|
||||||
|
|
||||||
binding.switchChannelNum.textSize = application.px2PxFont(binding.switchChannelNum.textSize)
|
binding.switchChannelReversal.textSize = textSize
|
||||||
val layoutParamsChannelNum =
|
binding.switchChannelReversal.layoutParams = layoutParamsChannelSwitch
|
||||||
binding.switchChannelNum.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
layoutParamsChannelNum.topMargin = application.px2Px(binding.switchChannelNum.marginTop)
|
|
||||||
binding.switchChannelNum.layoutParams = layoutParamsChannelNum
|
|
||||||
|
|
||||||
binding.switchTime.textSize = application.px2PxFont(binding.switchTime.textSize)
|
binding.switchChannelNum.textSize = textSize
|
||||||
val layoutParamsTime = binding.switchTime.layoutParams as ViewGroup.MarginLayoutParams
|
binding.switchChannelNum.layoutParams = layoutParamsChannelSwitch
|
||||||
layoutParamsTime.topMargin = application.px2Px(binding.switchTime.marginTop)
|
|
||||||
binding.switchTime.layoutParams = layoutParamsTime
|
|
||||||
|
|
||||||
binding.switchBootStartup.textSize =
|
binding.switchTime.textSize = textSize
|
||||||
application.px2PxFont(binding.switchBootStartup.textSize)
|
binding.switchTime.layoutParams = layoutParamsChannelSwitch
|
||||||
val layoutParamsBootStartup =
|
|
||||||
binding.switchBootStartup.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
layoutParamsBootStartup.topMargin = application.px2Px(binding.switchBootStartup.marginTop)
|
|
||||||
binding.switchBootStartup.layoutParams = layoutParamsBootStartup
|
|
||||||
|
|
||||||
binding.switchGrid.textSize = application.px2PxFont(binding.switchGrid.textSize)
|
binding.switchBootStartup.textSize = textSize
|
||||||
val layoutParamsGrid = binding.switchGrid.layoutParams as ViewGroup.MarginLayoutParams
|
binding.switchBootStartup.layoutParams = layoutParamsChannelSwitch
|
||||||
layoutParamsGrid.topMargin = application.px2Px(binding.switchGrid.marginTop)
|
|
||||||
binding.switchGrid.layoutParams = layoutParamsGrid
|
binding.switchGrid.textSize = textSize
|
||||||
|
binding.switchGrid.layoutParams = layoutParamsChannelSwitch
|
||||||
|
|
||||||
binding.appreciate.layoutParams.width =
|
binding.appreciate.layoutParams.width =
|
||||||
application.px2Px(binding.appreciate.layoutParams.width)
|
application.px2Px(binding.appreciate.layoutParams.width)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class TimeFragment : Fragment() {
|
|||||||
): View {
|
): View {
|
||||||
_binding = TimeBinding.inflate(inflater, container, false)
|
_binding = TimeBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
val application = requireActivity().applicationContext as MyTvApplication
|
val application = requireActivity().applicationContext as MyTVApplication
|
||||||
|
|
||||||
binding.time.layoutParams.width = application.px2Px(binding.time.layoutParams.width)
|
binding.time.layoutParams.width = application.px2Px(binding.time.layoutParams.width)
|
||||||
binding.time.layoutParams.height = application.px2Px(binding.time.layoutParams.height)
|
binding.time.layoutParams.height = application.px2Px(binding.time.layoutParams.height)
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.lizongying.mytv.api
|
package com.lizongying.mytv.api
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
|
||||||
import com.lizongying.mytv.SP
|
import com.lizongying.mytv.SP
|
||||||
import com.lizongying.mytv.Utils.getDateTimestamp
|
import com.lizongying.mytv.Utils.getDateTimestamp
|
||||||
import com.lizongying.mytv.models.TVViewModel
|
import com.lizongying.mytv.models.TVViewModel
|
||||||
@@ -103,15 +102,15 @@ object YSP {
|
|||||||
cKey =
|
cKey =
|
||||||
encryptor.encrypt(cnlid, timeStr, appVer, guid, platform)
|
encryptor.encrypt(cnlid, timeStr, appVer, guid, platform)
|
||||||
|
|
||||||
Log.i(TAG,"yspsdkinput ${"""{"cnlid":"$cnlid","livepid":"$livepid","stream":"$stream","guid":"$guid","cKey":"$cKey","adjust":$adjust,"sphttps":"$sphttps","platform":"$platform","cmd":"$cmd","encryptVer":"$encryptVer","dtype":"$dtype","devid":"$devid","otype":"$otype","appVer":"$appVer","app_version":"$appVersion","channel":"$channel","defn":"$defn"}"""}" )
|
yspsdkinput =
|
||||||
|
md("adjust=$adjust&app_version=$appVersion&appVer=$appVer&channel=$channel&cKey=$cKey&cmd=$cmd&cnlid=$cnlid&defn=$defn&devid=$devid&dtype=$dtype&encryptVer=$encryptVer&guid=$guid&livepid=$livepid&otype=$otype&platform=$platform&sphttps=$sphttps&stream=$stream")
|
||||||
yspsdkinput = md("adjust=$adjust&app_version=$appVersion&appVer=$appVer&channel=$channel&cKey=$cKey&cmd=$cmd&cnlid=$cnlid&defn=$defn&devid=$devid&dtype=$dtype&encryptVer=$encryptVer&guid=$guid&livepid=$livepid&otype=$otype&platform=$platform&sphttps=$sphttps&stream=$stream")
|
|
||||||
|
|
||||||
nseqId++
|
nseqId++
|
||||||
|
|
||||||
nrequest_id = "999999" + getRand() + getTimeStr()
|
nrequest_id = "999999" + getRand() + getTimeStr()
|
||||||
|
|
||||||
openapi_signature = md("yspappid:519748109;host:www.yangshipin.cn;protocol:https:;token:$token2;input:$yspsdkinput-$guid-$nseqId-$nrequest_id;")
|
openapi_signature =
|
||||||
|
md("yspappid:519748109;host:www.yangshipin.cn;protocol:https:;token:$token2;input:$yspsdkinput-$guid-$nseqId-$nrequest_id;")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun md(str: String): String {
|
fun md(str: String): String {
|
||||||
@@ -148,6 +147,7 @@ object YSP {
|
|||||||
var guid = SP.guid
|
var guid = SP.guid
|
||||||
if (guid.length < 18) {
|
if (guid.length < 18) {
|
||||||
guid = generateGuid()
|
guid = generateGuid()
|
||||||
|
this.guid = guid
|
||||||
SP.guid = guid
|
SP.guid = guid
|
||||||
}
|
}
|
||||||
return guid
|
return guid
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class TVViewModel(private var tv: TV) : ViewModel() {
|
|||||||
private var itemPosition: Int = 0
|
private var itemPosition: Int = 0
|
||||||
|
|
||||||
var retryTimes = 0
|
var retryTimes = 0
|
||||||
var retryMaxTimes = 1
|
var retryMaxTimes = 8
|
||||||
var authYSPRetryTimes = 0
|
var authYSPRetryTimes = 0
|
||||||
var authYSPRetryMaxTimes = 3
|
var authYSPRetryMaxTimes = 3
|
||||||
var tokenYSPRetryTimes = 0
|
var tokenYSPRetryTimes = 0
|
||||||
|
|||||||
@@ -55,6 +55,13 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<Button
|
||||||
|
android:id="@+id/clear"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:text="@string/clear"
|
||||||
|
/>
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/exit"
|
android:id="@+id/exit"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|||||||
@@ -6,5 +6,6 @@
|
|||||||
<string name="title_boot_startup">开机自启</string>
|
<string name="title_boot_startup">开机自启</string>
|
||||||
<string name="title_grid">频道列表采用网格样式</string>
|
<string name="title_grid">频道列表采用网格样式</string>
|
||||||
<string name="title_time">显示时间</string>
|
<string name="title_time">显示时间</string>
|
||||||
|
<string name="clear">恢复默认</string>
|
||||||
<string name="exit">退出应用</string>
|
<string name="exit">退出应用</string>
|
||||||
</resources>
|
</resources>
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
{"version_code": 33555456, "version_name": "v2.0.4"}
|
{"version_code": 33555712, "version_name": "v2.0.5"}
|
||||||
|
|||||||
Reference in New Issue
Block a user