diff --git a/app/src/main/java/com/gh/common/util/ErrorHelper.kt b/app/src/main/java/com/gh/common/util/ErrorHelper.kt index b413e0c5f3..8708b67b38 100644 --- a/app/src/main/java/com/gh/common/util/ErrorHelper.kt +++ b/app/src/main/java/com/gh/common/util/ErrorHelper.kt @@ -103,6 +103,7 @@ object ErrorHelper { 403014 -> Utils.toast(context, "标签数量太多了") 403015 -> Utils.toast(context, "已经关注过了") 404001 -> Utils.toast(context, "请求的资源不存在") + 403016 -> Utils.toast(context, "标签内容可能包含敏感信息,请修改后再提交") 403018 -> Utils.toast(context, R.string.comment_failed_unable) 403020 -> if (important) { diff --git a/app/src/main/java/com/gh/common/util/LoginUtils.java b/app/src/main/java/com/gh/common/util/LoginUtils.java index e780873f5e..4cdcc1455d 100644 --- a/app/src/main/java/com/gh/common/util/LoginUtils.java +++ b/app/src/main/java/com/gh/common/util/LoginUtils.java @@ -261,6 +261,9 @@ public class LoginUtils { case 403204: Utils.toast(context, "获取验证码太频繁,请稍后再试"); break; + case 400212: + Utils.toast(context, "请输入正确的手机号"); + break; default: Utils.toast(context, code + ""); break; diff --git a/app/src/main/java/com/gh/gamecenter/InstallActivity.java b/app/src/main/java/com/gh/gamecenter/InstallActivity.java index d03a50e194..4aadc1a0f6 100644 --- a/app/src/main/java/com/gh/gamecenter/InstallActivity.java +++ b/app/src/main/java/com/gh/gamecenter/InstallActivity.java @@ -13,6 +13,8 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import com.ethanhua.skeleton.Skeleton; +import com.ethanhua.skeleton.ViewSkeletonScreen; import com.gh.base.BaseActivity; import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.DialogUtils; @@ -38,8 +40,6 @@ import java.util.ArrayList; import butterknife.BindView; -import static com.gh.gamecenter.R.id.reuse_nodata_skip_tv_btn; -import static com.gh.gamecenter.R.id.reuse_nodata_skip_tv_hint; import static com.gh.gamecenter.download.FileSendFragment.KC_REQUEST; /** @@ -53,14 +53,18 @@ public class InstallActivity extends BaseActivity implements InstallFragmentAdap RecyclerView mInstallRv; @BindView(R.id.reuse_nodata_skip) LinearLayout mNoDataSkip; - @BindView(reuse_nodata_skip_tv_hint) + @BindView(R.id.reuse_nodata_skip_tv_hint) TextView mNoDataSkipHint; - @BindView(reuse_nodata_skip_tv_btn) + @BindView(R.id.reuse_nodata_skip_tv_btn) TextView mNoDataSkipBtn; + @BindView(R.id.list_skeleton) + View mListSkeleton; private PackageViewModel mPackageViewModel; private InstallFragmentAdapter mAdapter; + private ViewSkeletonScreen mSkeleton; + private boolean isEverpause = false; private DataWatcher dataWatcher = new DataWatcher() { @@ -103,6 +107,7 @@ public class InstallActivity extends BaseActivity implements InstallFragmentAdap super.onCreate(savedInstanceState); setNavigationTitle(getString(R.string.personale_mygame)); mNoDataSkip.setVisibility(View.GONE); + mSkeleton = Skeleton.bind(mListSkeleton).shimmer(false).load(R.layout.activity_install_skeleton).show(); mNoDataSkipHint.setText("暂无游戏"); mNoDataSkipBtn.setText("查看精品推荐"); mNoDataSkipBtn.setOnClickListener(v -> { @@ -118,7 +123,7 @@ public class InstallActivity extends BaseActivity implements InstallFragmentAdap mPackageViewModel = ViewModelProviders.of(this, new PackageViewModel.Factory()).get(PackageViewModel.class); mPackageViewModel.getGameInstalledLiveData().observe(this, - gameInstalls -> mAdapter.initData(PackagesManager.filterSameApk(gameInstalls))); + gameInstalls -> mAdapter.initData(PackagesManager.filterSameApk(PackagesManager.filterDownloadBlackPackage(gameInstalls)))); } @Override @@ -148,7 +153,7 @@ public class InstallActivity extends BaseActivity implements InstallFragmentAdap @Override public void loadDone() { - + mSkeleton.hide(); } @Override @@ -163,6 +168,7 @@ public class InstallActivity extends BaseActivity implements InstallFragmentAdap @Override public void loadEmpty() { + mSkeleton.hide(); mInstallRv.setVisibility(View.GONE); mNoDataSkip.setVisibility(View.VISIBLE); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java index 7e1c43a4c7..2a54777b46 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java @@ -201,8 +201,9 @@ public class InstallFragmentAdapter extends BaseRecyclerAdapter { if (this.gameList.size() != 0) { isRemove = true; notifyDataSetChanged(); - initLocationMap(); + + mActivity.loadDone(); } else { mActivity.loadEmpty(); } diff --git a/app/src/main/java/com/gh/gamecenter/manager/PackagesManager.kt b/app/src/main/java/com/gh/gamecenter/manager/PackagesManager.kt index f916ecbac3..c8442d7efb 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/PackagesManager.kt +++ b/app/src/main/java/com/gh/gamecenter/manager/PackagesManager.kt @@ -1,6 +1,7 @@ package com.gh.gamecenter.manager import android.text.TextUtils +import com.gh.common.constant.Config import com.gh.gamecenter.entity.GameInstall import com.gh.gamecenter.entity.GameUpdateEntity @@ -183,4 +184,16 @@ object PackagesManager { } return ArrayList(map.values) } + + @JvmStatic + fun filterDownloadBlackPackage(installedList: List?): ArrayList { + val data = ArrayList() + val blackList = Config.getSettings()?.gameCommentBlackList + if (installedList != null && blackList != null) { + for (install in installedList) { + if (!blackList.contains(install.packageName)) data.add(install) + } + } + return data + } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt index f433584ce4..9332e8e888 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt @@ -18,7 +18,10 @@ import android.widget.EditText import com.gh.base.BaseActivity import com.gh.base.fragment.BaseDialogWrapperFragment import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.DisplayUtils +import com.gh.common.util.EntranceUtils +import com.gh.common.util.TextHelper import com.gh.common.view.SpacingItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity.MEDIA_STORE_REQUEST @@ -214,10 +217,6 @@ class QuestionEditActivity : BaseActivity() { it?.let { picAdapter.notifyPicList(it) } }) - mViewModel.error.observeNonNull(this) { - ErrorHelper.handleError(this, it, important = true) - } - // 增加提问时, 如果searchKey不为空 光标跳到最后 mBaseHandler.postDelayed({ mBinding.questionseditTitle.setSelection(mBinding.questionseditTitle.text.toString().length) diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt index 241c373360..1ebadd4600 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt @@ -3,7 +3,6 @@ package com.gh.gamecenter.qa.questions.edit import android.app.Application import android.arch.lifecycle.AndroidViewModel import android.arch.lifecycle.MediatorLiveData -import android.arch.lifecycle.MutableLiveData import android.net.Uri import android.provider.MediaStore import android.text.TextUtils @@ -42,11 +41,9 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica val processDialog = MediatorLiveData() val titleTags = MediatorLiveData>() - val postLiveData = MediatorLiveData() + val postLiveData = MediatorLiveData>() val moderatorPostLiveData = MediatorLiveData>() - - val error = MutableLiveData() - + var uploadImageSubscription: Disposable? = null // post data @@ -347,12 +344,12 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica override fun onResponse(response: ResponseBody?) { processDialog.postValue(WaitingDialogFragment.WaitingDialogData("提交中...", false)) MtaHelper.onEvent("发表问题", "提交成功", communityName) - postLiveData.postValue(response?.string()) + postLiveData.postValue(Resource.success(response?.string())) } override fun onFailure(e: HttpException?) { processDialog.postValue(WaitingDialogFragment.WaitingDialogData("提交中...", false)) - error.postValue(e?.response()?.errorBody()?.string()) + postLiveData.postValue(Resource.error(e)) MtaHelper.onEvent("发表问题", "提交失败", communityName) } }) diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt index be887920f0..91370429f2 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt @@ -19,6 +19,7 @@ import com.gh.base.fragment.BaseFragment import com.gh.common.util.DialogUtils import com.gh.common.util.DisplayUtils import com.gh.common.util.EntranceUtils +import com.gh.common.util.ErrorHelper import com.gh.gamecenter.R import com.gh.gamecenter.entity.Permissions import com.gh.gamecenter.mvvm.Status @@ -113,17 +114,21 @@ class TagsSelectFragment : BaseFragment() { } else { mViewModel = activity?.let { ViewModelProviders.of(it).get(QuestionEditViewModel::class.java) } mViewModel?.postLiveData?.observe(this, Observer { - if (mViewModel?.questionEntity != null) { // 修改问题 - val data = Intent() - data.putExtra(QuestionsDetailEntity::class.java.simpleName, mViewModel?.questionEntity) - activity?.setResult(Activity.RESULT_OK, data) + if (it?.status == Status.SUCCESS) { + if (mViewModel?.questionEntity != null) { // 修改问题 + val data = Intent() + data.putExtra(QuestionsDetailEntity::class.java.simpleName, mViewModel?.questionEntity) + activity?.setResult(Activity.RESULT_OK, data) + } else { + val data = JSONObject(it.data) + startActivity(QuestionsDetailActivity.getIntent(context, data.getString("_id"), + "", "问题编辑")) + activity?.setResult(Activity.RESULT_OK) + } + activity?.finish() } else { - val data = JSONObject(it) - startActivity(QuestionsDetailActivity.getIntent(context, data.getString("_id"), - "", "问题编辑")) - activity?.setResult(Activity.RESULT_OK) + ErrorHelper.handleError(context!!, it?.exception?.response()?.errorBody()?.string(), important = true) } - activity?.finish() }) } } diff --git a/app/src/main/res/layout/activity_install.xml b/app/src/main/res/layout/activity_install.xml index 276e15216d..859ce2af3f 100644 --- a/app/src/main/res/layout/activity_install.xml +++ b/app/src/main/res/layout/activity_install.xml @@ -16,5 +16,10 @@ android:layout_height = "match_parent" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_install_skeleton.xml b/app/src/main/res/layout/activity_install_skeleton.xml new file mode 100644 index 0000000000..c2596f0a5c --- /dev/null +++ b/app/src/main/res/layout/activity_install_skeleton.xml @@ -0,0 +1,611 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/message_item.xml b/app/src/main/res/layout/message_item.xml index b5451f5b6d..dd6cf8d1f9 100644 --- a/app/src/main/res/layout/message_item.xml +++ b/app/src/main/res/layout/message_item.xml @@ -40,6 +40,7 @@ imageUrl = "@{messageEntity.userEntity.auth.icon}" android:layout_width = "10dp" android:layout_height = "10dp" + visibleGone="@{messageEntity.userEntity.auth != null}" android:layout_alignParentRight = "true" android:layout_alignParentBottom = "true" />