diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index 6dcc8ea641..8bae4a99e0 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -9,6 +9,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.Signature; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.text.TextUtils; @@ -168,7 +169,9 @@ public class PackageUtils { public static Intent getInstallIntent(Context context, String path) { Uri uri = Uri.fromFile(new File(path)); Intent installIntent = new Intent(Intent.ACTION_VIEW); -// installIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + if ("smartisan".equals(Build.MANUFACTURER)) { + installIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } installIntent.setDataAndType(uri, "application/vnd.android.package-archive"); InstallUtils.getInstance(context).addInstall(getPackageNameByPath(context, path)); return installIntent; diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java index 7a1b0fdcce..dc43e7ba45 100644 --- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java @@ -110,11 +110,10 @@ public class CropImageActivity extends BaseActivity { @Override public void onProgress(long total, long progress) { - float percent = 100 * (progress / (float) total); - if (percent >= 100) percent = 99.9F; - String format = String.format(Locale.CHINA, "%.1f", percent); + int percent = (int) (100 * (progress / (float) total)); + if (percent >= 100) percent = 99; if (postDialog != null) { - postDialog.uploadWaitingHint("图片上传中" + format + "%"); + postDialog.uploadWaitingHint("图片上传中" + percent + "%"); } } }); diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index ab5ef86c0d..a88c22cbbf 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -32,7 +32,6 @@ import com.gh.base.OnListClickListener; import com.gh.base.OnRequestCallBackListener; import com.gh.base.fragment.WaitingDialogFragment; import com.gh.common.im.ImManager; -import com.gh.common.util.BitmapUtils; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.DisplayUtils; @@ -71,13 +70,10 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import butterknife.BindView; import butterknife.OnClick; -import io.reactivex.Observable; -import io.reactivex.ObservableOnSubscribe; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import okhttp3.MediaType; @@ -198,26 +194,7 @@ public class SuggestionActivity extends BaseActivity implements OnRequestCallBac Utils.toast(this, getString(R.string.pic_max_hint, count)); return; } else { - String newPath = getCacheDir() + File.separator + System.currentTimeMillis() + ".jpg"; - Observable.create((ObservableOnSubscribe) - subscriber -> subscriber.onNext(BitmapUtils.savePicture(newPath, picturePath))) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onResponse(Boolean isSuccess) { - if (isSuccess) { - mAdapter.addFileList(newPath); - } else { - mAdapter.addFileList(picturePath); - } - } - - @Override - public void onFailure(HttpException e) { - mAdapter.addFileList(picturePath); - } - }); + mAdapter.addFileList(picturePath); } } } @@ -443,11 +420,11 @@ public class SuggestionActivity extends BaseActivity implements OnRequestCallBac if (mSuggestTypeContainer.getVisibility() == View.VISIBLE) { if (mFunctionType == 3 && TextUtils.isEmpty(mTypeOtherName.getText().toString().trim())) { - toast("请选择功能建议"); + toast("请选择功能需求"); return; } if (mFunctionType == -1) { - toast("请选择功能建议"); + toast("请选择功能需求"); return; } } @@ -534,14 +511,13 @@ public class SuggestionActivity extends BaseActivity implements OnRequestCallBac private void postPic(final String email) { UploadImageUtils.INSTANCE.compressAndUploadImageList(UploadImageUtils.UploadType.suggestion - , mAdapter.getFileList(), true, new UploadImageUtils.OnUploadImageListListener() { + , mAdapter.getFileList(), false, new UploadImageUtils.OnUploadImageListListener() { @Override public void onProgress(long total, long progress) { - float percent = 100 * (progress / (float) total); - if (percent >= 100) percent = 99.9F; - String format = String.format(Locale.CHINA, "%.1f", percent); + int percent = (int) (100 * (progress / (float) total)); + if (percent >= 100) percent = 99; if (postDialog != null) { - postDialog.uploadWaitingHint("图片上传中" + format + "%"); + postDialog.uploadWaitingHint("图片上传中" + percent + "%"); } } @@ -741,7 +717,13 @@ public class SuggestionActivity extends BaseActivity implements OnRequestCallBac DialogUtils.showAlertDialog(this, "警告", "当前使用移动网络,上传图片会消耗手机流量", - "我知道了", "", null, null); + "我知道了", "", () -> { + List picList = (List) data; + if (position == mAdapter.getItemCount() - 1 && picList.size() < 5) { + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(intent, MEDIA_STORE_REQUEST); + } + }, null); return; } List picList = (List) data; diff --git a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt index eccde25355..965a1f3215 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt @@ -20,8 +20,8 @@ data class PersonalHistoryEntity( val title: String = "") data class Count( - val comment: Int = 0, - val vote: Int = 0, - val answer: Int = 0) + val comment: Int = -1, + val vote: Int = -1, + val answer: Int = -1) } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java index 0f227db5c3..16c1d16665 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java @@ -435,6 +435,7 @@ public class GameDetailFragment extends NormalFragment { xinXiFragment.setArguments(args); list.add(xinXiFragment); + // java.lang.IllegalStateException: Fragment has not been attached yet mViewPager.setAdapter(BaseFragmentPagerAdapter.newInstance(getChildFragmentManager(), list)); initGameDetailTop(); diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index ad19705d53..2f02be7c21 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -14,6 +14,7 @@ import com.gh.gamecenter.baselist.LoadStatus; import com.gh.gamecenter.baselist.LoadType; import com.gh.gamecenter.baselist.NormalListViewModel; import com.gh.gamecenter.entity.MessageEntity; +import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -49,7 +50,7 @@ public class MessageFragment extends ListFragment> provideDataObservable(int page) { - return RetrofitManager.getInstance(getContext()).getApi().getMessage("default", Utils.getTime(getContext()), page); + return RetrofitManager.getInstance(getContext()).getApi().getMessage(UserManager.getInstance().getUserId(), "default", Utils.getTime(getContext()), page); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java index 1c44700511..8ca8215412 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java @@ -12,6 +12,7 @@ import com.gh.gamecenter.baselist.ListFragment; import com.gh.gamecenter.baselist.LoadType; import com.gh.gamecenter.baselist.NormalListViewModel; import com.gh.gamecenter.entity.MessageEntity; +import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -68,7 +69,7 @@ public class MessageNormalFragment extends ListFragment> provideDataObservable(int page) { - return RetrofitManager.getInstance(getContext()).getApi().getMessage(mMessageType, Utils.getTime(getContext()), page); + return RetrofitManager.getInstance(getContext()).getApi().getMessage(UserManager.getInstance().getUserId(), mMessageType, Utils.getTime(getContext()), page); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java b/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java index 473810404d..aeabaf7136 100644 --- a/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java +++ b/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java @@ -2,6 +2,7 @@ package com.gh.gamecenter.mvvm; import android.arch.lifecycle.LiveData; import android.arch.lifecycle.MediatorLiveData; +import android.support.annotation.Nullable; import com.gh.gamecenter.retrofit.Response; @@ -30,14 +31,12 @@ public class NetworkBoundResource { .subscribe(new Response() { @Override public void onResponse(DataType response) { - super.onResponse(response); result.postValue(Resource.success(response)); } @Override - public void onError(Throwable e) { - super.onError(e); - result.postValue(Resource.error(e instanceof HttpException ? (HttpException) e : null)); + public void onFailure(@Nullable HttpException e) { + result.postValue(Resource.error(e)); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt index af0a15e74e..915eb67347 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt @@ -6,7 +6,9 @@ import android.support.v4.content.ContextCompat import android.support.v7.widget.RecyclerView import android.view.View import android.view.ViewGroup +import android.widget.TextView import com.gh.common.constant.ItemViewType +import com.gh.common.util.DialogUtils import com.gh.gamecenter.PersonalHomeActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder @@ -63,21 +65,14 @@ class FollowersOrFansAdapter(context: Context, val mViewModel: FollowersOrFansVi } holder.binding.followerBtn.setOnClickListener { if (entity.id != UserManager.getInstance().userId) { - mViewModel.followingCommand(!entity?.me?.isFollower!!, entity.id, callback = { - holder.binding.followerBtn.run { - if (it) { // 关注成功 - entity.me.isFollower = true - setText(R.string.cancel_concern) - setBackgroundResource(R.drawable.button_normal_border) - setTextColor(ContextCompat.getColor(mContext, R.color.theme)) - } else { // 取消关注成功 - entity.me.isFollower = false - setText(R.string.concern) - setBackgroundResource(R.drawable.button_normal_style) - setTextColor(Color.WHITE) - } - } - }) + if (entity?.me?.isFollower!!) { + DialogUtils.showAlertDialog(mContext, "取消关注", "确定要取消关注吗?", + "确定取消", "暂不取消", DialogUtils.ConfirmListener { + follower(entity, holder.binding.followerBtn) + }, null) + } else { + follower(entity, holder.binding.followerBtn) + } } } holder.itemView.setOnClickListener { @@ -88,4 +83,22 @@ class FollowersOrFansAdapter(context: Context, val mViewModel: FollowersOrFansVi } } + private fun follower(entity: FollowersOrFansEntity?, followerBtn: TextView) { + mViewModel.followingCommand(!entity?.me?.isFollower!!, entity.id, callback = { + followerBtn.run { + if (it) { // 关注成功 + entity.me.isFollower = true + setText(R.string.cancel_concern) + setBackgroundResource(R.drawable.button_normal_border) + setTextColor(ContextCompat.getColor(mContext, R.color.theme)) + } else { // 取消关注成功 + entity.me.isFollower = false + setText(R.string.concern) + setBackgroundResource(R.drawable.button_normal_style) + setTextColor(Color.WHITE) + } + } + }) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt index bbb4e2849b..475e901051 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeAdapter.kt @@ -6,7 +6,9 @@ import android.support.v4.content.ContextCompat import android.support.v7.widget.RecyclerView import android.view.View import android.view.ViewGroup +import android.widget.TextView import com.gh.common.constant.ItemViewType +import com.gh.common.util.DialogUtils import com.gh.common.util.NewsUtils import com.gh.gamecenter.R import com.gh.gamecenter.UserInfoActivity @@ -78,12 +80,22 @@ class PersonalHomeAdapter(context: Context, holder.binding.run { entity = personalData unreadEntity = mUnreadEntity + if (personalData?.auth != null) { + userAuthCommand.text = personalData?.auth?.text + userAuthCommand.setTextColor(Color.parseColor("#" + personalData?.auth?.color)) + } executePendingBindings() if (mListViewModel.userId == UserManager.getInstance().userId) { + if (mUnreadEntity?.fans != 0) { + userFansCountHint.visibility = View.VISIBLE + } else { + userFansCountHint.visibility = View.GONE + } userAnswerText.text = "我的回答" userQuestionText.text = "我的提问" userConcernOrEdit.text = "编辑" } else { + userFansCountHint.visibility = View.GONE userAnswerText.text = "Ta的回答" userQuestionText.text = "Ta的提问" userConcernOrEdit.run { @@ -111,24 +123,23 @@ class PersonalHomeAdapter(context: Context, mContext.startActivity(PersonalAnswerActivity.getIntent(mContext, mListViewModel.userId)) } userVoteContainer.setOnClickListener { - Utils.toast(mContext, "共获得" + entity?.count?.answerVote + "赞同") + if (mListViewModel.userId == UserManager.getInstance().userId) { + Utils.toast(mContext, "我的回答共获得" + entity?.count?.answerVote + "赞同") + } else { + Utils.toast(mContext, "Ta的回答共获得" + entity?.count?.answerVote + "赞同") + } } userConcernOrEdit.setOnClickListener { if (mListViewModel.userId == UserManager.getInstance().userId) { mContext.startActivity(UserInfoActivity.getIntent(mContext)) } else { - mListViewModel.followingCommand(!personalData?.me?.isFollower!!) { - if (it) { // 关注成功 - personalData?.me?.isFollower = true - userConcernOrEdit.setText(R.string.cancel_concern) - userConcernOrEdit.setBackgroundResource(R.drawable.button_normal_border) - userConcernOrEdit.setTextColor(ContextCompat.getColor(mContext, R.color.theme)) - } else { // 取消关注成功 - personalData?.me?.isFollower = false - userConcernOrEdit.setText(R.string.concern) - userConcernOrEdit.setBackgroundResource(R.drawable.button_normal_style) - userConcernOrEdit.setTextColor(Color.WHITE) - } + if (personalData?.me?.isFollower!!) { + DialogUtils.showAlertDialog(mContext, "取消关注", "确定要取消关注吗?", + "确定取消", "暂不取消", DialogUtils.ConfirmListener { + follower(userConcernOrEdit) + }, null) + } else { + follower(userConcernOrEdit) } } } @@ -160,11 +171,27 @@ class PersonalHomeAdapter(context: Context, } } + private fun follower(userConcernOrEdit: TextView) { + mListViewModel.followingCommand(!personalData?.me?.isFollower!!) { + if (it) { // 关注成功 + personalData?.me?.isFollower = true + userConcernOrEdit.setText(R.string.cancel_concern) + userConcernOrEdit.setBackgroundResource(R.drawable.button_normal_border) + userConcernOrEdit.setTextColor(ContextCompat.getColor(mContext, R.color.theme)) + } else { // 取消关注成功 + personalData?.me?.isFollower = false + userConcernOrEdit.setText(R.string.concern) + userConcernOrEdit.setBackgroundResource(R.drawable.button_normal_style) + userConcernOrEdit.setTextColor(Color.WHITE) + } + } + } + private fun getUserCommand(type: String, time: Long): String { return when (type) { "answer" -> personalData?.name + "回答了问题 · " + NewsUtils.getFormattedTime(time) "question" -> personalData?.name + "提交了问题 · " + NewsUtils.getFormattedTime(time) - "answer_vote" -> personalData?.name + "关注了问题 · " + NewsUtils.getFormattedTime(time) + "answer_vote" -> personalData?.name + "赞同了回答 · " + NewsUtils.getFormattedTime(time) "follow_question" -> personalData?.name + "关注了问题 · " + NewsUtils.getFormattedTime(time) else -> personalData?.name + "" } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java index 670ba98098..9b8ed3e212 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java @@ -304,12 +304,7 @@ public class AnswerDetailFragment extends NormalFragment { if (apiResponse == null) return; if (apiResponse.getData() != null) { - MeEntity me = mDetailEntity.getMe(); - me.setAnswerVoted(true); - mDetailEntity.setMe(me); - int vote = mDetailEntity.getVote() + 1; - mDetailEntity.setVote(vote); - updateVote(); + voteSuccess(); } else if (apiResponse.getHttpException() != null) { HttpException e = apiResponse.getHttpException(); if (e == null || e.code() != 403) { @@ -325,6 +320,8 @@ public class AnswerDetailFragment extends NormalFragment { updateVote(); } else if (errorCode == 403036) { toast(R.string.ask_vote_limit_hint); + } else if (errorCode == 403047) { + voteSuccess(); } } catch (Exception e1) { e1.printStackTrace(); @@ -334,6 +331,15 @@ public class AnswerDetailFragment extends NormalFragment { }); } + private void voteSuccess() { + MeEntity me = mDetailEntity.getMe(); + me.setAnswerVoted(true); + mDetailEntity.setMe(me); + int vote = mDetailEntity.getVote() + 1; + mDetailEntity.setVote(vote); + updateVote(); + } + @Override public void onMenuItemClick(MenuItem menuItem) { switch (menuItem.getItemId()) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java index f0fe34e148..9b0e54d66b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java @@ -49,7 +49,6 @@ import org.json.JSONObject; import java.io.File; import java.io.IOException; import java.util.HashMap; -import java.util.Locale; import java.util.Map; import butterknife.BindView; @@ -244,11 +243,10 @@ public class AnswerEditFragment extends NormalFragment { @Override public void onProgress(long total, long progress) { - float percent = 100 * (progress / (float) total); - if (percent >= 100) percent = 99.9F; - String format = String.format(Locale.CHINA, "%.1f", percent); + int percent = (int) (100 * (progress / (float) total)); + if (percent >= 100) percent = 99; if (postDialog != null) { - postDialog.uploadWaitingHint("图片上传中" + format + "%"); + postDialog.uploadWaitingHint("图片上传中" + percent + "%"); } } @@ -550,22 +548,30 @@ public class AnswerEditFragment extends NormalFragment { DialogUtils.showAlertDialog(getContext(), "警告", "当前使用移动网络,上传图片会消耗手机流量", - "我知道了", "", null, null); + "我知道了", "", new DialogUtils.ConfirmListener() { + @Override + public void onConfirm() { + startMediaStore(); + } + }, null); return; } + startMediaStore(); + } + } - if (mMapImg.size() >= 50) { - toast(R.string.answer_edit_max_img_hint); - return; - } + private void startMediaStore() { + if (mMapImg.size() >= 50) { + toast(R.string.answer_edit_max_img_hint); + return; + } - try { - Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - startActivityForResult(intent, SelectPortraitFragment.REQUEST_MEDIA_ICON); - } catch (Exception e) { - toast(R.string.media_image_hint); - e.printStackTrace(); - } + try { + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(intent, SelectPortraitFragment.REQUEST_MEDIA_ICON); + } catch (Exception e) { + toast(R.string.media_image_hint); + e.printStackTrace(); } } @@ -577,7 +583,7 @@ public class AnswerEditFragment extends NormalFragment { HaloApp.getInstance().getApplication().getSystemService(Context.CLIPBOARD_SERVICE); if (clipboard != null) { String text = clipboard.getText().toString(); - mBaseHandler.post(()-> mEditContent.insertHtml(text)); + mBaseHandler.post(() -> mEditContent.insertHtml(text)); } } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt index 3234ab15f2..304c931cee 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt @@ -46,7 +46,7 @@ class AskColumnDetailActivity : BaseActivity() { mBarBack.setOnClickListener { finish() } mBarQuestionBtn.visibility = View.INVISIBLE mBarQuestionBtn.layoutParams = LinearLayout.LayoutParams(DisplayUtils.dip2px(20F), ViewGroup.LayoutParams.MATCH_PARENT) - mBarSearchEdit.hint = "专栏内搜索..." + mBarSearchEdit.hint = "专栏内搜索" mBarSearchEdit.isFocusable = false mBarSearchEdit.setOnClickListener({ if (!questionTag.isNullOrEmpty()) { 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 bb8c3f5c2f..79d6cc5638 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 @@ -188,10 +188,9 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica uploadImageSubscription = UploadImageUtils.compressAndUploadImage(UploadImageUtils.UploadType.question , picPath, true, object : UploadImageUtils.OnUploadImageListener { override fun onProgress(total: Long, progress: Long) { - var percent = 100 * (progress / total.toFloat()) - if (percent >= 100) percent = 99.9F - val format = String.format("%.1f", percent) - processDialog.postValue(WaitingDialogFragment.WaitingDialogData("图片上传中$format%", true)) + var percent = (100 * (progress / total.toFloat())).toInt() + if (percent >= 100) percent = 99 + processDialog.postValue(WaitingDialogFragment.WaitingDialogData("图片上传中$percent%", true)) } override fun onSuccess(imageUrl: String) { 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 33ec74ac55..a4c7976423 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 @@ -89,6 +89,7 @@ class TagsSelectFragment : BaseFragment() { } else { val data = JSONObject(it.data?.string()) startActivity(QuestionsDetailActivity.getIntent(context, data.getString("_id"), "(回答编辑)", "问题编辑")) + activity?.setResult(Activity.RESULT_OK) } activity?.finish() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt index 849fb45b23..9b9265c8b2 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt @@ -54,7 +54,10 @@ class QuestionsEditPicAdapter(context: Context, viewModel: QuestionEditViewModel DialogUtils.showAlertDialog(mContext, "警告", "当前使用移动网络,上传图片会消耗手机流量", - "我知道了", "", null, null) + "我知道了", "", + DialogUtils.ConfirmListener { + addPic(mContext as Activity) + }, null) } } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewHolder.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewHolder.java index 7799736fc8..536c0db915 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewHolder.java @@ -65,6 +65,8 @@ public class AskQuestionsRecommendsViewHolder extends BaseRecyclerViewHolder { - startActivity(QuestionEditActivity.Companion.getIntent(this, mSearchKey)); - }); - } else if (v.getId() == R.id.search_questions_skip) { - CheckLoginUtils.checkLogin(this, () -> { - startActivity(QuestionEditActivity.Companion.getIntent(this, mSearchKey)); + startActivityForResult(QuestionEditActivity.Companion.getIntent(this, mSearchKey), QUESTION_REQUEST_CODE); }); } else if (v.getId() == R.id.bar_back) { finish(); diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/Response.java b/app/src/main/java/com/gh/gamecenter/retrofit/Response.java index 11c288ce63..b8ee1466e6 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/Response.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/Response.java @@ -4,7 +4,6 @@ import android.support.annotation.Nullable; import com.gh.common.util.AppDebugConfig; import com.gh.gamecenter.user.ApiResponse; -import com.lightgame.utils.Utils; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; @@ -16,6 +15,7 @@ import retrofit2.HttpException; */ public class Response implements Observer { + @Deprecated @Override public void onError(Throwable e) { if (AppDebugConfig.IS_DEBUG) { diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index 9e0d5f4c3e..3084ccda05 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -608,8 +608,8 @@ public interface ApiService { Observable getMessageUnread(@Url String url); - @GET("messages") - Observable> getMessage(@Query("view") String type, @Query("timestamp") long timestamp, @Query("page") int page); + @GET("users/{user_id}/messages") + Observable> getMessage(@Path("user_id") String user_id, @Query("view") String type, @Query("timestamp") long timestamp, @Query("page") int page); /****** 问答(社区相关) *******/ diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java index 0221eea1d0..f49ce8dac4 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java @@ -8,7 +8,6 @@ import android.text.TextUtils; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; import android.widget.LinearLayout; import android.widget.TextView; @@ -79,6 +78,7 @@ class SearchHistoryFragmentAdapter extends BaseRecyclerAdapter { public void onClick(View v) { String key = viewHolder.textView.getText().toString(); if (mIsHistory) { + dao.add(key); EventBus.getDefault().post(new EBSearch("history", key)); } else { EventBus.getDefault().post(new EBSearch("remen", key)); diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestType.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestType.java index e108912154..d060f7b7bc 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestType.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestType.java @@ -7,7 +7,7 @@ public enum SuggestType { gameQuestion("游戏问题"), gameCollect("游戏收录"), functionSuggest("功能收录"), - articleCollect("文章收录"); + articleCollect("文章投稿"); private String mType; diff --git a/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java index 5668a3e832..26f88cca9d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java @@ -128,28 +128,28 @@ public class SelectPortraitFragment extends NormalFragment { public void onClick(View view) { switch (view.getId()) { case R.id.user_default_icon_1: - postUserIocn(1); + postUserIcon(1); break; case R.id.user_default_icon_2: - postUserIocn(2); + postUserIcon(2); break; case R.id.user_default_icon_3: - postUserIocn(3); + postUserIcon(3); break; case R.id.user_default_icon_4: - postUserIocn(4); + postUserIcon(4); break; case R.id.user_default_icon_5: - postUserIocn(5); + postUserIcon(5); break; case R.id.user_default_icon_6: - postUserIocn(6); + postUserIcon(6); break; case R.id.user_default_icon_7: - postUserIocn(7); + postUserIcon(7); break; case R.id.user_default_icon_8: - postUserIocn(8); + postUserIcon(8); break; case R.id.skip_media_store: if (!mAgreePostPic && !NetworkUtils.isWifiConnected(getContext())) { @@ -157,34 +157,37 @@ public class SelectPortraitFragment extends NormalFragment { DialogUtils.showAlertDialog(getContext(), "警告", "当前使用移动网络,上传图片会消耗手机流量", - "我知道了", "", null, null); + "我知道了", "", this::startMediaStore, null); break; } - String iconCount = mSharedPreferences.getString("updateIconCount", null); - if (!TextUtils.isEmpty(iconCount)) { - long l = System.currentTimeMillis(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.CHINA); - String time = format.format(new Date(l)); - - JSONObject json; - try { - json = new JSONObject(iconCount); - String lastTime = json.getString("time"); - if (lastTime.equals(time) && json.getInt("count") >= 2) { - toast("每天最多只能上传2次头像"); - return; - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - startActivityForResult(intent, REQUEST_MEDIA_ICON); + startMediaStore(); break; } } + private void startMediaStore() { + String iconCount = mSharedPreferences.getString("updateIconCount", null); + if (!TextUtils.isEmpty(iconCount)) { + long l = System.currentTimeMillis(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.CHINA); + String time = format.format(new Date(l)); - public void postUserIocn(int i) { + JSONObject json; + try { + json = new JSONObject(iconCount); + String lastTime = json.getString("time"); + if (lastTime.equals(time) && json.getInt("count") >= 2) { + toast("每天最多只能上传2次头像"); + return; + } + } catch (JSONException e) { + e.printStackTrace(); + } + } + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(intent, REQUEST_MEDIA_ICON); + } + + public void postUserIcon(int i) { postDefaultIcon(i); } diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java index 654924f98f..59b86fe1dc 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java @@ -225,9 +225,8 @@ public class UserInfoEditFragment extends NormalFragment { String value = mUserinfoContactEt.getText().toString(); change(value); } else if (UserViewModel.TYPE_INTRODUCE.equals(mEditType)) { - String value = mUserInfoIntroduceEt.getText().toString(); - if (!TextUtils.isEmpty(value)) value = value.replace(" ", ""); - change(value); + String value = mUserInfoIntroduceEt.getText().toString().trim(); // 去除前后空格 + change(value.replaceAll("\\s+"," ")); // 多个空格合成一个 } else if (UserViewModel.TYPE_ID_CARD.equals(mEditType)) { String name = mIdCardNameEt.getText().toString(); String idCard = mIdCardEt.getText().toString(); diff --git a/app/src/main/res/layout/dialog_suggest_game.xml b/app/src/main/res/layout/dialog_suggest_game.xml index 7efdfb6c87..a4f38849bb 100644 --- a/app/src/main/res/layout/dialog_suggest_game.xml +++ b/app/src/main/res/layout/dialog_suggest_game.xml @@ -88,6 +88,7 @@ android:paddingLeft = "20dp" android:paddingRight = "53dp" android:singleLine = "true" + android:maxLength="30" android:textColorHint = "@color/hint" android:textCursorDrawable = "@drawable/cursor_color" android:textSize = "16sp" /> diff --git a/app/src/main/res/layout/fragment_userinfo_edit.xml b/app/src/main/res/layout/fragment_userinfo_edit.xml index 8167920e18..ddbc9a896a 100644 --- a/app/src/main/res/layout/fragment_userinfo_edit.xml +++ b/app/src/main/res/layout/fragment_userinfo_edit.xml @@ -154,7 +154,7 @@ android:background = "@android:color/white" android:paddingLeft = "18dp" android:paddingRight = "18dp" - android:visibility = "visible" > + android:visibility = "gone" > + android:visibility = "gone" > + + diff --git a/app/src/main/res/layout/personal_home_top.xml b/app/src/main/res/layout/personal_home_top.xml index a5158e9fec..a194fcd586 100644 --- a/app/src/main/res/layout/personal_home_top.xml +++ b/app/src/main/res/layout/personal_home_top.xml @@ -82,7 +82,6 @@ android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_marginLeft = "12dp" - android:textColor = "@color/tag_orange" app:layout_constraintBottom_toBottomOf = "@id/user_icon_container" app:layout_constraintLeft_toRightOf = "@id/user_icon_container" app:layout_constraintRight_toLeftOf = "@id/user_concern_or_edit" @@ -177,8 +176,8 @@ app:layout_constraintTop_toBottomOf = "@+id/user_fans_count" />