diff --git a/README.md b/README.md
index 0374d7d28d..0eb92b3265 100644
--- a/README.md
+++ b/README.md
@@ -63,4 +63,7 @@
- ~~把 ListViewModel 的数据结构类型转换方式换为抽象方法,让继承的类实现,避免出现无响应的问题~~
- ~~rxjava2 如果接口返回为空 会发生异常:java.lang.NullPointerException: Null is not a valid element (答案编辑) 解决方法->com.gh.gamecenter.retrofit.Response~~
-- constraintLayout 1.1.2 导致布局出现异常(问题编辑标签选择弹窗)
\ No newline at end of file
+- constraintLayout 1.1.2 导致布局出现异常(问题编辑标签选择弹窗)
+
+- 搞清楚 GameManager 的用途,看能不能去掉
+- 重构一下 MainActivity
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/common/exposure/time/TimeUtil.kt b/app/src/main/java/com/gh/common/exposure/time/TimeUtil.kt
index 284bd59be9..0bd76608d8 100644
--- a/app/src/main/java/com/gh/common/exposure/time/TimeUtil.kt
+++ b/app/src/main/java/com/gh/common/exposure/time/TimeUtil.kt
@@ -9,7 +9,11 @@ object TimeUtil {
}
fun currentTime(): Int {
- return ( ( corrector.delta + System.currentTimeMillis() ) / 1000 ).toInt()
+ return if (::corrector.isInitialized) {
+ ((corrector.delta + System.currentTimeMillis()) / 1000).toInt()
+ } else {
+ (System.currentTimeMillis() / 1000).toInt()
+ }
}
/**
diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt
index 8c095c624f..49e7fb106d 100644
--- a/app/src/main/java/com/gh/common/util/DirectUtils.kt
+++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt
@@ -279,7 +279,7 @@ object DirectUtils {
}
UserManager.getInstance().setCommunityData(community)
- // 这里换个线程操作是为了做一点延时,不换的话有记录出现社区选择指示出不来的情况
+ // 这里换个线程操作是为了做一点延时
AppExecutor.ioExecutor.execute {
EventBus.getDefault().post(EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 1))
EventBus.getDefault().post(EBReuse(AskFragment.EB_RETRY_PAGE))
diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java
index fad27271f6..59f7ee230f 100644
--- a/app/src/main/java/com/gh/gamecenter/MainActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java
@@ -20,6 +20,7 @@ import android.support.annotation.Nullable;
import android.text.Html;
import android.text.Spanned;
import android.text.TextUtils;
+import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
@@ -79,6 +80,7 @@ import com.gh.gamecenter.manager.PackageManager;
import com.gh.gamecenter.manager.UpdateManager;
import com.gh.gamecenter.manager.UserManager;
import com.gh.gamecenter.normal.NormalFragment;
+import com.gh.gamecenter.qa.AskFragment;
import com.gh.gamecenter.retrofit.ObservableUtil;
import com.gh.gamecenter.retrofit.Response;
import com.gh.gamecenter.retrofit.RetrofitManager;
@@ -141,6 +143,7 @@ public class MainActivity extends BaseActivity {
public final static String EB_SKIP_GAMEFRAGMENT = "GameFragment";
public final static String SHOULD_INIT_IM = "should_init_im";
+ public final static String SWITCH_TO_COMMUNITY = "switch_to_community";
private MainWrapperFragment mMainWrapperFragment;
@@ -783,13 +786,31 @@ public class MainActivity extends BaseActivity {
handler.postDelayed(ImManager::attachIm, 1000);
}
- // 获取可用(呈显示在)的社区列表
+ // 获取可用(没有被隐藏的)的社区列表
CommunityHelper.getAvailableCommunityList();
+ handler.postDelayed(this::switchToCommunityTabAndRefresh, 800);
+
// 执行跳转事件
handler.postDelayed(skipRun, 500);
}
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ switchToCommunityTabAndRefresh();
+ }
+
+ private void switchToCommunityTabAndRefresh() {
+ // 跳转到问答社区并刷新
+ if (getIntent().getBooleanExtra(SWITCH_TO_COMMUNITY, false)) {
+ getIntent().putExtra(SWITCH_TO_COMMUNITY, false);
+ Log.e("Switch", "true");
+ EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 1));
+ EventBus.getDefault().post(new EBReuse(AskFragment.EB_RETRY_PAGE));
+ }
+ }
+
private void getGhzsSettings() {
String channel = HaloApp.getInstance().getChannel();
RetrofitManager.getInstance(this)
@@ -950,15 +971,12 @@ public class MainActivity extends BaseActivity {
"读取应用列表”选择为打开" +
"“允许”,否则光环助手将无法帮您安装插件加速版的游戏");
DialogUtils.showWarningDialog(this, "提示", content, "忽略", "去开启",
- new DialogUtils.ConfirmListener() {
- @Override
- public void onConfirm() {
- // 跳转应用信息界面
- Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
- Uri uri = Uri.fromParts("package", getPackageName(), null);
- intent.setData(uri);
- startActivityForResult(intent, SKIP_SETTING_REQUEST);
- }
+ () -> {
+ // 跳转应用信息界面
+ Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ Uri uri = Uri.fromParts("package", getPackageName(), null);
+ intent.setData(uri);
+ startActivityForResult(intent, SKIP_SETTING_REQUEST);
}, null);
} else {
getInstalledListFromServer();
diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java
index 67d89efe9d..db19e669e1 100644
--- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java
@@ -1,5 +1,6 @@
package com.gh.gamecenter;
+import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
@@ -7,7 +8,9 @@ import android.text.TextUtils;
import com.gh.base.BaseActivity;
import com.gh.common.util.DirectUtils;
import com.gh.common.util.PlatformUtils;
+import com.gh.common.util.RunningUtils;
import com.gh.gamecenter.entity.CommunityEntity;
+import com.gh.gamecenter.manager.UserManager;
import com.lightgame.config.CommonDebug;
import com.lightgame.utils.Utils;
@@ -85,7 +88,20 @@ public class SkipActivity extends BaseActivity {
DirectUtils.directToQuestionDetail(this, id, ENTRANCE_BROWSER, "浏览器");
break;
case HOST_COMMUNITY:
- DirectUtils.directToCommunity(this, new CommunityEntity(id, name));
+ Intent intent;
+ UserManager.getInstance().setCommunityData(new CommunityEntity(id, name));
+ // 把切换放到 MainActivity 处理
+ if (RunningUtils.isRunning(this)
+ && MainActivity.class.getName().equals(RunningUtils.getBaseActivity(this))) {
+ intent = new Intent(this, MainActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ intent.putExtra(MainActivity.SWITCH_TO_COMMUNITY, true);
+ } else {
+ Bundle bundle = new Bundle();
+ bundle.putBoolean(MainActivity.SWITCH_TO_COMMUNITY, true);
+ intent = SplashScreenActivity.getSplashScreenIntent(this, bundle);
+ }
+ startActivity(intent);
break;
case HOST_COMMUNITY_ARTICLE:
DirectUtils.directToCommunityArticle(this, uri.getQueryParameter("articleId"), uri.getQueryParameter("communityId"), ENTRANCE_BROWSER);
diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java
index cf68549073..5dada868cd 100644
--- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java
@@ -134,8 +134,8 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBSkip skip) {
if (EB_SKIP_GAMEFRAGMENT.equals(skip.getType())) {
- EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME));
- checkIndex(INDEX_GAME);
+ EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, skip.getCurrentItem()));
+ checkIndex(skip.getCurrentItem());
EventBus.getDefault().post(new EBSkip(EB_MAINACTIVITY_TAG, skip.getCurrentItem()));
mViewPager.setCurrentItem(skip.getCurrentItem(), false);
}
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt
index 23fda1c39e..f9a4656d39 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt
@@ -54,7 +54,6 @@ class DescAdapter(context: Context,
private var isFuliNoData: Boolean = false
private var mIsPluginExpanded = false
- private var mIsBasicInfoExpanded = false
private var mIsUpdateInfoExpanded = false
private var mIsIntroExpanded = false
@@ -258,7 +257,6 @@ class DescAdapter(context: Context,
val tips = descItemData.basicInfo?.info
val tag = descItemData.basicInfo?.infoTag
- val linearLayoutManager = LinearLayoutManager(mContext)
val layoutManager = GridLayoutManager(mContext, 3)
layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
@@ -274,23 +272,9 @@ class DescAdapter(context: Context,
viewHolder.gamedetailPluginOpen.visibility = View.INVISIBLE
}
- if (mIsBasicInfoExpanded) {
- viewHolder.gameDetailPluginRv.layoutManager = linearLayoutManager
- viewHolder.gamedetailPluginExpandIv.setImageResource(R.drawable.ic_category_arrow_up)
- } else {
- viewHolder.gameDetailPluginRv.layoutManager = layoutManager
- viewHolder.gamedetailPluginExpandIv.setImageResource(R.drawable.ic_category_arrow_down)
- }
- viewHolder.gameDetailPluginRv.adapter = GameDetailPluginAdapter(tag, tips, mIsBasicInfoExpanded, mContext)
- viewHolder.gamedetailPluginOpen.setOnClickListener { _ ->
- mIsBasicInfoExpanded = !mIsBasicInfoExpanded
- if (mIsBasicInfoExpanded) {
- DataUtils.onMtaEvent(mContext, "游戏详情", "展开基本信息", gameName)
- } else {
- DataUtils.onMtaEvent(mContext, "游戏详情", "收起基本信息", gameName)
- }
- notifyItemChanged(viewHolder.adapterPosition)
- }
+ viewHolder.gameDetailPluginRv.layoutManager = layoutManager
+ viewHolder.gamedetailPluginExpandIv.visibility = View.GONE
+ viewHolder.gameDetailPluginRv.adapter = GameDetailPluginAdapter(tag, tips, false, mContext)
}
private fun initPluginViewHolder(viewHolder: GameDetailPluginViewHolder, descItemData: DescItemData) {
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt
index e75ca65564..aed15a6e85 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt
@@ -19,8 +19,6 @@ import com.gh.gamecenter.databinding.RatingItemBinding
import com.gh.gamecenter.entity.Rating
import com.gh.gamecenter.entity.RatingComment
import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity
-import com.gh.gamecenter.manager.InstallManager
-import com.lightgame.utils.Utils
class RatingAdapter(context: Context,
private val mListViewModel: RatingViewModel,
@@ -112,14 +110,14 @@ class RatingAdapter(context: Context,
private fun skipRatingEdit(starCount: Float) {
CheckLoginUtils.checkLogin(mContext) {
- if (InstallManager(mContext).findInstallById(mListViewModel.game.id) != null) {
+// if (InstallManager(mContext).findInstallById(mListViewModel.game.id) != null) {
if (mContext is Activity) {
val intent = RatingEditActivity.getIntent(mContext, mListViewModel.game.id!!, ratingData?.device, starCount)
(mContext as Activity).startActivityForResult(intent, RatingFragment.RATING_EDIT_REQUEST)
}
- } else {
- Utils.toast(mContext, "安装游戏后才能评论哦")
- }
+// } else {
+// Utils.toast(mContext, "安装游戏后才能评论哦")
+// }
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java b/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java
index fe8ef57784..0999145ffb 100644
--- a/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java
@@ -282,7 +282,7 @@ public class ConcernFragment extends NormalFragment implements SwipeRefreshLayou
}
}
- RemenkapaiRepository.INSTANCE
+ RemenkapaiRepository
.getRemenkapai(4)
.map(list1 -> {
// 根据热门卡牌顺序进行排序
diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteViewModel.kt
index 96c2e19f4f..2f665ec23a 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteViewModel.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteViewModel.kt
@@ -64,7 +64,7 @@ class QuestionsInviteViewModel(application: Application, var questionId: String?
// 找第一个不是我的关注的项目,并插入头部
for ((index, value) in inviteList.withIndex()) {
- if (value.isFollowers == false) {
+ if (value.me == null || value.me?.isFollower == false) {
inviteList.add(index, InviteEntity(isHeaderItem = true, headerName = "系统推荐"))
break
}
@@ -72,7 +72,7 @@ class QuestionsInviteViewModel(application: Application, var questionId: String?
// 找第一个是我的关注的项目,并插入头部
for ((index, value) in inviteList.withIndex()) {
- if (value.isFollowers == true) {
+ if (value.me?.isFollower == true) {
inviteList.add(index, InviteEntity(isHeaderItem = true, headerName = "我的关注"))
break
}
diff --git a/app/src/main/res/layout/gamedetail_item_comments.xml b/app/src/main/res/layout/gamedetail_item_comments.xml
index 9bd1248c6c..b9e6f00217 100644
--- a/app/src/main/res/layout/gamedetail_item_comments.xml
+++ b/app/src/main/res/layout/gamedetail_item_comments.xml
@@ -31,8 +31,8 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="全部"
- android:textColor="@color/text_3a3a3a"
- android:textSize="15sp" />
+ android:textColor="@color/content"
+ android:textSize="14sp" />