Compare commits
8 Commits
v5.32.5
...
v5.32.6-99
| Author | SHA1 | Date | |
|---|---|---|---|
| ae0f4c948b | |||
| d650739632 | |||
| 6f6a734cb5 | |||
| e510146775 | |||
| 8b863955a3 | |||
| 37155b96dd | |||
| e55d4d3332 | |||
| 10572e7b0b |
@ -920,9 +920,9 @@ object DirectUtils {
|
||||
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
}
|
||||
context.startActivity(browserIntent)
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
Utils.toast(context, "跳转地址无效")
|
||||
url.copyTextAndToast(context.getString(R.string.direct_to_external_browser_failed_toast))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -883,6 +883,7 @@ public class MainActivity extends BaseActivity {
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NotNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.clear();
|
||||
outState.putInt(CURRENT_PAGE, mMainWrapperFragment.getCurrentItem());
|
||||
if (mMainWrapperFragment != null) {
|
||||
outState.putInt(BaseFragment_ViewPager.ARGS_INDEX, mMainWrapperFragment.getCurrentItem());
|
||||
|
||||
@ -1,17 +1,22 @@
|
||||
package com.gh.gamecenter.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.SparseIntArray
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.util.forEach
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentPagerAdapter
|
||||
import com.gh.gamecenter.common.BuildConfig
|
||||
|
||||
/***
|
||||
* 支持替换Fragment的FragmentPagerAdapter
|
||||
*/
|
||||
class MainFragmentPagerAdapter(
|
||||
private val mContext: Context,
|
||||
private val mFragmentManager: FragmentManager,
|
||||
private val mFragmentsList: ArrayList<Fragment>
|
||||
private val mFragmentsList: ArrayList<Fragment>,
|
||||
) : FragmentPagerAdapter(mFragmentManager) {
|
||||
private val mFragmentPositionSparseArray = SparseIntArray() // 记录Fragment的位置
|
||||
private val mFragmentPositionUpdateSparseArray = SparseIntArray() // 记录更新后Fragment的位置
|
||||
@ -76,4 +81,24 @@ class MainFragmentPagerAdapter(
|
||||
override fun getItem(position: Int): Fragment = mFragmentsList[position]
|
||||
|
||||
override fun getItemId(position: Int): Long = mFragmentsList[position].hashCode().toLong()
|
||||
|
||||
override fun finishUpdate(container: ViewGroup) {
|
||||
// 替换Fragment闪退关联问题(REPLACE_FRAGMENT_CRASH)
|
||||
try {
|
||||
super.finishUpdate(container)
|
||||
} catch (e: Throwable) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
throw e
|
||||
} else {
|
||||
e.printStackTrace()
|
||||
|
||||
// 重启APP
|
||||
val pm = mContext.packageManager
|
||||
val intent = pm?.getLaunchIntentForPackage(mContext.packageName)
|
||||
val mainIntent = Intent.makeRestartActivityTask(intent!!.component)
|
||||
mContext.startActivity(mainIntent)
|
||||
Runtime.getRuntime().exit(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -105,7 +105,7 @@ class MainWrapperFragment : BaseFragment_ViewPager_Checkable(), OnBackPressedLis
|
||||
override fun getViewPagerId(): Int = R.id.lightgame_tab_viewpager
|
||||
override fun getCurrentItem() = mViewPager.currentItem
|
||||
override fun getChildCount(): Int = 5
|
||||
override fun provideAdapter(): PagerAdapter = MainFragmentPagerAdapter(childFragmentManager, mFragmentsList as ArrayList<Fragment>)
|
||||
override fun provideAdapter(): PagerAdapter = MainFragmentPagerAdapter(requireContext(), childFragmentManager, mFragmentsList as ArrayList<Fragment>)
|
||||
|
||||
override fun initFragmentList(fragments: MutableList<Fragment>) {
|
||||
mHomeFragment = HomeSearchToolWrapperFragment()
|
||||
@ -330,21 +330,7 @@ class MainWrapperFragment : BaseFragment_ViewPager_Checkable(), OnBackPressedLis
|
||||
homeArgs.putBoolean(EntranceConsts.KEY_IS_HOME, true)
|
||||
}
|
||||
|
||||
override fun restoreFragments(): ArrayList<Fragment> {
|
||||
val restoreFragments = super.restoreFragments()
|
||||
for (fragment in restoreFragments) {
|
||||
if (fragment is SearchToolWrapperFragment && fragment !is HomeSearchToolWrapperFragment) {
|
||||
mGameWrapperFragment = fragment
|
||||
} else if (fragment is HomeVideoFragment || fragment is HomeToolbarWrapperFragment || fragment is AmwayFragment || fragment is ForumDetailFragment) {
|
||||
mFourthFragment = fragment as ToolbarFragment?
|
||||
} else if (fragment is CommunityHomeFragment) {
|
||||
mCommunityHomeFragment = fragment
|
||||
} else if (fragment is HomeSearchToolWrapperFragment) {
|
||||
mHomeFragment = fragment
|
||||
}
|
||||
}
|
||||
return restoreFragments
|
||||
}
|
||||
override fun restoreFragments(): ArrayList<Fragment> = ArrayList()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
mViewModel = viewModelProviderFromParent(MainWrapperViewModel.Factory(HaloApp.getInstance()))
|
||||
|
||||
@ -199,6 +199,8 @@ public class SearchToolbarFragment extends BaseLazyFragment implements View.OnCl
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null && getArguments().getString(EntranceConsts.KEY_LOCATION) != null) {
|
||||
mLocation = getArguments().getString(EntranceConsts.KEY_LOCATION);
|
||||
} else {
|
||||
mLocation = "";
|
||||
}
|
||||
mHintIndex = 0;
|
||||
if (savedInstanceState != null) {
|
||||
|
||||
@ -6,6 +6,7 @@ import android.content.MutableContextWrapper
|
||||
import android.view.ViewGroup
|
||||
import android.webkit.WebResourceResponse
|
||||
import android.webkit.WebView
|
||||
import com.gh.common.util.PackageUtils
|
||||
import com.gh.common.view.RichEditor
|
||||
import com.gh.gamecenter.common.utils.EnvHelper
|
||||
import com.gh.gamecenter.common.utils.removeFromParent
|
||||
@ -40,6 +41,10 @@ object ArticleDetailWebCacheManager {
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
fun init(applicationContext: Context) {
|
||||
if (!PackageUtils.checkWebViewIsAvailable(applicationContext)) {
|
||||
return
|
||||
}
|
||||
|
||||
if (isInit) return
|
||||
|
||||
isInit = true
|
||||
@ -98,6 +103,10 @@ object ArticleDetailWebCacheManager {
|
||||
* 预初始化 WebView
|
||||
*/
|
||||
fun preInitRichEditor(context: Context) {
|
||||
if (!PackageUtils.checkWebViewIsAvailable(context)) {
|
||||
return
|
||||
}
|
||||
|
||||
// 避免未正常初始化的情况
|
||||
if (!isInit) {
|
||||
init(context.applicationContext)
|
||||
|
||||
@ -192,11 +192,13 @@ class HomeVideoFragment : BaseLazyFragment() {
|
||||
fun getCurrentFragment(): VideoDetailContainerFragment? {
|
||||
val mIsHomeVideo = arguments?.getBoolean(EntranceConsts.KEY_IS_HOME_VIDEO, false) ?: false
|
||||
return if (mIsHomeVideo) {
|
||||
if (mBinding.mViewPager.currentItem == 0) {
|
||||
newestVideoDetailFragment
|
||||
} else {
|
||||
recommendVideoDetailFragment
|
||||
}
|
||||
if (::mBinding.isInitialized) {
|
||||
if (mBinding.mViewPager.currentItem == 0) {
|
||||
newestVideoDetailFragment
|
||||
} else {
|
||||
recommendVideoDetailFragment
|
||||
}
|
||||
} else null
|
||||
} else {
|
||||
recommendVideoDetailFragment
|
||||
}
|
||||
|
||||
@ -520,4 +520,5 @@
|
||||
<string name="servers_calendar_no_remind_checked_hint">至少勾选一种提醒方式</string>
|
||||
<string name="servers_calendar_time_out_of_date">区服已开服,不能设置提醒</string>
|
||||
<string name="network_error_hint">网络异常,请检查手机网络状态</string>
|
||||
<string name="direct_to_external_browser_failed_toast">打开外部浏览器失败,已复制链接到粘贴板,请自行打开链接</string>
|
||||
</resources>
|
||||
|
||||
@ -7,8 +7,8 @@ ext {
|
||||
targetSdkVersion = 28
|
||||
|
||||
// application info (每个大版本之间的 versionCode 增加 20)
|
||||
versionCode = 995
|
||||
versionName = "5.32.5"
|
||||
versionCode = 996
|
||||
versionName = "5.32.6"
|
||||
applicationId = "com.gh.gamecenter"
|
||||
|
||||
// AndroidX
|
||||
|
||||
Reference in New Issue
Block a user