From acc6935608a99d1d172ad2a5900b0cbf0e726b33 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 12 May 2021 11:47:56 +0800 Subject: [PATCH 01/36] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83=20AP?= =?UTF-8?q?I=20=E5=88=87=E6=8D=A2=E5=88=B0=204.9.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index d908b526c5..f4e7da3817 100644 --- a/gradle.properties +++ b/gradle.properties @@ -50,8 +50,8 @@ QUICK_LOGIN_APPKEY=002BAABA2C078342DA33BEAB0A4C6A25 # hosts DEV_API_HOST=https\://dev-and-api.ghzs.com/v4d9d0/ -API_HOST=https\://and-api.ghzs.com/v4d8d0/ -SENSITIVE_API_HOST=https\://and-api.ghzs.com/v4d8d0/ +API_HOST=https\://and-api.ghzs.com/v4d9d0/ +SENSITIVE_API_HOST=https\://and-api.ghzs.com/v4d9d0/ # 请不要手动改动下面的值,除非你明确需要以某个apk作为基准包,需要打包请以scripts/tinker*.sh为准 TINKER_ENABLE= From 8c885e38a1d6dbae525023350372f0fae2d2d2f4 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 12 May 2021 11:50:34 +0800 Subject: [PATCH 02/36] =?UTF-8?q?=E5=AE=8C=E6=88=904=E6=9C=88=E5=85=89?= =?UTF-8?q?=E7=8E=AF=E5=89=8D=E7=AB=AF=E4=BC=98=E5=8C=96=E6=B1=87=E6=80=BB?= =?UTF-8?q?(6)=20https://git.ghzs.com/pm/halo-app-issues/-/issues/1236?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/DefaultUrlHandler.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/gh/common/DefaultUrlHandler.kt b/app/src/main/java/com/gh/common/DefaultUrlHandler.kt index 1f9da39d48..e5f74bffb6 100644 --- a/app/src/main/java/com/gh/common/DefaultUrlHandler.kt +++ b/app/src/main/java/com/gh/common/DefaultUrlHandler.kt @@ -379,11 +379,12 @@ object DefaultUrlHandler { DirectUtils.directToAnswerDetail(context, answerId, entrance, "") } } - contains("communities") && contains("article") -> { + ((contains("bbs")) && contains("article") || + (contains("communities")) && contains("article")) -> { var communityId = "" var type = "" var typeId = "" - val split = replace("/communities", "").replace(".html", "").split("/".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() + val split = replace("/communities", "").replace("/bbs", "").replace(".html", "").split("/".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() for (text in split) { if (TextUtils.isEmpty(communityId)) { communityId = text @@ -397,7 +398,7 @@ object DefaultUrlHandler { typeId = text } } - if ("articles" == type) { + if ("articles" == type || "article" == type) { DirectUtils.directToCommunityArticle( context, typeId, communityId, entrance, "文章链接") From 702da08bc40ede067257aa651b1243f9539a7cde Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Wed, 12 May 2021 18:58:18 +0800 Subject: [PATCH 03/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=97=AE=E9=A2=98:?= =?UTF-8?q?=E5=9C=A8=E9=AA=8C=E8=AF=81=E7=A0=81=E7=99=BB=E5=BD=95=E9=A1=B5?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E4=B8=80=E9=94=AE=E7=99=BB=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E7=84=B6=E5=90=8E=E6=8E=88=E6=9D=83=E7=94=B5=E8=AF=9D=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=90=8E=EF=BC=8C=E6=97=A0=E6=B3=95=E5=BC=B9=E8=B5=B7?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E7=99=BB=E5=BD=95=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/fragment/LoginFragment.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java index cf2b82a567..cfa1ac97f9 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java @@ -1,6 +1,7 @@ package com.gh.gamecenter.fragment; import android.Manifest; +import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; @@ -60,6 +61,7 @@ import com.gh.gamecenter.user.ApiResponse; import com.gh.gamecenter.user.LoginTag; import com.gh.gamecenter.user.UserViewModel; import com.halo.assistant.HaloApp; +import com.lightgame.utils.AppManager; import com.lightgame.view.CheckableImageView; import org.greenrobot.eventbus.EventBus; @@ -243,7 +245,7 @@ LoginFragment extends NormalFragment implements LoginUtils.onCaptchaCallBackList if (mStatus == LoginActivity.STATUS_FROM_QUICK_LOGIN_PAGE) { requireActivity().finish(); } else if (mStatus == LoginActivity.STATUS_FROM_QUICK_LOGIN_PERMISSION) { - startQuickLogin(); + showPermissionDialog(); } break; case R.id.checkIv: @@ -290,24 +292,26 @@ LoginFragment extends NormalFragment implements LoginUtils.onCaptchaCallBackList } } - private void startQuickLogin() { + private void showPermissionDialog() { if (requireContext().checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { - requireActivity().finish(); - QuickLoginHelper.startLogin(requireContext(), "一键登录权限弹窗"); + startQuickLogin(); } else { DialogUtils.showQuickLoginPermissionDialog( requireContext(), - () -> { - PermissionHelper.checkReadPhoneStatePermissionBeforeAction(requireContext(), () -> { - requireActivity().finish(); - QuickLoginHelper.startLogin(requireContext(), "一键登录权限弹窗"); - }); - }, + () -> PermissionHelper.checkReadPhoneStatePermissionBeforeAction(requireContext(), this::startQuickLogin), () -> {} ); } } + private void startQuickLogin() { + requireActivity().finish(); + Activity currentActivity = AppManager.getInstance().getRecentActiveActivity(); + if (currentActivity != null) { + QuickLoginHelper.startLogin(currentActivity, "一键登录权限弹窗"); + } + } + private boolean isAgreePolicy() { if (mCheckIv.isChecked()) { return true; From 1241207dd2b90578663ad03b8aaa6f57d5801910 Mon Sep 17 00:00:00 2001 From: juntao Date: Thu, 13 May 2021 15:59:30 +0800 Subject: [PATCH 04/36] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=A6=96=E9=A1=B5=20ta?= =?UTF-8?q?b=20=E6=97=A0=E6=95=B0=E6=8D=AE=E6=97=B6=E7=9A=84=E5=9B=9E?= =?UTF-8?q?=E8=90=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt index 0e8b200995..0cb926c685 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt @@ -44,6 +44,9 @@ class HomeSearchToolWrapperViewModel(application: Application) : AndroidViewMode if (tab.default) defaultTabPosition = index } + if (data.size == 0) { + data.add(SubjectRecommendEntity(type = "home")) + } tabs.postValue(data) } From 061d5c19ed218ab9ed4dc5603ff0a10bbacb57ec Mon Sep 17 00:00:00 2001 From: juntao Date: Thu, 13 May 2021 17:38:50 +0800 Subject: [PATCH 05/36] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E8=BD=AE=E6=92=AD=E5=9B=BE=E4=B8=8A=E8=BE=B9=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/EntranceUtils.java | 1 + .../gamecenter/fragment/HomeSearchToolWrapperFragment.kt | 5 +++-- app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt | 1 + .../java/com/gh/gamecenter/home/HomeFragmentAdapter.kt | 9 ++++++++- .../main/java/com/gh/gamecenter/home/HomeViewModel.kt | 3 +++ app/src/main/res/values/dimens.xml | 2 +- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index 095ade8041..982e02238d 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -193,6 +193,7 @@ public class EntranceUtils { public static final String KEY_UUID = "uuid"; public static final String KEY_IS_HOME_VIDEO = "isHomeVideo"; public static final String KEY_IS_HOME = "isHome"; + public static final String KEY_TAB_COUNT = "tab_count"; public static final String KEY_WEB_SHARE = "webShare"; public static final String KEY_ACTIVITY_NAME = "activityName";//活动名称 public static final String KEY_PAGINATION_TYPE = "paginationType";//活动分页方式 diff --git a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt index 04caa4b7ea..bd5a1d860c 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt @@ -250,7 +250,7 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { val fragmentList = arrayListOf() for (tab in tabList) { val fragment = when (tab.type) { - "home" -> HomeFragment() + "home" -> HomeFragment().with(Bundle()) "top_game_comment" -> AmwayFragment().with(Bundle()) "block" -> GameFragment().with(Bundle().apply { putParcelable(EntranceUtils.KEY_BLOCK_DATA, tab) @@ -290,8 +290,9 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { "bbs" -> Fragment() else -> Fragment() } + fragment.arguments?.putInt(EntranceUtils.KEY_TAB_COUNT, tabList.size) fragment.arguments?.putBoolean(EntranceUtils.KEY_IS_HOME, true) - fragment.arguments?.putParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE, ExposureSource("首页顶部Tab栏", tab.name!!)) + fragment.arguments?.putParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE, ExposureSource("首页顶部Tab栏", tab.name ?: "")) fragmentList.add(fragment) } return fragmentList diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt index 20b726a34f..8d86398bdf 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt @@ -64,6 +64,7 @@ class HomeFragment : BaseFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mViewModel = ViewModelProviders.of(this).get(HomeViewModel::class.java) + mViewModel.homeOnlyWithoutOtherTab = arguments?.getInt(EntranceUtils.KEY_TAB_COUNT) == 1 mViewModel.itemDataList.observeNonNull(this, callback = { mListAdapter.submitList(it) }) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt index 21161726e5..0a802e66cb 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt @@ -3,6 +3,7 @@ package com.gh.gamecenter.home import android.content.Context import android.view.View import android.view.ViewGroup +import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType @@ -131,7 +132,13 @@ class HomeFragmentAdapter(context: Context, override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { when (holder) { - is HomeSlideListViewHolder -> holder.bindSlideList(mDataList[position], mBasicExposureSource) + is HomeSlideListViewHolder -> { + // 根据首页是否有其它 tab 设置不同的 marginTop + val marginTop = if (viewModel.homeOnlyWithoutOtherTab) 4F.dip2px() else 0 + (holder.binding.recyclerView.layoutParams as ConstraintLayout.LayoutParams) + .setMargins(0, marginTop, 0, 0) + holder.bindSlideList(mDataList[position], mBasicExposureSource) + } is HomeRecommendItemViewHolder -> holder.bindRecommend(mDataList[position].recommends!!) is HomeAmwayListViewHolder -> bindAmway(holder, position) is HomeGameItemViewHolder -> bindAttachGame(holder, position) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index d864a47c26..e1ce230e0b 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -46,6 +46,9 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { // 所有专题里的所有游戏 ID 集合,供替换时排重用 private var mSubjectGameIdList = hashSetOf() + // 首页是否只有首页,不显示其它 tab + var homeOnlyWithoutOtherTab = false + var itemDataList: MediatorLiveData> = MediatorLiveData() var positionAndPackageMap = HashMap() // key: packageName + position, value: position diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index b2331d6187..d503f4740c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -24,7 +24,7 @@ 16dp 6dp - 8dp + 4dp 122dp From 9c28bf162e5af205c8d9f5e4f3e1844bc2b7fab2 Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Fri, 14 May 2021 09:37:54 +0800 Subject: [PATCH 06/36] =?UTF-8?q?=E6=96=B0=E5=88=86=E7=B1=BB2.0=E9=A1=B5-?= =?UTF-8?q?=E4=BE=A7=E8=BE=B9=E6=A0=8F=E5=85=B3=E9=97=AD=E6=89=8B=E5=8A=BF?= =?UTF-8?q?=E6=BB=91=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/category2/CategoryV2Fragment.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt index 7226da3720..f08e1c95d4 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt @@ -5,6 +5,7 @@ import android.view.MenuItem import android.view.View import androidx.core.os.bundleOf import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager import com.gh.base.fragment.LazyFragment @@ -60,6 +61,8 @@ class CategoryV2Fragment : LazyFragment() { mBinding?.run { val width = resources.displayMetrics.widthPixels * 260 / 360 drawerLayout.setScrimColor(R.color.black_alpha_30.toColor()) + // 关闭手势滑动 + drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) directoryContainer.layoutParams.width = width directoryRv.layoutParams.width = width From 9d8681c50f3caba5be380529c7a817ed17bf804d Mon Sep 17 00:00:00 2001 From: Jack <1484288157@qq.com> Date: Fri, 14 May 2021 10:47:47 +0800 Subject: [PATCH 07/36] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.8.?= =?UTF-8?q?0-=E8=A7=86=E9=A2=91=E4=BC=98=E5=8C=96=EF=BC=88=E7=AC=AC1?= =?UTF-8?q?=E6=9C=9F=EF=BC=89(0514=20=E8=BF=90=E8=90=A5=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=97=AE=E9=A2=983)=20https://git.ghzs.com/pm/halo-app-issues/?= =?UTF-8?q?-/issues/1107?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/video/detail/VideoDetailContainerFragment.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index 92d710083b..45a41248e6 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -202,6 +202,8 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener { mBinding.attentionNoLoginContainer.visibility = View.GONE mBinding.recyclerview.visibility = View.GONE mBinding.refresh.isRefreshing = false + mAdapter.videoList.clear() + mAdapter.notifyDataSetChanged() } else { showNoDataErrorView() toast("内容可能已被删除") From 5832c75909e60792055f0b2ce8bf60872410c059 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 14 May 2021 11:36:59 +0800 Subject: [PATCH 08/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83=E5=90=8E=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=B1=87=E6=80=BB(5)=20https://git.ghzs.com/?= =?UTF-8?q?pm/halo-app-issues/-/issues/1262?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/HomeSearchToolWrapperFragment.kt | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt index bd5a1d860c..6768f6db0c 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt @@ -54,9 +54,12 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { private var mIsDisplayingLightContent = false private var mDefaultSelectedTab = -1 + private var mLastSelectedPosition = 0 private var mViewModel: HomeSearchToolWrapperViewModel? = null + private var mFragmentList = ArrayList() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -124,7 +127,7 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { override fun getInflatedLayout() = FragmentMainHomeWrapperBinding.inflate(layoutInflater).apply { mBinding = this }.root private fun initViewPager(tabList: ArrayList) { - val fragmentList = generateFragments(tabList) + val fragmentList = generateFragments(tabList).apply { mFragmentList = this } val tabTitleList = arrayListOf() tabList.forEach { tabTitleList.add(it.name ?: "") } @@ -151,6 +154,7 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { viewPager.offscreenPageLimit = fragmentList.size viewPager.doOnScroll( onPageSelected = { position -> + notifyChildFragmentLifecycle(position) updateTabTextStyle(position, 0F) mViewModel?.forumTabPair?.let { if (it.first == position) { @@ -246,6 +250,32 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { } } + private fun notifyChildFragmentLifecycle(currentSelectedPosition: Int) { + tryCatchInRelease { + // 补充 Viewpager Fragment 的生命周期, 先调用旧选中 fragment 的 onPause 再当前的 onResume + // 避免部分被内嵌的 Fragment 不能正常运作 + if (mFragmentList.size > mLastSelectedPosition) { + val fragment: Fragment = mFragmentList[mLastSelectedPosition] + fragment.onPause() + val childFragmentManager = fragment.childFragmentManager + val fragments = childFragmentManager.fragments + for (childFragment in fragments) { + childFragment.onPause() + } + } + if (mFragmentList.size > currentSelectedPosition) { + val fragment: Fragment = mFragmentList[currentSelectedPosition] + fragment.onResume() + val childFragmentManager = fragment.childFragmentManager + val fragments = childFragmentManager.fragments + for (childFragment in fragments) { + childFragment.onResume() + } + } + mLastSelectedPosition = currentSelectedPosition + } + } + private fun generateFragments(tabList: ArrayList): ArrayList { val fragmentList = arrayListOf() for (tab in tabList) { From 406ac9861602b2264464c52c2cf94c219e2e64d0 Mon Sep 17 00:00:00 2001 From: juntao Date: Sat, 15 May 2021 15:12:52 +0800 Subject: [PATCH 09/36] =?UTF-8?q?=E6=BF=80=E6=B4=BB=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E9=87=8C=E8=A1=A5=E5=85=85=20oaid=20(?= =?UTF-8?q?=E8=8B=A5=E5=AD=98=E5=9C=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/LogUtils.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java index eba43e674e..611a1d0759 100644 --- a/app/src/main/java/com/gh/common/util/LogUtils.java +++ b/app/src/main/java/com/gh/common/util/LogUtils.java @@ -272,6 +272,7 @@ public class LogUtils { object.put("device_model", android.os.Build.MODEL); object.put("jnfj", MetaUtil.getBase64EncodedIMEI()); object.put("G_ID", UserManager.getInstance().getDeviceId()); + object.put("oaid", HaloApp.getInstance().getOAID()); } catch (JSONException e) { e.printStackTrace(); } @@ -602,6 +603,7 @@ public class LogUtils { metaObject.put("network", meta.getNetwork()); metaObject.put("os", meta.getOs()); metaObject.put("userId", meta.getUserId()); + metaObject.put("oaid", HaloApp.getInstance().getOAID()); } catch (JSONException e) { e.printStackTrace(); From 9ec29ad367db7ad2e55cfa8f13a514419ad7618f Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 17 May 2021 10:13:15 +0800 Subject: [PATCH 10/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=A6=96=E9=A1=B5=20tab=20=E6=80=A7=E8=83=BD=E9=80=A0?= =?UTF-8?q?=E6=88=90=E5=BC=80=E6=9C=8D=E8=A1=A8=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=BC=80=E6=B5=8B=20tab=20=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/servers/GameServersActivity.kt | 12 ++++-------- .../gh/gamecenter/servers/GameServersTestFragment.kt | 5 +---- .../gamecenter/servers/GameServersTestViewModel.kt | 4 ++++ 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt index 6a3d202823..c3be91738e 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt @@ -7,9 +7,7 @@ import android.view.View import android.widget.CheckedTextView import android.widget.RelativeLayout import androidx.fragment.app.Fragment -import androidx.lifecycle.MutableLiveData import androidx.lifecycle.Observer -import androidx.lifecycle.ViewModel import androidx.viewpager.widget.ViewPager import com.gh.base.ToolBarActivity import com.gh.base.adapter.FragmentAdapter @@ -19,6 +17,7 @@ import com.gh.common.util.MtaHelper import com.gh.common.util.viewModelProviderFromParent import com.gh.common.view.DrawableView import com.gh.gamecenter.R +import com.halo.assistant.HaloApp import com.lightgame.view.NoScrollableViewPager import kotterknife.bindView @@ -38,7 +37,7 @@ class GameServersActivity : ToolBarActivity() { private val mServersTestIndex = 1 private val mServersPublishIndex = 0 - private var mViewModel: GameServersViewModel? = null + private var mViewModel: GameServersTestViewModel? = null override fun getLayoutId(): Int { return R.layout.activity_game_servers @@ -48,7 +47,8 @@ class GameServersActivity : ToolBarActivity() { super.onCreate(savedInstanceState) setToolbarMenu(R.menu.menu_download) - mViewModel = viewModelProviderFromParent() + mViewModel = viewModelProviderFromParent(GameServersTestViewModel.Factory(HaloApp.getInstance(), "general")) + mViewModel?.load() mViewModel?.isTestOnLiveData?.observe(this, Observer { if (it) { mViewpager.setScrollable(true) @@ -134,8 +134,4 @@ class GameServersActivity : ToolBarActivity() { override fun getActivityNameInChinese(): String { return "开服表" } -} - -class GameServersViewModel: ViewModel() { - val isTestOnLiveData = MutableLiveData() } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt index 287b6f81cf..7ea8765f16 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt @@ -37,7 +37,6 @@ class GameServersTestFragment : LazyFragment() { private var mViewModel: GameServersTestViewModel? = null private var mAdapter: GameServersTestAdapter? = null - private var mServerViewModel: GameServersViewModel? = null private var mExposureListener: ExposureListener? = null private var mDay: String? = null @@ -80,11 +79,10 @@ class GameServersTestFragment : LazyFragment() { } override fun onFragmentFirstVisible() { - mServerViewModel = viewModelProviderFromParent() mTestColumnId = arguments?.getString(TEST_COLUMN_ID, DEFAULT_TEST_COLUMN_ID) ?: DEFAULT_TEST_COLUMN_ID - mViewModel = viewModelProvider(GameServersTestViewModel.Factory(HaloApp.getInstance(), mTestColumnId)) + mViewModel = viewModelProviderFromParent(GameServersTestViewModel.Factory(HaloApp.getInstance(), mTestColumnId)) super.onFragmentFirstVisible() @@ -117,7 +115,6 @@ class GameServersTestFragment : LazyFragment() { if (!isSuccess) { showConnectionError() } - mServerViewModel?.isTestOnLiveData?.postValue(isSuccess) }) } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt index fc2e164843..133b5ed977 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt @@ -43,6 +43,8 @@ class GameServersTestViewModel(application: Application, private val mColumnId: val listLiveData = MutableLiveData>() val loadStatusLiveData = MutableLiveData() + val isTestOnLiveData = MutableLiveData() + @SuppressLint("CheckResult") fun load(filter: String = ALL) { mCurrentTypeFilter = filter @@ -55,11 +57,13 @@ class GameServersTestViewModel(application: Application, private val mColumnId: dayList[0] = "过去${data.settings.testTimeRange}天" transformData(data, filter) loadStatusLiveData.postValue(true) + isTestOnLiveData.postValue(true) } override fun onFailure(exception: Exception) { super.onFailure(exception) loadStatusLiveData.postValue(false) + isTestOnLiveData.postValue(false) } }) } From 6653467259e7480e0e199e98214d034b4c6cde4f Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 17 May 2021 11:39:27 +0800 Subject: [PATCH 11/36] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E9=A1=B6=E9=83=A8=20tab=20=E6=A0=8F=E5=8A=9F=E8=83=BD(20210517?= =?UTF-8?q?=E8=BF=90=E8=90=A5=E6=B5=8B=E8=AF=95=E9=97=AE=E9=A2=98)=20https?= =?UTF-8?q?://git.ghzs.com/pm/halo-app-issues/-/issues/1215?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/Extensions.kt | 11 ++++++++--- .../java/com/gh/gamecenter/catalog/CatalogFragment.kt | 2 +- .../com/gh/gamecenter/catalog/SubCatalogFragment.kt | 2 +- .../com/gh/gamecenter/category2/CategoryV2Fragment.kt | 4 ++-- .../gh/gamecenter/category2/CategoryV2ListFragment.kt | 6 ++++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 34f469b81c..ddffef5ba2 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -70,11 +70,16 @@ inline fun FragmentActivity.viewModelProvider( /** * 创建以 activity 为观察者上下文的 viewModel + * 额外的 key: 用于区分单 activity 多 viewModel 的情况 (如首页tab) */ inline fun Fragment.viewModelProviderFromParent( - provider: ViewModelProvider.Factory? = null -) = - ViewModelProviders.of(requireActivity(), provider).get(VM::class.java) + provider: ViewModelProvider.Factory? = null, + key: String = "" +) = if (key.isEmpty()) { + ViewModelProviders.of(requireActivity(), provider).get(VM::class.java) +} else { + ViewModelProviders.of(requireActivity(), provider).get(key, VM::class.java) +} /** * 创建以 activity 为观察者上下文的 viewModel diff --git a/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt b/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt index a66e8246dc..b6af05b5c7 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt @@ -30,7 +30,7 @@ class CatalogFragment : LazyFragment() { override fun onFragmentFirstVisible() { mCatalogId = arguments?.getString(EntranceUtils.KEY_CATALOG_ID) ?: "" mCatalogTitle = arguments?.getString(EntranceUtils.KEY_CATALOG_TITLE) ?: "" - mViewModel = viewModelProviderFromParent(CatalogViewModel.Factory(mCatalogId, mCatalogTitle)) + mViewModel = viewModelProviderFromParent(CatalogViewModel.Factory(mCatalogId, mCatalogTitle), mCatalogId) mViewModel?.validEntranceName = if (mEntrance.contains("首页")) "首页" else "板块" mViewModel?.logAppearance() diff --git a/app/src/main/java/com/gh/gamecenter/catalog/SubCatalogFragment.kt b/app/src/main/java/com/gh/gamecenter/catalog/SubCatalogFragment.kt index 8f2065a54c..8b2b1027db 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/SubCatalogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/SubCatalogFragment.kt @@ -32,7 +32,7 @@ class SubCatalogFragment : NormalFragment() { mCatalogTitle = arguments?.getString(EntranceUtils.KEY_CATALOG_TITLE) ?: "" mPrimaryCatalogId = arguments?.getString(EntranceUtils.KEY_PRIMARY_CATALOG_ID) ?: "" mViewModel = viewModelProvider(SubCatalogViewModel.Factory(mCatalogId)) - mCatalogViewModel = viewModelProviderFromParent(CatalogViewModel.Factory(mCatalogId, mCatalogTitle)) + mCatalogViewModel = viewModelProviderFromParent(CatalogViewModel.Factory(mCatalogId, mCatalogTitle), mCatalogId) mViewModel?.getSubCatalogs(mPrimaryCatalogId) } diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt index f08e1c95d4..0568222554 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt @@ -37,7 +37,7 @@ class CategoryV2Fragment : LazyFragment() { override fun onFragmentFirstVisible() { mCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" mCategoryTitle = arguments?.getString(EntranceUtils.KEY_CATEGORY_TITLE) ?: "" - mViewModel = viewModelProviderFromParent(CategoryV2ViewModel.Factory(mCategoryId, mCategoryTitle)) + mViewModel = viewModelProviderFromParent(CategoryV2ViewModel.Factory(mCategoryId, mCategoryTitle), mCategoryId) mViewModel?.entrance = if (mEntrance.contains("首页")) "首页" else "板块" mViewModel?.logAppearance() @@ -209,7 +209,7 @@ class CategoryV2Fragment : LazyFragment() { mCategoryV2ListFragment?.arguments = bundleOf( EntranceUtils.KEY_CATEGORY_ID to id, EntranceUtils.KEY_SUB_CATEGORY_ID to sidebars[0].categoryId, - EntranceUtils.KEY_CATALOG_TITLE to mCategoryTitle, + EntranceUtils.KEY_CATEGORY_TITLE to mCategoryTitle, EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE) ) childFragmentManager diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt index 95240092bd..c603c0485c 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt @@ -30,6 +30,7 @@ class CategoryV2ListFragment : ListFragment private var mCategoryId: String = "" private var mSubCategoryId: String = "" + private var mCategoryTitle: String = "" private var mAdapter: CategoryV2ListAdapter? = null private var mSelectedViewList = ArrayList() private var mBinding: FragmentCategoryListBinding? = null @@ -58,7 +59,7 @@ class CategoryV2ListFragment : ListFragment ?: CategoryV2ListAdapter( requireContext(), mListViewModel, - mCategoryViewModel ?: viewModelProviderFromParent(), + mCategoryViewModel ?: viewModelProviderFromParent(CategoryV2ViewModel.Factory(mCategoryId, mCategoryTitle), mCategoryId), mEntrance).apply { mAdapter = this } override fun getItemDecoration() = null @@ -66,8 +67,9 @@ class CategoryV2ListFragment : ListFragment override fun onCreate(savedInstanceState: Bundle?) { mCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" mSubCategoryId = arguments?.getString(EntranceUtils.KEY_SUB_CATEGORY_ID) ?: "" + mCategoryTitle = arguments?.getString(EntranceUtils.KEY_CATEGORY_TITLE) ?: "" - mCategoryViewModel = viewModelProviderFromParent() + mCategoryViewModel = viewModelProviderFromParent(CategoryV2ViewModel.Factory(mCategoryId, mCategoryTitle), mCategoryId) mEntrance = arguments?.getString(EntranceUtils.KEY_ENTRANCE) ?: Constants.ENTRANCE_UNKNOWN super.onCreate(savedInstanceState) From eb8fb191bb61a411ab6f2c83d78019a4d771f9e9 Mon Sep 17 00:00:00 2001 From: Jack <1484288157@qq.com> Date: Mon, 17 May 2021 14:27:37 +0800 Subject: [PATCH 12/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=B5=81=E5=85=A8=E5=B1=8F=E5=90=8E=E7=9A=84=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/video/detail/DetailPlayerView.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index f18b712217..cc15ce5b6a 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -903,7 +903,9 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib fun hideAllButton(isHide: Boolean) { containerRl.goneIf(isHide) actionLayout.goneIf(isHide) - watchedContainer.goneIf(isHide) + if (isHide) { + watchedContainer.visibility = View.GONE + } } private fun showBackBtn() { From 9e930f1b354f0a909e09e0070e581c0471987179 Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 17 May 2021 15:34:15 +0800 Subject: [PATCH 13/36] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B6=E9=83=A8=E5=8C=BA=E5=9F=9F=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=9A=90=E8=97=8F=E6=97=B6=E7=9A=84=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index 27e82f3ef8..9b19f67ccb 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -479,7 +479,7 @@ class GameDetailFragment : NormalFragment() { fun onEventMainThread(bean: EBScroll) { if (mGameEntity?.id == bean.id) { mViewPager.currentItem = 0 - mAppBarLayout.setExpanded(false) + mAppBarLayout.setExpanded(false, false) } } From 51c88e85861afc6075f5e6e98d8330a79a4d73fd Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Mon, 17 May 2021 17:10:12 +0800 Subject: [PATCH 14/36] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.9.?= =?UTF-8?q?0-=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=88=E7=AC=AC3=E6=9C=9F=EF=BC=89(0517=20=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=97=AE=E9=A2=98=201)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/util/QuickLoginHelper.kt | 6 +-- .../main/res/layout/dialog_quick_login.xml | 43 ++++++------------- 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt index 25cffa95e1..c481ff3c4a 100644 --- a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt +++ b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt @@ -226,14 +226,14 @@ object QuickLoginHelper { "", "", "", "") //隐私条款的协议文本,自定义条款,自定义条款链接(支持四份条款) .setPrivacyText(11, R.color.text_999999.toColor(), R.color.theme_font.toColor(), true, false) //条款文本设置 .setPrivacyMargin(30, 32) //隐私条款距离手机左右边缘的边距 - .setPrivacyOffsetY(230) //隐私条款Y偏移量 + .setPrivacyOffsetY(280) //隐私条款Y偏移量 // 语言 .setAppLanguageType(0) //0.中文简体1.中文繁体2.英文 // 转场动画 .setAuthPageActIn("anim_auth_in","anim_auth_out") // .setAuthPageActOut("anim_auth_in","anim_auth_out") // 整体布局 - .setAuthPageWindowMode(WindowManager.LayoutParams.MATCH_PARENT, 320) //授权页窗口宽高比例 + .setAuthPageWindowMode(WindowManager.LayoutParams.MATCH_PARENT, 360) //授权页窗口宽高比例 .setWindowBottom(1) //授权页是否居于底部,0=居中;1=底部,设置为1Y轴的偏移 失效 .setFitsSystemWindows(false) .setThemeId(R.style.quickLoginDialog) //授权页弹窗主题 @@ -247,7 +247,7 @@ object QuickLoginHelper { closeIv.setOnClickListener { finishAuthActivity() } - changeLoginIv.setOnClickListener { + changeLoginBtn.setOnClickListener { startCodeLoginPage(context, false) } descTv.text = "${getOperatorType(context)}提供认证服务" diff --git a/app/src/main/res/layout/dialog_quick_login.xml b/app/src/main/res/layout/dialog_quick_login.xml index 97f071a133..2ecb23cd36 100644 --- a/app/src/main/res/layout/dialog_quick_login.xml +++ b/app/src/main/res/layout/dialog_quick_login.xml @@ -7,7 +7,7 @@ @@ -18,35 +18,6 @@ android:src="@drawable/bg_quick_login_dialog" app:corner_radius="12dp" /> - - - - - - - - + + Date: Mon, 17 May 2021 18:08:40 +0800 Subject: [PATCH 15/36] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.9.?= =?UTF-8?q?0-=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=88=E7=AC=AC2=E6=9C=9F=EF=BC=89(0517=20=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=8F=8D=E9=A6=88)=20https://git.ghzs.com/pm?= =?UTF-8?q?/halo-app-issues/-/issues/1203#note=5F101240?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/drawable-xxhdpi/ic_badge_default.png | Bin 736 -> 0 bytes .../main/res/drawable-xxhdpi/ic_badge_tv.webp | Bin 1498 -> 0 bytes .../drawable-xxhdpi/ic_regulation_tag.webp | Bin 1962 -> 0 bytes .../drawable-xxxhdpi/ic_badge_default.webp | Bin 0 -> 996 bytes .../main/res/drawable-xxxhdpi/ic_badge_tv.png | Bin 0 -> 1745 bytes .../drawable-xxxhdpi/ic_regulation_tag.webp | Bin 1436 -> 3070 bytes app/src/main/res/drawable/bg_user_badge.xml | 5 +---- app/src/main/res/drawable/bg_user_concern.xml | 5 +---- app/src/main/res/drawable/bg_user_level.xml | 5 +---- app/src/main/res/layout/fragment_home.xml | 2 +- app/src/main/res/values/colors.xml | 5 ----- 11 files changed, 4 insertions(+), 18 deletions(-) delete mode 100755 app/src/main/res/drawable-xxhdpi/ic_badge_default.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_badge_tv.webp delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_regulation_tag.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_badge_default.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_badge_tv.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_badge_default.png b/app/src/main/res/drawable-xxhdpi/ic_badge_default.png deleted file mode 100755 index 8af66a3e0f6a264911f458ae7eaa2a8f90a980fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)Px%nn^@KR7efISHEi%K@@(wbHCuCr>6!ba27&93(;VAO-yGYn#R)7LM&1V;y+-c z{ux3F8x;cLl|l%Jl}fa*FsRYwh~~uH?GL|iZwGJJyPdft?mIqqcIJEUdv9iTcg~Sr zSQv&=aGQ%=TaM$b?IMi53k2)H4d4x+jcxYT?IT$-5!3rd(s-*5fXaX(32lmSt zi!qxix&AE%W`Q-}e;H%XCdAQE1fGwh_}KdzKJq??!8lHRjUvShaRw8(9**0_%Tn-N z7P@aG#IIH^$R+ov(I+NQgIaAj?y!FLK83&Ke($4fi!U7sw^04H!f}~%kI1A`6gM8r3ThPoDW2T!uF4C40~PwxLzP;T zf!Tf;v}L8cB~?*!QPt&MX&UPmE#*jUJ=G%#?}K0R)L)k^B*4nmkZRb+F>;>y-{b>) zOlA~5<4(vGHHlh7Q>=({72LD#0VCHaT)~RnEuNC5I)rH+EzU7=$SuRiWM&2;oN&r= zvv4vB$SF-5`zS^Zxi)4c%s>pRG9q%!rcxckxT`gB2P^2s)$+Q7?L?y(v*#Wl$JVTc zYk0|(Aia>!7g46I#B}EFl$bdDQV$<7cR+@^X@@;SUMd|_c^p1PX9}H zT}{bryhJz)7gR0fHS{*p(!$%Iw1?8-PEP4O9+k8)friTd+z$9`qD`&8hL24CpG7SX z@%#@01LFA~eY7~Qs6OAr-k^A#K)%P@!30o!{s;P00{iwC#`?&UN?^}_+Wr9ZzO0#` S6SWHf0000G0mJP&_6oG^_czv6u0VVBhymF20^>w6S3ltE ze+uFpEm}5}>R&1JTV_*IXdkP=r9k}bFGSt1=3p{~eImf~=GB`mb=CMoMR}pu>-FZ9 zSxdau;_~vBnw0x!`#4wM49bcj(?{6k8f*{LkplY5LY4 zG1p4cc7AGPTWNF+(0hFaRDZZ~{qC&kDQREE6_7JjQoYMS*}-)i{H{Gy2E3^&EdvUB zzQ*sKjwO%;H|j`g{2s{LvvRfHW#`I)>r&mr!1oRlP8I;qmoDn5rvOEPlGHSZpXu8x zHMs}eZ?!C>0`JCY7q89N0?S2NyH)`27R_JaH~2kJu|R756*%Yys41(2N9vvh#rXZj8-CSL10w#QK-t-Cl)6`}SKh@Jw>J2cV%kW{(A#3`!Bg>lv z{($7JmU`ol9Xyw<(1V82IqYdV}f(URb5twu=PJ(W>pN*|TR4mYN3z zxyLk=)PCm7F^xyM-F<7-WXz0d(;c0Q>;N0sI1KfAIbw58=jm2EYg41b7GZKhO{00)5}( z)yw}${6x_K{U7l^$OG^LWC!u@%e_z!>3?HeKp)C~$a#T&C-|S_-R=?mU-(b;Pt(u$ zKh^*L@`wI_51uJiH4uTqOoP3>@e={wA{bEm2w(vI_5X*SQl95Ao}Ybn{J#W1_V3z@ zF1=Z^597~)yC;88gd5Fj)lK-@(yeuqy)cF>0n>g{c=ePR|D}}J$L+J zX%U(>wO&}GDfFcz>bfz9h-+YmQa?c-S~b7=jvtf4fy=SUz(@@=TAZJ@l4r0UmL0Wv zW_j8t_xlHw2PMxRjm+r5Z;2nZuYnKxZ}QZUS1=H|NmJ}|NBBe@G2f0Ab$*VV8jRpGm0Y z0s6|RDCV23T|sa9)H}Eu?k+4({HVs5A}*Tgxe0)_P`LQHh^P05`H!?Aj0@cBiwp%9 z{e9Piwm&evPZjU_g@XN4-A>GZ6Tkkn{v0uq1r=0(V05LP<-h(62jp|jD8K*!07>2O A`~Uy| diff --git a/app/src/main/res/drawable-xxhdpi/ic_regulation_tag.webp b/app/src/main/res/drawable-xxhdpi/ic_regulation_tag.webp deleted file mode 100644 index 5b34d96277244fa1c3c5d6ad06b3202bdd5929c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1962 zcmV;b2UYk|Nk&GZ2LJ$9MM6+kP&il$0000G0001A001ul06|PpNFxCN00C#gux%v8 z$;-^aGc!a)1c?^#*;=aA{I)i6dsQ0|2~}~#0B|KqlB&!T;JFL_-246q#HHVVME@DN zZR04!_Hs)yGf$AW6vK-5Mc3o!`mWf=mZ8X(c3xWJuj$rtqSyx{MabEwOQ)ZjXU z!h8)>`NTF`Kx4_aA8h6kRF3A`&8zA0pt!P$dw() zbpyx^{K0?0{|f()`16{-F7ek@{=UH9*H+M%`NtJ27#H!6>sBx>=QYAV zFBATGrSQ*-g@0ZzLccC?L%*(aL%1#k09H^qAXo+f0I(qdodGIf05AYPF&2nIq9Gv` zI!-Jg0|d4JVlL>vGyFj9RH9sG@h9?wsWWx_0m#Hi`kwtC+J|TlFb~kb@qgDp8#|5p zfc-}QVgBpdEA-FYf1n5TpY0x|f80HQJpeytJyieE|H=Pp@LBsm|6~1kz!&Pj{Ljz( z_J5*&6!aQ9V?;iF5{yY6c z{*R_7`+i%#e*e4f6a2sWFa2*@A7bCF-on47qsI<25lf2r;SN>N9r(VBi&!pg_866@F9jCnbM^aSN76iTRBY+0|d@(TH~W08MN^N z(dS1GQrJ2k&f1P;*JZ}+%nRkqidx(fr9w+Pj5$-k#Ed;Hxs6dX>cKc-B1!3GJ!kb~ zlq=|hO4`(a_uB2#f;5!J7q~yxH`U8MVg)YVtz~iInD>Qt0(bPi#g$49AskYBaKnMH zv7HPgz8yOJi3Uq3(Rx49K;Fe6-#VcZR3*vbn=idBcx|%8txM9YB_DF6i}WakGv+Xf zC58{wscs~NNEfC8=HEjn6W%ZN{jqNNEX|^RNDgm}l-Amc%ocq_@GwZVD&0ReiTRIy zN_~J52Gkr7P5g+ox;QJf9(HF_#uT{SMqT`Ce_IDI)?vs=TBR3OKb9c-#MOs@_N&D< zdhJc6l6?~9Z9NL4(h4rzQ>Z*+e}biVD(80Xaq>6cN{+N2X&6Campb`2*ARAtbUhG&OO zgk(@6l}+tH^@SUMSFFHVBUNS(1oDK=c9DRe@BdqG>&sijT7kM)Wy=wpyeG6YHcftZ zOW~&*k1Arnmw9%`w;S>=oa!{!N~pk|BsdO0><9OrS~Kx8BKL2}p<-u4*Te`hrMcvxXy^ z-kjbFF#)}+&^QKlqq>{FBK;}zsIX#IcD&rM>yB+#tbkijpisj#`L)46;RMLVc|)_P zUR15M$WFUmdeRpHzvJNJbPJO5&Zgk#JQUr}*|x27pm-~jo)d0K~p&n8@N;!A3>P2w`+y%uHGguHqptz>fn z4JX+CRTiixE9s7$UJnFgp;ADcJkYM-UqCpySfI& z-9>JjA%5V+!PA!60)Y5oemjX%XahK&t}Bx@UF!buR)VKFXO9Dk@BX>k@{riwo>aMd z1QY75WA^gpL@jnMM3=|PlN?InhAi5RBzjvm2284kvZ&c)6IBL<9*=M0G!QRNpmrf@ z%TrMUxlR^AeuZ`8UHmUESc?v7&<}#+G+_C=k7g$jPk-zy7a>2uS)h?_EP7`T^jCie z$_{LKoiM79mHUzS=g&d8u!{S7asl$P#n()hcPx# diff --git a/app/src/main/res/drawable-xxxhdpi/ic_badge_default.webp b/app/src/main/res/drawable-xxxhdpi/ic_badge_default.webp new file mode 100644 index 0000000000000000000000000000000000000000..2e4e81df657b757f2bbb478f280c872d0eda7d1f GIT binary patch literal 996 zcmVna(@Ng4VJqL9J|`V zwpX^Vbos%5I|G#x0!ozz0veST0^0vVc#|kpr%Gllj0RI2j ztbYrOY{+khp=je2v?Kow9KSVq@qBjE11AD^^YP9_GC-N&?|xs+n;AeKob1ul(Wxf{@#AC!O#BZaw!*~4Rj`yHET<|?XT5;=@Z@uu2 z6tJPB{TTk?6k3DUzT(TBb$VQUTf82~_#U-=F<>kbLWI<;45q z@$vsRn}ej;E}(3Cny$sjYv@w_l4%*lIe$n8dc_dunC-24~1iH{2 SQ4PhuI}RK8=<5k$0001$sPaqz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_badge_tv.png b/app/src/main/res/drawable-xxxhdpi/ic_badge_tv.png new file mode 100644 index 0000000000000000000000000000000000000000..63c4c8703f052271e17402a83190d18af70f0929 GIT binary patch literal 1745 zcmV;?1}^!DP)Px*i%CR5RA>e5nOlffRTRf(bVkd{ZYJ5JiCLCNp(q&^+67CqNGeMj3W+oe(xjn2y~ z_|IPJzt-MopLO34skF4T-q@)s;|;(uDAk!xu7n{KDD>mfSVgre*w+XtcKu0BL zu=CepU*k9>Xqw?#(YJ#ch70Ntp5%gH#BDXJYK7wp&C7*$xLMm)f_~?cRp2u)++DsL z`#Q(t%5kh#j+ z^j(}wVJQjV0y${Q!D#RtSPAxnOM%`(?UhAzcq*k+72F=j|AO7-b|U6B*Uy`i^KS6J zdtB>-jr}uvUgESel$3rnPXfKcRETXsZ6vF`iFpKGaqSVU#OJ|XrqfCEzF;-5MgLK* zvn0fEy>rl;g561NL)c=sGl8r(n6`-$se=1QJ145*ev9j)LfpWZS2|v?Rt8(6lk}uW z7h2ky_+=n@y6u?kgT(f7@vBKrZ#WfnD_gCBUT97(^t72pC+Jk3<^iTXI%Vo>;QV-p zSXDY#S@{A(TV2VVXdP!j-^4Y96J_zmbO<~G{L_|OD`*eUiFg=z9C-N^Vlikjj{WF| zL5<<$-vI76oK(MhN=TS$)k#*{jkF&r=nTpXt{;6ig#?Y|;#I&F%`l%@g7pb;D@0`= z<5qR)T`-rJW6r1Iufl$b;dc-R-8#Z>Qu7jI{C>3=*J)Fe`9uj~(kGa7)}F7$H;Jjd zmolB>a5@A|AjZ12Wky2iq^-ADkVfLZ#dsnRar=$4t(i5idV>5owqINNcmif+1Zmeq z5+#U9Ux;NtPGfgTR2%RQ3508VVy8Xf^>N&CTAQHruvJ^4Ggln5i?+}UAS*%I!YT`= zDw<209EIE+98rQWvL+ES>0imAe^y&32diiU$(3&VtEO0)Ph7JloSrqe>xt89>}aWD zKFN0I7LT5`3gik2(o)pH?P;(Vc+t-ux)Gg3g{dIO=Rrwn>)}33;UkLV>ilJsn-$uT ze7NUm%r;k0Jjwfrehv7isljHG@ioMKh29@Xj$@CGpMV1JHMpfS>ShLmy;( zQvU>t9Oq4qpCwxT69`6=Oif9psa}~xB?t7NV};<{D***p~l!}^q_7JN`W?OUIn`RZ&yx& zbZXNpz9D7U2A=T6o+tieI2{13+>B8J?2lmj&AFO*9R=!u5^ZG}{)a5#b^6`|rXG zwSheK?$|E?D+e)D^MXty?p&60Qy}72M}%Uxgu3WK>w0OT8$Oxl$l!J|pJZEW;H(;? zWv1^HOIVNk&=39rZ^?nJgQFei({Pd{Ui literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_regulation_tag.webp b/app/src/main/res/drawable-xxxhdpi/ic_regulation_tag.webp index ed8b2cbcc4335c474e6c705b00538d9b402ef399..10df064d4c60c5fecb24ec4bf2c89c663a33a110 100644 GIT binary patch literal 3070 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 diff --git a/app/src/main/res/drawable/bg_user_badge.xml b/app/src/main/res/drawable/bg_user_badge.xml index 2d2f037e29..6ab93a8791 100644 --- a/app/src/main/res/drawable/bg_user_badge.xml +++ b/app/src/main/res/drawable/bg_user_badge.xml @@ -4,9 +4,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_user_concern.xml b/app/src/main/res/drawable/bg_user_concern.xml index 324bdee8dd..7f7ba6487e 100644 --- a/app/src/main/res/drawable/bg_user_concern.xml +++ b/app/src/main/res/drawable/bg_user_concern.xml @@ -4,9 +4,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_user_level.xml b/app/src/main/res/drawable/bg_user_level.xml index 9114e9bdf4..2c1ed83f19 100644 --- a/app/src/main/res/drawable/bg_user_level.xml +++ b/app/src/main/res/drawable/bg_user_level.xml @@ -4,9 +4,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 7281853ffd..c947d1f7fd 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -255,7 +255,7 @@ #91F0FD #F6FBFF #50DCDC - #81B5FF - #20FFB5 - #00DDDD - #74FFFF - #60D5FF #b2b2b2 #9a9a9a #3a3a3a From 6de543261bae04704d81f3d7b5ba14f1212d0acc Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Tue, 18 May 2021 09:15:19 +0800 Subject: [PATCH 16/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9"=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=A5=BD=E5=8F=8B"=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/constant/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 7b96055328..26c222a732 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -262,7 +262,7 @@ public class Constants { // 邀请好友 public static final String INVITE_FRIENDS_ADDRESS_DEV = "https://static-web.ghzs.com/ghzs_activity_dev/inviteFriends.html#/invite"; - public static final String INVITE_FRIENDS_ADDRESS = "https://static-web.ghzs.com/ghzs_activity/inviteFriends.html#/invite"; + public static final String INVITE_FRIENDS_ADDRESS = "https://static-web.ghzs.com/ghzs_activity_prod/inviteFriends.html#/invite"; // 等级页面 public static final String LEVEL_ADDRESS_DEV = "https://static-web.ghzs.com/ghzs-userhome-dev/index.html#/level"; From bc76e6eddb9bed0efcb7aaa894337f705b837051 Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Tue, 18 May 2021 11:59:50 +0800 Subject: [PATCH 17/36] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.9.?= =?UTF-8?q?0-=E5=90=8C=E6=AD=A5=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=90=8E=E6=B5=8B=E8=AF=95=E9=97=AE=E9=A2=98=E6=B1=87=E6=80=BB?= =?UTF-8?q?(14=E3=80=8116)=20https://git.ghzs.com/pm/halo-app-issues/-/iss?= =?UTF-8?q?ues/1262#note=5F101438?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/DownloadItemUtils.java | 2 -- app/src/main/java/com/gh/common/util/DownloadObserver.kt | 2 ++ app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt | 4 +++- .../gh/gamecenter/adapter/viewholder/DetailViewHolder.java | 1 - .../java/com/gh/gamecenter/energy/EnergyCenterFragment.kt | 1 + app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt | 4 ++-- .../java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt | 3 +++ 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index c923e78177..945756b0c9 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -712,8 +712,6 @@ public class DownloadItemUtils { downloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); downloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); DeviceRemindDialog.Companion.showDeviceRemindDialog(context, gameEntity); - - EnergyTaskHelper.postEnergyTask("download_game", gameEntity.getId(), gameEntity.getApk().get(0).getPackageName()); } else { Utils.toast(context, msg); } diff --git a/app/src/main/java/com/gh/common/util/DownloadObserver.kt b/app/src/main/java/com/gh/common/util/DownloadObserver.kt index 12f2a62685..10faaee4ff 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -8,6 +8,7 @@ import com.gh.common.exposure.ExposureUtils import com.gh.common.exposure.meta.MetaUtil import com.gh.common.simulator.SimulatorDownloadManager import com.gh.common.simulator.SimulatorGameManager +import com.gh.common.util.EnergyTaskHelper.postEnergyTask import com.gh.common.xapk.XapkInstaller import com.gh.download.DownloadDataHelper import com.gh.download.DownloadManager @@ -126,6 +127,7 @@ object DownloadObserver { } else { statDoneEvent(downloadEntity) + postEnergyTask("download_game", downloadEntity.gameId, downloadEntity.packageName) val platform = PlatformUtils.getInstance(mApplication) .getPlatformName(downloadEntity.platform) if (platform != null) { diff --git a/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt b/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt index cd4b9a6a2d..19a9cdec47 100644 --- a/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt +++ b/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt @@ -139,7 +139,9 @@ object EnergyTaskHelper { isFocusable = true isFocusableInTouchMode = true setOnClickListener { - currentActivity.startActivity(EnergyCenterActivity.getIntent(currentActivity)) + if (currentActivity::class.java.simpleName != EnergyCenterActivity::class.java.simpleName) { + currentActivity.startActivity(EnergyCenterActivity.getIntent(currentActivity)) + } } } val popWindow = PopupWindow(contentView, LinearLayout.LayoutParams.MATCH_PARENT, 88F.dip2px()) diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java index f51ce9839b..a5d43b8b1d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java @@ -128,7 +128,6 @@ public class DetailViewHolder { break; case NORMAL: MtaHelper.onEvent("游戏详情_新", "下载", mGameEntity.getName()); - EnergyTaskHelper.postEnergyTask("download_game", mGameEntity.getId(), mGameEntity.getApk().get(0).getPackageName()); break; case PLUGIN: MtaHelper.onEvent("游戏详情_新", "插件化", mGameEntity.getName()); diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt index 52e3455e93..78ff5f4973 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt @@ -119,6 +119,7 @@ class EnergyCenterFragment : BaseLazyFragment() { DialogUtils.showSignSuccessDialog(requireContext()) { initSignView(it) mUserHomeViewModel?.getUserEnergy() + refreshTaskList() } } diff --git a/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt b/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt index 5080fb9afe..0633c7437b 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt @@ -55,7 +55,7 @@ class TaskAdapter(context: Context) : ListAdapter(context) { oldItem?.title != null && newItem?.title != null -> true oldItem?.dailyTask != null && newItem?.dailyTask != null -> { - oldItem.dailyTask?.id == newItem.dailyTask?.id + (oldItem.dailyTask?.id == newItem.dailyTask?.id && oldItem.dailyTask?.status == newItem.dailyTask?.status) } else -> super.areItemsTheSame(oldItem, newItem) @@ -71,7 +71,7 @@ class TaskAdapter(context: Context) : ListAdapter(context) { oldItem?.title != null && newItem?.title != null -> true oldItem?.dailyTask != null && newItem?.dailyTask != null -> { - oldItem.dailyTask?.id == newItem.dailyTask?.id + (oldItem.dailyTask?.id == newItem.dailyTask?.id && oldItem.dailyTask?.status == newItem.dailyTask?.status) } else -> super.areContentsTheSame(oldItem, newItem) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt index 49a9f8c25b..84074bb0ef 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt @@ -7,6 +7,7 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import com.gh.common.util.EnergyTaskHelper import com.gh.common.util.ToastUtils import com.gh.common.util.createRequestBody import com.gh.gamecenter.R @@ -237,6 +238,8 @@ class UserHomeViewModel(application: Application, var userId: String) : AndroidV .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : BiResponse() { override fun onSuccess(data: SignStatusEntity) { + EnergyTaskHelper.postEnergyTask("sign_in_cumulatively") + EnergyTaskHelper.postEnergyTask("sign_in_continuously") sign.postValue(data) } }) From 05e36f11cf42f51beb1d04511b0a1a1bf8746a45 Mon Sep 17 00:00:00 2001 From: Jack <1484288157@qq.com> Date: Tue, 18 May 2021 14:57:36 +0800 Subject: [PATCH 18/36] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=B5=81=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gamecenter/video/detail/VideoDetailContainerFragment.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index 45a41248e6..fd7e3f5821 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -202,8 +202,10 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener { mBinding.attentionNoLoginContainer.visibility = View.GONE mBinding.recyclerview.visibility = View.GONE mBinding.refresh.isRefreshing = false - mAdapter.videoList.clear() - mAdapter.notifyDataSetChanged() + if (::mAdapter.isInitialized) { + mAdapter.videoList.clear() + mAdapter.notifyDataSetChanged() + } } else { showNoDataErrorView() toast("内容可能已被删除") From e9d2c6573f6c9857523e16f8ddde1f33fafc57a7 Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 18 May 2021 15:02:26 +0800 Subject: [PATCH 19/36] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83=E5=90=8E=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=B1=87=E6=80=BB(22)=20https://git.ghzs.com?= =?UTF-8?q?/pm/halo-app-issues/-/issues/1262?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/ShareUtils.java | 4 ++++ .../gh/gamecenter/qa/dialog/MoreFunctionPanelDialog.kt | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index 97a4616c03..af3e522e63 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -726,6 +726,10 @@ public class ShareUtils { return mTitle; } + public String getShareUrl() { + return shareUrl; + } + private class ShareRecyclerViewAdapter extends RecyclerView.Adapter { private OnItemClickListener listener; diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/MoreFunctionPanelDialog.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/MoreFunctionPanelDialog.kt index 0a43590a56..b31c89b478 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/MoreFunctionPanelDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/MoreFunctionPanelDialog.kt @@ -1,7 +1,10 @@ package com.gh.gamecenter.qa.dialog import android.os.Bundle -import android.view.* +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.app.AppCompatActivity @@ -20,7 +23,6 @@ class MoreFunctionPanelDialog : BaseDraggableDialogFragment() { private lateinit var binding: DialogGameDetailMoreBinding var menuItems: ArrayList = arrayListOf() var title: String = "" - var shareUrl: String = "" var shareUtils: ShareUtils? = null var onItemClickCallback: ((menuItem: MenuItemEntity) -> Unit)? = null @@ -62,7 +64,7 @@ class MoreFunctionPanelDialog : BaseDraggableDialogFragment() { MtaHelper.onEvent("内容分享", "短信", shareUtils?.title) } binding.copyLinkTv.setOnClickListener { - shareUtils?.copyLink(shareUrl) + shareUtils?.copyLink(shareUtils?.shareUrl) MtaHelper.onEvent("内容分享", "复制链接", shareUtils?.title) } binding.cancelTv.setOnClickListener { From 6425f3d50cdaac2e251b0774ed9c5817d8914ea0 Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Wed, 19 May 2021 11:11:47 +0800 Subject: [PATCH 20/36] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.9.?= =?UTF-8?q?0-=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=88=E7=AC=AC3=E6=9C=9F=EF=BC=89(0518=20=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E5=8F=8D=E9=A6=88)=20https://git.ghzs.com/pm/halo-app-issues/-?= =?UTF-8?q?/issues/1206#note=5F101568?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/fragment/LoginFragment.java | 2 +- app/src/main/res/layout/fragment_login.xml | 156 ++++++++---------- 2 files changed, 73 insertions(+), 85 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java index cfa1ac97f9..0b6df5e558 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java @@ -186,7 +186,7 @@ LoginFragment extends NormalFragment implements LoginUtils.onCaptchaCallBackList requireActivity().getWindowManager().getDefaultDisplay().getRealMetrics(metrics); screenHeight = metrics.heightPixels; } - params.topMargin = screenHeight * 2564 / 10000; + params.topMargin = screenHeight * 80 / 640; mLoginPhoneContainer.setLayoutParams(params); if (mStatus == LoginActivity.STATUS_DEFAULT) { diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml index 32e7ec4cd4..68ed0f4dbd 100644 --- a/app/src/main/res/layout/fragment_login.xml +++ b/app/src/main/res/layout/fragment_login.xml @@ -14,17 +14,11 @@ android:layout_height="match_parent" android:fitsSystemWindows="true"/> - - @@ -124,13 +118,62 @@ + + + + + + + + + + + + + + + android:orientation="horizontal"> - + - + - - - - - - - - - - - - - - - - - - + Date: Wed, 19 May 2021 14:59:00 +0800 Subject: [PATCH 21/36] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E9=A1=B5UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/fragment_login.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml index 68ed0f4dbd..84600f46d0 100644 --- a/app/src/main/res/layout/fragment_login.xml +++ b/app/src/main/res/layout/fragment_login.xml @@ -17,7 +17,7 @@ + android:textSize="14sp" /> Date: Wed, 19 May 2021 15:34:23 +0800 Subject: [PATCH 22/36] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.7.?= =?UTF-8?q?0-=E7=A7=AF=E5=88=86=E4=BD=93=E7=B3=BB=EF=BC=88=E7=AC=AC2?= =?UTF-8?q?=E6=9C=9F=EF=BC=89--=E5=85=89=E8=83=BD=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=EF=BC=880519=20=E8=BF=90=E8=90=A5=E5=8F=8D=E9=A6=88=20?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=AD=BE=E5=88=B0=E6=8F=90=E9=86=92=EF=BC=89?= =?UTF-8?q?https://git.ghzs.com/pm/halo-app-issues/-/issues/1110#note=5F10?= =?UTF-8?q?1733?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 12 -- app/src/main/AndroidManifest.xml | 4 - .../com/gh/common/constant/Constants.java | 3 - .../java/com/gh/common/util/CalendarHelper.kt | 190 ------------------ .../java/com/gh/common/util/DialogUtils.java | 13 -- .../java/com/gh/common/util/Extensions.kt | 16 -- .../com/gh/common/util/PermissionHelper.kt | 42 ---- .../gamecenter/energy/EnergyCenterFragment.kt | 46 +---- .../ic_energy_center_switch_off.webp | Bin 1270 -> 0 bytes .../ic_energy_center_switch_on.webp | Bin 1608 -> 0 bytes .../drawable-xxhdpi/ic_sign_remind_close.webp | Bin 2104 -> 0 bytes .../ic_sign_remind_success.webp | Bin 3752 -> 0 bytes .../res/layout/dialog_sign_remind_success.xml | 53 ----- .../res/layout/fragment_energy_center.xml | 23 --- app/src/main/res/values/strings.xml | 4 - 15 files changed, 1 insertion(+), 405 deletions(-) delete mode 100644 app/src/main/java/com/gh/common/util/CalendarHelper.kt delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_off.webp delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_on.webp delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_sign_remind_close.webp delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_sign_remind_success.webp delete mode 100644 app/src/main/res/layout/dialog_sign_remind_success.xml diff --git a/app/build.gradle b/app/build.gradle index 406437c486..bb2b93d9b5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -159,9 +159,6 @@ android { buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\"" buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\"" buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\"" - - manifestPlaceholders.put("optionalPermission1", "android.permission.INTERNET") - manifestPlaceholders.put("optionalPermission2", "android.permission.INTERNET") } // internal test dev host internal { @@ -175,9 +172,6 @@ android { buildConfigField "String", "UMENG_APPKEY", "\"${DEV_UMENG_APPKEY}\"" buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${DEV_UMENG_MESSAGE_SECRET}\"" buildConfigField "String", "BUGLY_APPID", "\"${DEV_BUGLY_APPID}\"" - - manifestPlaceholders.put("optionalPermission1", "android.permission.READ_CALENDAR") - manifestPlaceholders.put("optionalPermission2", "android.permission.WRITE_CALENDAR") } tea { @@ -192,9 +186,6 @@ android { buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\"" manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase()) - - manifestPlaceholders.put("optionalPermission1", "android.permission.INTERNET") - manifestPlaceholders.put("optionalPermission2", "android.permission.INTERNET") } gdt { @@ -207,9 +198,6 @@ android { buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\"" buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\"" buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\"" - - manifestPlaceholders.put("optionalPermission1", "android.permission.INTERNET") - manifestPlaceholders.put("optionalPermission2", "android.permission.INTERNET") } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5083acb860..317c294e5b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,10 +28,6 @@ - - - - diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 26c222a732..44464fce18 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -176,9 +176,6 @@ public class Constants { // 是否已经填写邀请码 public static final String SP_HAS_COMPLETE_INVITE_CODE = "has_complete_invite_code"; - // 签到提醒开关 - public static final String SP_SIGN_REMIND = "sign_remind"; - // 补充配置项 public static final String SP_NEW_SETTINGS = "new_settings"; diff --git a/app/src/main/java/com/gh/common/util/CalendarHelper.kt b/app/src/main/java/com/gh/common/util/CalendarHelper.kt deleted file mode 100644 index fca7644395..0000000000 --- a/app/src/main/java/com/gh/common/util/CalendarHelper.kt +++ /dev/null @@ -1,190 +0,0 @@ -package com.gh.common.util - -import android.content.ContentUris -import android.content.ContentValues -import android.content.Context -import android.database.Cursor -import android.net.Uri -import android.provider.CalendarContract.* -import android.text.TextUtils -import com.gh.common.constant.Constants -import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.R -import java.util.* - - -/** - * 签到日历提醒辅助类 - */ -object CalendarHelper { - - private val CALENDAR_URL = Calendars.CONTENT_URI - private val CALENDAR_EVENT_URL = Events.CONTENT_URI - private val CALENDAR_REMINDER_URL = Reminders.CONTENT_URI - private const val CALENDARS_NAME = "guanghuan" - private const val CALENDARS_ACCOUNT_TYPE = BuildConfig.APPLICATION_ID - private const val CALENDARS_DISPLAY_NAME = "光环助手" - - - private fun checkAndAddCalendarAccount(context: Context): Int { - val oldId: Int = checkCalendarAccount(context) - return if (oldId >= 0) { - oldId - } else { - val addId: Long = addCalendarAccount(context) - if (addId >= 0) { - checkCalendarAccount(context) - } else { - -1 - } - } - } - - private fun checkCalendarAccount(context: Context): Int { - val userCursor: Cursor? = context.contentResolver.query(CALENDAR_URL, - null, null, null, null) - return userCursor?.use { - val count: Int = it.count - if (count > 0) { // 存在现有账户,取第一个账户的id返回 - it.moveToFirst() - it.getInt(userCursor.getColumnIndex(Calendars._ID)) - } else { - -1 - } - } ?: -1 - } - - private fun addCalendarAccount(context: Context): Long { - val value = ContentValues().apply { - put(Calendars.NAME, CALENDARS_NAME) - put(Calendars.ACCOUNT_NAME, CALENDARS_DISPLAY_NAME) - put(Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE) - put(Calendars.CALENDAR_DISPLAY_NAME, CALENDARS_DISPLAY_NAME) - put(Calendars.VISIBLE, 1) - put(Calendars.CALENDAR_COLOR, R.color.theme.toColor()) - put(Calendars.CALENDAR_ACCESS_LEVEL, Calendars.CAL_ACCESS_OWNER) - put(Calendars.SYNC_EVENTS, 1) - put(Calendars.CALENDAR_TIME_ZONE, TimeZone.getDefault().id) - put(Calendars.OWNER_ACCOUNT, CALENDARS_NAME) - put(Calendars.CAN_ORGANIZER_RESPOND, 0) - } - - var calendarUri: Uri = CALENDAR_URL - calendarUri = calendarUri.buildUpon() - .appendQueryParameter(CALLER_IS_SYNCADAPTER, "true") - .appendQueryParameter(Calendars.ACCOUNT_NAME, CALENDARS_NAME) - .appendQueryParameter(Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE) - .build() - val result: Uri? = context.contentResolver.insert(calendarUri, value) - return if (result == null) -1 else ContentUris.parseId(result) - } - - fun insertCalendarEvent(context: Context, - title: String, - description: String, - beginTimeMillis: Long, - endTimeMillis: Long, - rRule: String?): Boolean { - val calendarId = checkAndAddCalendarAccount(context) // 获取日历账户的id - if (calendarId < 0) { // 获取账户id失败直接返回,添加日历事件失败 - return false - } - - // 判断之前是否已经插入日程,有就返回 - val eventCursor = context.contentResolver.query(CALENDAR_EVENT_URL, - null, null, null, null) - eventCursor?.use { - if (it.count > 0) { - // 遍历所有事件,找到title跟需要查询的title一样的项 - it.moveToFirst() - while (!it.isAfterLast) { - val eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title")) - if (!TextUtils.isEmpty(title) && title == eventTitle) { - return true - } - it.moveToNext() - } - } - } - - try { - /** 插入日程 */ - val eventValues = ContentValues().apply { - if (rRule != null) put(Events.RRULE, rRule) - put(Events.DTSTART, beginTimeMillis) - put(Events.DTEND, endTimeMillis) - put(Events.TITLE, title) - put(Events.DESCRIPTION, description) - put(Events.CALENDAR_ID, calendarId) - put(Events.EVENT_TIMEZONE, TimeZone.getDefault().id) - } - - // 检测是否存在已保存的日程ID,有则更新 - val scheduleId = SPUtils.getLong(Constants.SP_SCHEDULE_ID) - if (scheduleId != 0L) { - val updateUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, scheduleId) - val rows = context.contentResolver.update(updateUri, eventValues, null, null) - if (rows != -1) return true - } - - val eUri: Uri? = context.contentResolver.insert(CALENDAR_EVENT_URL, eventValues) - val eventId = eUri?.let { ContentUris.parseId(it) } - if (eventId == 0L) { // 插入失败 - return false - } else { - // 保存日程ID - SPUtils.setLong(Constants.SP_SCHEDULE_ID, eventId ?: 0L) - } - /** 插入提醒 - 依赖插入日程成功 */ - val reminderValues = ContentValues() - // uri.getLastPathSegment(); - reminderValues.put(Reminders.EVENT_ID, eventId) - reminderValues.put(Reminders.MINUTES, 0) // 准时提醒 - reminderValues.put(Reminders.METHOD, Reminders.METHOD_ALERT) - val rUri: Uri? = context.contentResolver.insert(CALENDAR_REMINDER_URL, reminderValues) - if (rUri == null || ContentUris.parseId(rUri) == 0L) { - return false - } - } catch (e: Exception) { - e.printStackTrace() - return false - } - return true - } - - fun deleteCalendarEvent(context: Context, - title: String): Boolean { - - // 检测是否存在已保存的日程ID,有则根据该ID删除 - val scheduleId = SPUtils.getLong(Constants.SP_SCHEDULE_ID) - if (scheduleId != 0L) { - val deleteUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, scheduleId) - val rows = context.contentResolver.delete(deleteUri, null, null) - if (rows != -1) { - SPUtils.setLong(Constants.SP_SCHEDULE_ID, 0L) - return true - } - } - val eventCursor = context.contentResolver.query(CALENDAR_EVENT_URL, - null, null, null, null) - eventCursor?.use { - if (it.count > 0) { - // 遍历所有事件,找到title跟需要查询的title一样的项 - it.moveToFirst() - while (!it.isAfterLast) { - val eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title")) - if (!TextUtils.isEmpty(title) && title == eventTitle) { - val id = eventCursor.getInt(eventCursor - .getColumnIndex(Calendars._ID)) // 取得id - val deleteUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, id.toLong()) - val rows = context.contentResolver.delete(deleteUri, null, null) - SPUtils.setLong(Constants.SP_SCHEDULE_ID, 0L) - return rows != -1 - } - it.moveToNext() - } - } - } - return false - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 1a5a06eb42..35d845943c 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -2111,19 +2111,6 @@ public class DialogUtils { dialog.show(); } - public static void showSignRemindSuccessDialog(Context context) { - context = checkDialogContext(context); - - final Dialog dialog = new Dialog(context, R.style.DialogWindowTransparent); - - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_sign_remind_success, null); - contentView.findViewById(R.id.closeIv).setOnClickListener(v -> dialog.dismiss()); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); - } - public static void showBindPhoneDialog(Context context, ConfirmListener listener) { context = checkDialogContext(context); diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index ddffef5ba2..ffc3c926c6 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -549,14 +549,6 @@ fun Fragment.checkStoragePermissionBeforeAction(action: (() -> Unit)) { }) } -fun Fragment.checkCalendarPermissionBeforeAction(action: (() -> Unit)) { - PermissionHelper.checkCalendarPermissionBeforeAction(requireContext(), object : EmptyCallback { - override fun onCallback() { - action.invoke() - } - }) -} - fun FragmentActivity.checkReadPhoneStateAndStoragePermissionBeforeAction(action: (() -> Unit)) { PermissionHelper.checkReadPhoneStateAndStoragePermissionBeforeAction(this, object : EmptyCallback { override fun onCallback() { @@ -581,14 +573,6 @@ fun FragmentActivity.checkStoragePermissionBeforeAction(action: (() -> Unit)) { }) } -fun FragmentActivity.checkCalendarPermissionBeforeAction(action: (() -> Unit)) { - PermissionHelper.checkCalendarPermissionBeforeAction(this, object : EmptyCallback { - override fun onCallback() { - action.invoke() - } - }) -} - /** * List related. */ diff --git a/app/src/main/java/com/gh/common/util/PermissionHelper.kt b/app/src/main/java/com/gh/common/util/PermissionHelper.kt index fbdf8573f2..9bba8e7a47 100644 --- a/app/src/main/java/com/gh/common/util/PermissionHelper.kt +++ b/app/src/main/java/com/gh/common/util/PermissionHelper.kt @@ -175,48 +175,6 @@ object PermissionHelper { } } - @SuppressLint("CheckResult") - @JvmStatic - fun checkCalendarPermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { - if (context is FragmentActivity) { - val rxPermission = RxPermissions(context) - - tryWithDefaultCatch { - rxPermission - .requestEachCombined(Manifest.permission.WRITE_CALENDAR, Manifest.permission.READ_CALENDAR) - .subscribe { permission -> - when { - permission.granted -> { - emptyCallback.onCallback() - } - permission.shouldShowRequestPermissionRationale -> { - DialogUtils.showPermissionDialog(context, - "权限申请", - "光环助手需要日历权限,以保证能正常使用相关功能", - "重试", - "放弃", - { checkCalendarPermissionBeforeAction(context, emptyCallback) }, - null) - } - else -> { - DialogUtils.showPermissionDialog(context, - "权限申请", - "在设置-应用-光环助手-权限中开启日历权限,以保证能正常使用相关功能", - "去设置", - "放弃", - { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.getPackageName()) - context.startActivity(intent) - }, - null) - } - } - } - } - } - } - /** * 跳转到权限设置 * diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt index 78ff5f4973..6b7c58fedd 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt @@ -60,13 +60,11 @@ class EnergyCenterFragment : BaseLazyFragment() { mBinding?.run { background.setImageResource(R.drawable.bg_energy_center_day) signTitle.setTextColor(R.color.theme_font.toColor()) - signRemind.setTextColor(R.color.theme_font.toColor()) } } else { mBinding?.run { background.setImageResource(R.drawable.bg_energy_center_night) signTitle.setTextColor(R.color.white.toColor()) - signRemind.setTextColor(R.color.white.toColor()) } } @@ -138,11 +136,6 @@ class EnergyCenterFragment : BaseLazyFragment() { height = screenWidth * 400 / 360 } - signSwitch.setImageResource(if (SPUtils.getBoolean(Constants.SP_SIGN_REMIND)) - R.drawable.ic_energy_center_switch_on - else - R.drawable.ic_energy_center_switch_off) - val screenHeight = when { Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1 -> { resources.displayMetrics.heightPixels @@ -321,7 +314,7 @@ class EnergyCenterFragment : BaseLazyFragment() { } } - @OnClick(R.id.backIv, R.id.userEnergyContainer, R.id.energyRuleTv, R.id.inviteFriends, R.id.signSwitch, R.id.signToday, R.id.signRule, + @OnClick(R.id.backIv, R.id.userEnergyContainer, R.id.energyRuleTv, R.id.inviteFriends, R.id.signToday, R.id.signRule, R.id.oneDay, R.id.twoDay, R.id.threeDay, R.id.fourDay, R.id.fiveDay, R.id.sixDay, R.id.sevenDay) fun onViewClicked(v: View) { when (v.id) { @@ -358,16 +351,6 @@ class EnergyCenterFragment : BaseLazyFragment() { } } - R.id.signSwitch -> { - IntegralLogHelper.log("click_sign_remind", LOCATION) - - ifLogin("光能中心-签到提醒") { - if (!ClickUtils.isFastDoubleClick()) { - dealSignRemind() - } - } - } - R.id.signRule -> { IntegralLogHelper.log("click_sign_rule", LOCATION) DialogUtils.showSignRuleDialog(requireContext()) @@ -456,33 +439,6 @@ class EnergyCenterFragment : BaseLazyFragment() { mUserHomeViewModel?.signIn() } - private fun dealSignRemind() { - checkCalendarPermissionBeforeAction { - if (SPUtils.getBoolean(Constants.SP_SIGN_REMIND)) { - CalendarHelper.deleteCalendarEvent( - requireContext(), - R.string.sign_remind_title.toResString()) - SPUtils.setBoolean(Constants.SP_SIGN_REMIND, false) - mBinding?.signSwitch?.setImageResource(R.drawable.ic_energy_center_switch_off) - } else { - val isSuccess = CalendarHelper.insertCalendarEvent( - requireContext(), - R.string.sign_remind_title.toResString(), - R.string.sign_remind_desc.toResString(), - TimeUtils.getTimeOfToday(10), - TimeUtils.getTimeOfToday(10, 30), - "FREQ=DAILY") - if (isSuccess) { - SPUtils.setBoolean(Constants.SP_SIGN_REMIND, true) - DialogUtils.showSignRemindSuccessDialog(requireContext()) - mBinding?.signSwitch?.setImageResource(R.drawable.ic_energy_center_switch_on) - } else { - ToastUtils.showToast("添加签到提醒失败") - } - } - } - } - fun openBottomSheet(callback: () -> Unit) { if (mBehavior?.state == BottomSheetBehavior.STATE_EXPANDED) { callback.invoke() diff --git a/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_off.webp b/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_off.webp deleted file mode 100644 index 0ef83fe19c89ee1a126bbcae136a4219a1712ed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1270 zcmV2!WsJ3QK_5m_~E7yu3<$u_O?{JxE6`{Wd%f^*2*oS1&znGGPEgv#>*{FXr zW;;_p;a(^GtLgg5N3&S}E}p&J)};cJ>o?n~R)l)>a+{Y5QO;j%POKQQ^R!ukf&|v% z+7Ajc>>uytijq6`b?gPdggNVpAZOAWd->1z-}#+@9>5=<0ia>v*nE|axZ*!&4Ap?gM+&I#!w^(lh*xlv z72U4NpLNTx3X2q~5I(|6e0(e=kc79``EilXvSWyS5mGon?_Rbb|Bs=70RI2jy3WJ? z5EAU?2Wc$={z5wuGlf1@9G2_(B)(bsDee#a*@s}kV-0is-Jj3E7I#FSF;X=A-s@l| zBC2YG{`+_2l6B@)&7+9pZCh^ zU2lBO{;y4YEj{~xhZJe=vXa~Yj%&H~ZPXrVp)gk(KRXjfYrbO36!c7CwrmH9EHgbT z-~O4yaZuYhiJK{c1QhZ2nBPf9^EKHfW@%zZAUxulMlHki_n-G!bkYfuYPWGf5l>P7 z)v5Q+|MDB6(iCpk>#US>`H%>P<{re3wO&^FZjKs1s#r_x?@6Pn2#RM-@|W&pFb9!z z1;Cw+X%lQ#qOZ4r;OK#hHeK0H)1XcX*f5t+wNmg=`l-8@YC3v9*gaCvm&Msg{v~4S zj-=B9^NXMPJomDz=EwTEl=!%9GiZ zpR2a?9X1ki4f=_Z;Wyq48eP>l>dhfe2x3II2^;O(@2*+snhQi^=N}A5w>^9Bxcr-Awf8yoKm@pEk&$)&=o zAMqBGVa@LJPb7Bh{cPTOh0+g%UtDlF3$6H z=~+`455?`!h-IrholX*$SqtLyj4{VvXE1N@DxP(V_6?ew`8#TL2k?LX_P_hp>rjc7 zK?R@Sa8!)>AA{rjmj0YXZ9vyRRn6pNbe#7|hNu5y$NhXMEBi<0(zgOW!GH99Jfk_N g^AV1cvmU{wKu^y!>HICt)~kqHK@Ac$k=#fC0QHE7Jpcdz diff --git a/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_on.webp b/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_on.webp deleted file mode 100644 index 4eccadbe253d78016e5dd9b88b21c619cb2b0e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1608 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 - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_energy_center.xml b/app/src/main/res/layout/fragment_energy_center.xml index 32c4defde9..d21d260deb 100644 --- a/app/src/main/res/layout/fragment_energy_center.xml +++ b/app/src/main/res/layout/fragment_energy_center.xml @@ -156,29 +156,6 @@ android:layout_toRightOf="@+id/signTitle" android:src="@drawable/ic_sign_rule" /> - - - - 签到规则 1、每日可领取2个光能、1个成长值,最多领取连续7天签到奖励,中断或签满7天则重新计算 2、连续签满7天可额外奖励1次免费抽奖机会 - 【光环助手】又有光能可以收了!收能量兑大奖! - 每日10点连续签到领能量,赶紧行动吧! - 开启成功 - 系统日历将准时提醒您签到 提示 填写邀请码需验证手机号绑定信息,检测\n到您未绑定手机(仅限新手机号绑定) From 3abf29fa7569e5060a166741e6474df81bbeb589 Mon Sep 17 00:00:00 2001 From: lyr <15622190878@163.com> Date: Wed, 19 May 2021 15:57:21 +0800 Subject: [PATCH 23/36] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E9=A1=B5UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/constant/Constants.java | 3 --- app/src/main/res/layout/fragment_login.xml | 16 ++++++++-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 44464fce18..485f734ece 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -187,9 +187,6 @@ public class Constants { // 悬浮图标Y值 public static final String SP_TASK_FLOAT_LAST_Y = "task_float_last_y"; - // 日程ID - public static final String SP_SCHEDULE_ID = "schedule_id"; - // 是否第一次进入新分类2.0 public static final String SP_FIRST_ENTER_CATEGORY_V2 = "first_enter_category_v2"; diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml index 84600f46d0..6887c3f573 100644 --- a/app/src/main/res/layout/fragment_login.xml +++ b/app/src/main/res/layout/fragment_login.xml @@ -30,7 +30,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="16dp" android:textColor="@color/text_333333" - android:textSize="16sp" + android:textSize="14sp" android:text="@string/login_phone_prefix" /> + android:textSize="14sp" /> @@ -105,16 +105,16 @@ + android:textSize="14sp" /> From 4b851732c93d12db6c382a25c9e118c0d0e6a7f8 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 19 May 2021 16:53:51 +0800 Subject: [PATCH 24/36] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E5=8C=85=E6=9A=82?= =?UTF-8?q?=E4=B8=8D=E5=90=AF=E7=94=A8=20AndResGuard=20(=E6=97=A7=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=9C=A8=E6=96=B0AGP=E4=B8=8A=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=90=AF=E7=94=A8=20V3=20=E7=AD=BE=E5=90=8D=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=9C=A8=E8=93=9D=E5=8F=A0=E6=A8=A1=E6=8B=9F?= =?UTF-8?q?=E5=99=A8=E4=B8=8A=E6=97=A0=E6=B3=95=E8=BF=90=E8=A1=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/build_with_simple_backup.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/build_with_simple_backup.sh b/scripts/build_with_simple_backup.sh index a4e69b9b0e..5dab91e322 100755 --- a/scripts/build_with_simple_backup.sh +++ b/scripts/build_with_simple_backup.sh @@ -24,15 +24,15 @@ while getopts "tg" arg do case ${arg} in t) - ./gradlew rTR -I init.gradle - ./gradlew rTR -I init.gradle + ./gradlew aTR -I init.gradle + ./gradlew aTR -I init.gradle mkdir -p release-app/${versionName}_${versionCode} cp -R app/build/outputs/apk/tea/release/app-tea-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_头条推广正式包_${git_sha}_${build_time}.apk exit ;; g) - ./gradlew rGR -I init.gradle - ./gradlew rGR -I init.gradle + ./gradlew aGR -I init.gradle + ./gradlew aGR -I init.gradle mkdir -p release-app/${versionName}_${versionCode} cp -R app/build/outputs/apk/gdt/release/app-gdt-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_广点通推广正式包_${git_sha}_${build_time}.apk exit @@ -41,8 +41,8 @@ do done # 不存在指令时打普通包 -./gradlew rPR -I init.gradle -./gradlew rPR -I init.gradle +./gradlew aPR -I init.gradle +./gradlew aPR -I init.gradle mkdir -p release-app/${versionName}_${versionCode} cp -R app/build/outputs/apk/publish/release/app-publish-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_标准正式包_${git_sha}_${build_time}.apk From feb30ff3a44e2155aeb17fa057029640f43776b2 Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 24 May 2021 14:59:14 +0800 Subject: [PATCH 25/36] =?UTF-8?q?1.=20=E5=8E=BB=E6=8E=89=20SYSTEM=5FALERT?= =?UTF-8?q?=5FWINDOW=20=E6=9D=83=E9=99=90=E5=A3=B0=E6=98=8E=202.=20?= =?UTF-8?q?=E5=AE=8C=E6=88=90=20https://git.ghzs.com/pm/halo-app-issues/-/?= =?UTF-8?q?issues/1262=20=E7=9A=84=E7=AC=AC32=E7=82=B9=203.=20=E5=8F=96?= =?UTF-8?q?=E6=B6=88=20WorkManager=20=E8=87=AA=E5=8A=A8=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E5=85=B3=E9=97=AD=20Sentry=20=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E7=B3=BB=E7=BB=9F=E4=BA=8B=E4=BB=B6=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 12 +++++++++-- .../gh/gamecenter/fragment/LoginFragment.java | 20 +++++++++++++++---- app/src/main/res/layout/fragment_login.xml | 2 +- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 317c294e5b..7654d829c4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,8 +23,6 @@ - - @@ -82,6 +80,11 @@ android:name="io.sentry.auto-init" android:value="false" /> + + + + + diff --git a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java index 0b6df5e558..598c9fdd35 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java @@ -27,6 +27,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; @@ -251,15 +252,17 @@ LoginFragment extends NormalFragment implements LoginUtils.onCaptchaCallBackList case R.id.checkIv: case R.id.checkClickView1: case R.id.checkClickView2: - mCheckIv.setChecked(!mCheckIv.isChecked()); + updatePolicyCheckedStatus(); break; case R.id.login_captcha: MtaHelper.onEvent("我的光环_新", "登录页面", "获取验证码"); final String phoneNum = mLoginPhoneEt.getText().toString().trim().replaceAll(" ", ""); if (PatternUtils.isPhoneNum(phoneNum) && phoneNum.length() == 11) { - mLoginCaptcha.setEnabled(false); - ExtensionsKt.showKeyBoard(mLoginPassEt); - LoginUtils.getPhoneCaptcha(getContext(), phoneNum, LoginFragment.this); + if (isAgreePolicy()) { + mLoginCaptcha.setEnabled(false); + ExtensionsKt.showKeyBoard(mLoginPassEt); + LoginUtils.getPhoneCaptcha(getContext(), phoneNum, LoginFragment.this); + } } else { toast("请输入正确的手机号"); } @@ -517,4 +520,13 @@ LoginFragment extends NormalFragment implements LoginUtils.onCaptchaCallBackList } } + + private void updatePolicyCheckedStatus() { + mCheckIv.setChecked(!mCheckIv.isChecked()); + if (mCheckIv.isChecked()) { + mLoginCaptcha.setTextColor(ContextCompat.getColor(requireContext(), R.color.theme_font)); + } else { + mLoginCaptcha.setTextColor(ContextCompat.getColor(requireContext(), R.color.text_999999)); + } + } } diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml index 6887c3f573..1f1ac36ae9 100644 --- a/app/src/main/res/layout/fragment_login.xml +++ b/app/src/main/res/layout/fragment_login.xml @@ -87,7 +87,7 @@ android:layout_centerVertical="true" android:gravity="center" android:text="@string/login_get_captcha" - android:textColor="@color/theme_font" + android:textColor="@color/text_999999" android:textSize="14sp"/> From fd946703a980b7bc1e830da717448b74deb1bcd6 Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 24 May 2021 15:01:38 +0800 Subject: [PATCH 26/36] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=87=B3=204.9.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index cfddf2bd91..0a5e112f45 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 26 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 330 - versionName = "4.9.0" + versionCode = 331 + versionName = "4.9.1" applicationId = "com.gh.gamecenter" // AndroidX From 895024aa09733d269747b322c87451d280fd9ed7 Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 25 May 2021 10:53:47 +0800 Subject: [PATCH 27/36] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E5=88=9D=E5=A7=8B=E5=8C=96=E5=9B=BE=E7=89=87=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=BA=93=E5=8F=AF=E8=83=BD=E7=9A=84=E9=97=AA=E9=80=80?= =?UTF-8?q?=E9=97=AE=E9=A2=98=202.=20=E4=BF=AE=E5=A4=8D=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=9C=80=E6=96=B0=E5=BC=80=E6=9C=8D=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E7=9A=84=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98=203.=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8=E8=B6=8A=E5=8D=97/=E6=B3=95?= =?UTF-8?q?=E8=AF=AD=E8=AE=BE=E5=A4=87=E4=B8=8A=E5=90=AF=E5=8A=A8=E4=BC=9A?= =?UTF-8?q?=E9=97=AA=E9=80=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/Extensions.kt | 4 +- .../java/com/gh/common/util/ImageUtils.kt | 18 ++ .../java/com/gh/common/xapk/XapkInstaller.kt | 9 +- .../java/com/gh/gamecenter/MainActivity.java | 18 +- .../desc/GameLatestServiceAdapter.kt | 11 +- .../main/java/com/halo/assistant/HaloApp.java | 7 +- channel.txt | 191 +----------------- 7 files changed, 44 insertions(+), 214 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index ffc3c926c6..4c731bf9fc 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -489,8 +489,8 @@ fun Float.sp2px(): Int { return (this * scale + 0.5f).toInt() } -fun Float.roundTo(n : Int) : Float { - return "%.${n}f".format(this).toFloat() +fun Float.roundTo(n: Int): Float { + return "%.${n}f".format(Locale.CHINA, this).toFloat() } /** diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.kt b/app/src/main/java/com/gh/common/util/ImageUtils.kt index ba50e66860..356fd00b82 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.kt +++ b/app/src/main/java/com/gh/common/util/ImageUtils.kt @@ -484,4 +484,22 @@ object ImageUtils { fun getVideoSnapshot(videoUrl: String, progress: Long): String { return "$videoUrl?x-oss-process=video/snapshot,t_$progress,f_jpg,w_0,h_0" } + + /** + * 虽然在 Application 里有使用子线程初始化但有可能出现初始化超时(卡住?)的情况, + * 这里反射获取 sDraweecontrollerbuildersupplier 根据是否有值确定是否被初始化了 + */ + @JvmStatic + fun isFrescoInitialized(): Boolean { + val clazz = SimpleDraweeView::class.java + return try { + val field = + clazz.getDeclaredField("sDraweecontrollerbuildersupplier") + field.isAccessible = true + val obj = field[SimpleDraweeView::class.java] + obj != null + } catch (ignore: java.lang.Exception) { + false + } + } } diff --git a/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt b/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt index 44d6d7410a..e0acc015f1 100644 --- a/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt +++ b/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt @@ -121,9 +121,14 @@ object XapkInstaller : IXapkUnzipListener { DownloadManager.getInstance(mContext).updateDownloadEntity(downloadEntity) } - SentryHelper.onEvent("XAPK_UNZIP_ERROR", + // 仅官网渠道上报 XAPK 异常信息 + if (HaloApp.getInstance().channel == "GH_206") { + SentryHelper.onEvent( + "XAPK_UNZIP_ERROR", "gameName", downloadEntity.name, - "errorDigest", exception.localizedMessage) + "errorDigest", exception.localizedMessage + ) + } debugOnly { Utils.log("unzip", "onFailure->$exception") diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index f1e17667aa..0846bc6d19 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -52,6 +52,7 @@ import com.gh.common.util.ErrorHelper; import com.gh.common.util.ExtensionsKt; import com.gh.common.util.GsonUtils; import com.gh.common.util.HomePluggableHelper; +import com.gh.common.util.ImageUtils; import com.gh.common.util.LogUtils; import com.gh.common.util.LunchType; import com.gh.common.util.MtaHelper; @@ -176,7 +177,7 @@ public class MainActivity extends BaseActivity { super.onCreate(savedInstanceState); setStatusBarColor(Color.TRANSPARENT); - if (!isFrescoInitialized()) { + if (!ImageUtils.isFrescoInitialized()) { BigImageViewer.initialize(FrescoImageLoader.with(this)); } @@ -966,19 +967,4 @@ public class MainActivity extends BaseActivity { context.startActivity(intent); } - /** - * 虽然在 Application 里有使用子线程初始化但有可能出现初始化超时(卡住?)的情况, - * 这里反射获取 sDraweecontrollerbuildersupplier 根据是否有值确定是否被初始化了 - */ - public boolean isFrescoInitialized() { - Class clazz = SimpleDraweeView.class; - try { - Field field = clazz.getDeclaredField("sDraweecontrollerbuildersupplier"); - field.setAccessible(true); - Object object = field.get(SimpleDraweeView.class); - return object != null; - } catch (Exception ignore) { - return false; - } - } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt index efc46498e8..5399dd98c2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt @@ -1,11 +1,15 @@ package com.gh.gamecenter.gamedetail.desc import android.content.Context -import android.view.* +import android.view.Gravity +import android.view.LayoutInflater import android.view.View.MeasureSpec +import android.view.ViewGroup +import android.view.ViewTreeObserver import androidx.databinding.DataBindingUtil import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.TimeUtils +import com.gh.common.util.safelyGetInRelease import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemGameDetailLatestServiceBinding import com.gh.gamecenter.databinding.ItemGameDetailMoreBinding @@ -79,7 +83,10 @@ class GameLatestServiceAdapter(val context: Context, val datas: ArrayList Date: Tue, 25 May 2021 10:56:09 +0800 Subject: [PATCH 28/36] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=88=B0=204.9.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 0a5e112f45..e33c9efa25 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 26 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 331 - versionName = "4.9.1" + versionCode = 332 + versionName = "4.9.2" applicationId = "com.gh.gamecenter" // AndroidX From 49b74c9a371719ce7d1c6e04f9a2e2a192304cec Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 25 May 2021 14:37:31 +0800 Subject: [PATCH 29/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8C=85=E5=90=8D?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=BC=B9=E7=AA=97=E7=9A=84=E9=87=8D=E5=BB=BA?= =?UTF-8?q?=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/dialog/PackageCheckDialogFragment.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt index 2f4f14ab59..0838f5b080 100644 --- a/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt @@ -42,6 +42,7 @@ import org.greenrobot.eventbus.ThreadMode /** * 包名检测弹窗 */ +// TODO 将 gameEntity 放到 argument 里再取出,避免重建时为空 class PackageCheckDialogFragment : BaseDialogFragment() { private lateinit var binding: FragmentPackageCheckBinding @@ -73,7 +74,9 @@ class PackageCheckDialogFragment : BaseDialogFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) EventBus.getDefault().register(this) - LogUtils.uploadPackageCheck("pkg_check_pop_click", "出现弹窗", gameEntity, "", "", "", "") + gameEntity?.let { + LogUtils.uploadPackageCheck("pkg_check_pop_click", "出现弹窗", it, "", "", "", "") + } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { From 0c95f911d10e79fa6e0580aef77a4024cf0f4160 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 26 May 2021 09:43:40 +0800 Subject: [PATCH 30/36] =?UTF-8?q?=E6=8D=95=E6=8A=93=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE=E5=BA=93=E8=AF=BB=E5=86=99=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/util/HomePluggableHelper.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt b/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt index c2e75b8477..1e87908ee1 100644 --- a/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt +++ b/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt @@ -24,17 +24,24 @@ object HomePluggableHelper { val apkList = gameEntity.getApk() if (apkList.isNotEmpty()) { val apk = apkList.first() - val filterData = mHomePluggableFilterDao.getDataByPkgName(apk.packageName) - if (filterData?.active == true) { - val filterTag = filterData.tag - return filterTag != "never" && apk.version != filterTag + tryCatchInRelease { + val filterData = mHomePluggableFilterDao.getDataByPkgName(apk.packageName) + if (filterData?.active == true) { + val filterTag = filterData.tag + return filterTag != "never" && apk.version != filterTag + } } } return true } @JvmStatic - fun getPermanentInactivePluggablePackage() = mHomePluggableFilterDao.getDataByTag("never") + fun getPermanentInactivePluggablePackage(): List? { + tryCatchInRelease { + return mHomePluggableFilterDao.getDataByTag("never") + } + return emptyList() + } @JvmStatic fun activationFilterData() { From 075a7e4e77fc241b7f6a0c46061f929d262ad92a Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 26 May 2021 09:55:30 +0800 Subject: [PATCH 31/36] =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=93=E9=A2=98?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=BB=9A=E5=88=B0=E9=A1=B6=E9=83=A8=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/subject/SubjectListFragment.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt index 776a1385bf..0779b65c63 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt @@ -125,7 +125,9 @@ class SubjectListFragment : LazyListFragment() // 与外部Appbar交互 override fun onTitleClick() { - if (mLayoutManager.findFirstCompletelyVisibleItemPosition() == 0 || provideListAdapter().itemCount == 0) { + if (mLayoutManager == null + || mLayoutManager.findFirstCompletelyVisibleItemPosition() == 0 + || provideListAdapter().itemCount == 0) { // do nothing } else { mLayoutManager.scrollToPosition(0) From 156e52f6198e09fc6406caac29a6ec7b74764090 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 26 May 2021 14:26:49 +0800 Subject: [PATCH 32/36] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=204.9.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index e33c9efa25..c608d790c9 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 26 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 332 - versionName = "4.9.2" + versionCode = 333 + versionName = "4.9.3" applicationId = "com.gh.gamecenter" // AndroidX From dfc0183a140ed2fd4410896723b3f76de1387651 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 28 May 2021 10:26:50 +0800 Subject: [PATCH 33/36] =?UTF-8?q?1.=20=E5=A4=84=E7=90=86=E5=8C=85=E5=90=8D?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=BC=B9=E7=AA=97=E4=B8=8A=E6=8A=A5=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=9A=84=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AA=E9=80=80?= =?UTF-8?q?=E9=97=AE=E9=A2=98=202.=20=E6=8D=95=E6=8A=93=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=80=E9=94=AE=E7=99=BB=E5=BD=95=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E8=A7=A6=E5=8F=91=E7=9A=84=E9=97=AA=E9=80=80=E9=97=AE?= =?UTF-8?q?=E9=A2=98=203.=20=E4=BF=AE=E5=A4=8D=E7=A4=BC=E5=8C=85=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=A1=B5=E9=87=8D=E5=BB=BA=E6=97=B6=E7=9A=84=E9=97=AA?= =?UTF-8?q?=E9=80=80=E9=97=AE=E9=A2=98=204.=20=E4=BF=AE=E5=A4=8D=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E6=B5=81=E8=AF=84=E8=AE=BA=E9=A1=B5=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E9=87=8D=E5=BB=BA=E6=97=B6=E7=9A=84=E9=97=AA=E9=80=80=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/LogUtils.java | 2 ++ .../java/com/gh/common/util/QuickLoginHelper.kt | 4 +++- .../java/com/gh/gamecenter/LibaoDetailActivity.java | 4 +++- .../video/detail/VideoDetailContainerFragment.kt | 13 ++++++++----- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java index 611a1d0759..7710b9e81f 100644 --- a/app/src/main/java/com/gh/common/util/LogUtils.java +++ b/app/src/main/java/com/gh/common/util/LogUtils.java @@ -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(); diff --git a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt index c481ff3c4a..e574e6d0f9 100644 --- a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt +++ b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt @@ -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) { diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index 98a9e0ba9b..fa6258b050 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -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; diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index fd7e3f5821..9b75f2c864 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -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 { From 85d3412fd8c99d52988c0038df6c295aef3cc2fc Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 28 May 2021 10:28:06 +0800 Subject: [PATCH 34/36] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=88=B0=204.9.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index c608d790c9..5e4c26c07a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 26 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 333 - versionName = "4.9.3" + versionCode = 334 + versionName = "4.9.4" applicationId = "com.gh.gamecenter" // AndroidX From 06a43f617b9e42874506638e94d613a7e161d3a1 Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 31 May 2021 10:29:00 +0800 Subject: [PATCH 35/36] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=97=AA=E9=80=80=201.?= =?UTF-8?q?=20=E5=A4=84=E7=90=86=E9=A6=96=E9=A1=B5=20tab=20=E8=A7=A6?= =?UTF-8?q?=E6=91=B8=E6=97=B6=E6=9F=90=E4=BA=9B=E8=AE=BE=E5=A4=87=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E4=BC=9A=E9=97=AA=E9=80=80=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=202.=20=E4=BF=AE=E5=A4=8D=E6=B8=B8=E6=88=8F=E5=BA=93=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=8C=89=E9=92=AE=E8=A2=AB=E9=81=AE=E7=9B=96=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=203.=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E5=BA=93=E6=A8=AA=E5=90=91=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=9B=A0=E6=81=A2=E5=A4=8D=E6=BB=9A=E5=8A=A8=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E8=80=8C=E5=87=BA=E7=8E=B0=E7=9A=84=E9=97=AA=E9=80=80=204.=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=81=B6=E5=8F=91=E7=9A=84=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0=E6=B8=A0=E9=81=93=E5=8F=B7?= =?UTF-8?q?=E8=80=8C=E8=A7=A6=E5=8F=91=E7=9A=84=E9=97=AA=E9=80=80=205.=20?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8=E6=97=B6?= =?UTF-8?q?=E5=81=B6=E5=8F=91=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=8A=A0=E8=BD=BD=E5=BA=93=E8=A7=A6=E5=8F=91=E7=9A=84?= =?UTF-8?q?=E9=97=AA=E9=80=80=206.=20=E4=BF=AE=E5=A4=8D=20Android=2011=20?= =?UTF-8?q?=E9=A6=96=E6=AC=A1=E5=AE=89=E8=A3=85=20XAPK=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9D=83=E9=99=90=E5=9B=9E=E5=88=B0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/base/BaseActivity.java | 8 +++++--- .../main/java/com/gh/gamecenter/MainActivity.java | 7 +++++-- .../fragment/SearchToolWrapperFragment.java | 7 +++++++ .../horizontal/GameHorizontalSlideListViewHolder.kt | 6 +++++- app/src/main/java/com/halo/assistant/HaloApp.java | 13 +++++++++++-- .../main/res/layout/fragment_main_home_wrapper.xml | 2 +- 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 9c07bd990e..99177b250a 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -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, ""); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 0846bc6d19..ca67c05302 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -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); diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java index 075c97cab9..4daf45b981 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java @@ -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)); } diff --git a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt index 9f9f06b839..bb3294f063 100644 --- a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt @@ -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) + } } } } diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index 97d0b5a4fc..2847f90d5f 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -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); diff --git a/app/src/main/res/layout/fragment_main_home_wrapper.xml b/app/src/main/res/layout/fragment_main_home_wrapper.xml index 7149e3b435..0d5d1b87b5 100644 --- a/app/src/main/res/layout/fragment_main_home_wrapper.xml +++ b/app/src/main/res/layout/fragment_main_home_wrapper.xml @@ -71,7 +71,7 @@ - From 039203408a40c0af3ab329f4c409ea61d291637e Mon Sep 17 00:00:00 2001 From: juntao Date: Mon, 31 May 2021 10:32:07 +0800 Subject: [PATCH 36/36] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=87=B3=204.9.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 5e4c26c07a..ec5ff4e63f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 26 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 334 - versionName = "4.9.4" + versionCode = 335 + versionName = "4.9.5" applicationId = "com.gh.gamecenter" // AndroidX