Compare commits
9 Commits
v4.9.3-333
...
v4.9.6-336
| Author | SHA1 | Date | |
|---|---|---|---|
| f826dc07c6 | |||
| 34670d08c0 | |||
| 5e5646468e | |||
| 039203408a | |||
| 60b325812e | |||
| 06a43f617b | |||
| 85d3412fd8 | |||
| 71b8cbbef3 | |||
| dfc0183a14 |
@ -158,9 +158,11 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy
|
||||
}
|
||||
if (this.getClass().getName().equals(xapkUnzipActivity) && !TextUtils.isEmpty(xapkUrl)) {
|
||||
DownloadEntity downloadEntity = DownloadManager.getInstance(this).getDownloadEntityByUrl(xapkUrl);
|
||||
PackageInstaller.install(this, downloadEntity, false);
|
||||
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "");
|
||||
SPUtils.setString(Constants.SP_XAPK_URL, "");
|
||||
if (downloadEntity != null) {
|
||||
PackageInstaller.install(this, downloadEntity, false);
|
||||
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "");
|
||||
SPUtils.setString(Constants.SP_XAPK_URL, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -956,6 +956,8 @@ public class LogUtils {
|
||||
}
|
||||
|
||||
public static void uploadPackageCheck(String event, String action, GameEntity gameEntity, String linkTitle, String linkDesc, String downloadGameId, String downloadGameName) {
|
||||
if (gameEntity == null) return;
|
||||
|
||||
PackageDialogEntity packageDialog = gameEntity.getPackageDialog();
|
||||
if (packageDialog == null) return;
|
||||
JSONObject object = new JSONObject();
|
||||
|
||||
@ -274,7 +274,9 @@ object QuickLoginHelper {
|
||||
|
||||
private fun startCodeLoginPage(context: Context, entrance: String, isFinishAuth: Boolean, isFromPermission: Boolean) {
|
||||
if (mPreDialog != null && mPreDialog!!.isShowing) {
|
||||
mPreDialog?.dismiss()
|
||||
tryWithDefaultCatch {
|
||||
mPreDialog?.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
if (isFinishAuth) {
|
||||
|
||||
@ -196,7 +196,9 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA
|
||||
setNavigationTitle(mName);
|
||||
mLibaoEntity = (LibaoEntity) HaloApp.get(LibaoEntity.TAG, false);
|
||||
isClickReceiveBtnIn = getIntent().getBooleanExtra(EntranceUtils.KEY_IS_CLICK_RECEIVE_BTN, false);
|
||||
mLibaoEntity.setClickReceiveBtnIn(isClickReceiveBtnIn);
|
||||
if (mLibaoEntity != null) {
|
||||
mLibaoEntity.setClickReceiveBtnIn(isClickReceiveBtnIn);
|
||||
}
|
||||
|
||||
mIsScroll = true;
|
||||
|
||||
@ -319,7 +321,11 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA
|
||||
CheckLoginUtils.checkLogin(this, mEntrance, () ->
|
||||
mLibaoDetailRv.postDelayed(() -> {
|
||||
if (mAdapter.libaoDetailTopViewHolder != null) {
|
||||
mAdapter.libaoDetailTopViewHolder.libaoCopyBtn.performClick();
|
||||
try {
|
||||
mAdapter.libaoDetailTopViewHolder.libaoCopyBtn.performClick();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}, 200)
|
||||
);
|
||||
|
||||
@ -24,7 +24,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
import com.gh.base.AppUncaughtHandler;
|
||||
import com.gh.base.BaseActivity;
|
||||
import com.gh.base.fragment.BaseFragment_ViewPager;
|
||||
@ -178,7 +177,11 @@ public class MainActivity extends BaseActivity {
|
||||
setStatusBarColor(Color.TRANSPARENT);
|
||||
|
||||
if (!ImageUtils.isFrescoInitialized()) {
|
||||
BigImageViewer.initialize(FrescoImageLoader.with(this));
|
||||
try {
|
||||
BigImageViewer.initialize(FrescoImageLoader.with(this));
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Fragment fragmentFromFM = getSupportFragmentManager().findFragmentById(R.id.layout_activity_content);
|
||||
|
||||
@ -276,7 +276,7 @@ class CategoryV2Fragment : LazyFragment() {
|
||||
if (position == 1 && SPUtils.getBoolean(Constants.SP_FIRST_ENTER_CATEGORY_V2, true)) {
|
||||
SPUtils.setBoolean(Constants.SP_FIRST_ENTER_CATEGORY_V2, false)
|
||||
mBinding?.drawerLayout?.postDelayed({
|
||||
openDrawer()
|
||||
tryCatchInRelease { openDrawer() }
|
||||
}, 200L)
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -174,8 +174,8 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() {
|
||||
},
|
||||
onPageScrolled = { position, positionOffset, _ ->
|
||||
if (position + 1 != mTabTitleList.size) {
|
||||
val currentAppBarColor = tabList[position].primaryColor
|
||||
val incomingAppBarColor = tabList[position + 1].primaryColor
|
||||
val currentAppBarColor = tabList.safelyGetInRelease(position)?.primaryColor ?: Color.WHITE
|
||||
val incomingAppBarColor = tabList.safelyGetInRelease(position + 1)?.primaryColor ?: Color.WHITE
|
||||
|
||||
val proximatelySelectedPosition = if (positionOffset < 0.5) position else position + 1
|
||||
|
||||
@ -186,8 +186,8 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() {
|
||||
}
|
||||
|
||||
// 颜色显示是否变更
|
||||
val isContentStyleChanged = tabList[proximatelySelectedPosition].useLightStyle != mIsDisplayingLightContent
|
||||
mIsDisplayingLightContent = tabList[proximatelySelectedPosition].useLightStyle
|
||||
val isContentStyleChanged = tabList.safelyGetInRelease(proximatelySelectedPosition)?.useLightStyle != mIsDisplayingLightContent
|
||||
mIsDisplayingLightContent = tabList.safelyGetInRelease(proximatelySelectedPosition)?.useLightStyle ?: false
|
||||
|
||||
mTabSelectedColor = if (mIsDisplayingLightContent) TAB_DEFAULT_COLOR_LIGHT else TAB_SELECTED_COLOR
|
||||
mTabDefaultColor = if (mIsDisplayingLightContent) TAB_DEFAULT_COLOR_LIGHT else TAB_DEFAULT_COLOR
|
||||
|
||||
@ -61,6 +61,13 @@ public class SearchToolWrapperFragment extends LazyFragment {
|
||||
.replace(R.id.wrapper_toolbar, mSearchToolbarFragment)
|
||||
.replace(R.id.wrapper_main_content, Objects.requireNonNull(mContentFragment)).commitAllowingStateLoss();
|
||||
|
||||
// 补上底部 tab 的高度
|
||||
inflatedView.findViewById(R.id.wrapperLl).setPadding(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
(int) requireContext().getResources().getDimension(R.dimen.main_bottom_tab_height));
|
||||
|
||||
mCachedView.post(() -> mSearchToolbarFragment.updateSearchToolbarColor(Color.WHITE));
|
||||
}
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import com.gh.base.BaseRecyclerViewHolder
|
||||
import com.gh.common.iinterface.IOffsetable
|
||||
import com.gh.common.util.TimeUtils
|
||||
import com.gh.common.util.dip2px
|
||||
import com.gh.common.util.tryCatchInRelease
|
||||
import com.gh.gamecenter.R
|
||||
import com.gh.gamecenter.databinding.GameHorizontalListBinding
|
||||
import com.gh.gamecenter.entity.GameEntity
|
||||
@ -51,7 +52,10 @@ class GameHorizontalSlideListViewHolder(val binding: GameHorizontalListBinding)
|
||||
binding.horizontalRv.scrollToPosition(0)
|
||||
}
|
||||
} else {
|
||||
binding.horizontalRv.scrollBy(offset, offset)
|
||||
// 可能会因为上下复用数据变化而出现 IndexOutOfBoundsException 异常,毕竟有局部更新功能...
|
||||
tryCatchInRelease {
|
||||
binding.horizontalRv.scrollBy(offset, offset)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,17 +1,15 @@
|
||||
package com.gh.gamecenter.simulatorgame
|
||||
|
||||
import android.app.Dialog
|
||||
import android.graphics.Color
|
||||
import android.graphics.Paint
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.*
|
||||
import androidx.core.content.ContextCompat
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter
|
||||
@ -122,7 +120,7 @@ class SimulatorGameFragment : NormalFragment() {
|
||||
})
|
||||
mViewModel.simulatorGameLoadSuccess.observe(viewLifecycleOwner, Observer {
|
||||
AppExecutor.uiExecutor.executeWithDelay(Runnable {
|
||||
showSimulatorGuide(it)
|
||||
tryCatchInRelease { showSimulatorGuide(it) }
|
||||
},500)
|
||||
})
|
||||
}
|
||||
|
||||
@ -16,7 +16,6 @@ import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.OrientationHelper
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.gh.base.fragment.BaseLazyFragment
|
||||
import com.gh.common.constant.Constants
|
||||
import com.gh.common.exposure.ExposureListener
|
||||
import com.gh.common.util.*
|
||||
import com.gh.common.videolog.VideoRecordUtils
|
||||
@ -558,10 +557,14 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener {
|
||||
}
|
||||
|
||||
fun findVisibleVideoViewByPosition(): DetailPlayerView? {
|
||||
val pos = findVisibleItemPosition()
|
||||
val holder = mBinding.recyclerview?.findViewHolderForAdapterPosition(pos)
|
||||
|
||||
return holder?.itemView as? DetailPlayerView
|
||||
// 页面被销毁重建时,旧 fragment 可能会收到 onActivityResult 的 callback ,这时 mBinding 为未初始化状态
|
||||
return if (::mBinding.isInitialized) {
|
||||
val pos = findVisibleItemPosition()
|
||||
val holder = mBinding.recyclerview?.findViewHolderForAdapterPosition(pos)
|
||||
holder?.itemView as? DetailPlayerView
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
private fun findVisibleItemPosition(): Int {
|
||||
|
||||
@ -105,7 +105,12 @@ public class HaloApp extends MultiDexApplication {
|
||||
}
|
||||
|
||||
public String getChannel() {
|
||||
return mChannel;
|
||||
// 存在 IO 初始化线程阻塞(万物皆可阻塞)导致 mChannel 为空的情况,这里特殊处理下
|
||||
if (TextUtils.isEmpty(mChannel)) {
|
||||
return "";
|
||||
} else {
|
||||
return mChannel;
|
||||
}
|
||||
}
|
||||
|
||||
public void setOAID(String oaid) {
|
||||
@ -144,7 +149,11 @@ public class HaloApp extends MultiDexApplication {
|
||||
|
||||
// 初始化 Fresco(BigImageViewer 已包含Fresco)
|
||||
if (!ImageUtils.isFrescoInitialized()) {
|
||||
BigImageViewer.initialize(FrescoImageLoader.with(this));
|
||||
try {
|
||||
BigImageViewer.initialize(FrescoImageLoader.with(this));
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
deviceRamSize = DeviceUtils.getTotalRamSizeOfDevice(this);
|
||||
|
||||
@ -71,7 +71,7 @@
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
<com.gh.common.view.Gh_ViewPager
|
||||
android:id="@+id/viewPager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
@ -7,8 +7,8 @@ ext {
|
||||
targetSdkVersion = 26
|
||||
|
||||
// application info (每个大版本之间的 versionCode 增加 20)
|
||||
versionCode = 333
|
||||
versionName = "4.9.3"
|
||||
versionCode = 336
|
||||
versionName = "4.9.6"
|
||||
applicationId = "com.gh.gamecenter"
|
||||
|
||||
// AndroidX
|
||||
|
||||
Reference in New Issue
Block a user