Merge branch 'dev' of gitlab.ghzhushou.com:halo/assistant-android into dev

This commit is contained in:
chenjuntao
2018-10-31 07:05:24 +08:00
13 changed files with 89 additions and 32 deletions

View File

@ -4,8 +4,10 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.StrictMode;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.text.Html;
@ -113,6 +115,12 @@ public class ShareCardActivity extends BaseActivity {
String qrBody = "http://www.ghzs666.com/article/" + newsId + ".html?source=appshare200";
QRCodeUtils.setQRCode(this, qrBody, mShareQrCodeDv);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure();
}
}
@Override

View File

@ -6,7 +6,9 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.Animatable;
import android.os.Build;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v4.content.ContextCompat;
import android.text.Html;
import android.text.TextUtils;
@ -176,6 +178,13 @@ public class ShareCardPicActivity extends BaseActivity {
String qrBody = "http://www.ghzs666.com/article/" + newsId + ".html?source=appshare200";
QRCodeUtils.setQRCode(this, qrBody, mShareQrCodeDv);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure();
}
}
private void setContentImage(String url) {

View File

@ -179,12 +179,13 @@ public class PlatformAdapter extends BaseRecyclerAdapter<PlatformViewHolder> {
ApkLink apkLink = apkEntity.getApkLink();
if (apkLink != null) {
viewHolder.mDownloadItemIvPic.setVisibility(View.VISIBLE);
viewHolder.mDownloadItemTvHint.setVisibility(View.VISIBLE);
viewHolder.mDownloadItemTvHint.setVisibility(View.GONE);
viewHolder.mDownloadItemTvName.setVisibility(View.GONE);
viewHolder.mDownloadItemTvStatus.setVisibility(View.GONE);
viewHolder.mDownloadItemProgressbar.setVisibility(View.GONE);
viewHolder.mDownloadItemTvHint.setText(apkLink.getName());
viewHolder.mDownloadItemIvPic.setImageURI(apkLink.getIcon());
ImageUtils.display(viewHolder.mDownloadItemIvPic, apkLink.getIcon());
viewHolder.itemView.setBackgroundDrawable(new ColorDrawable(0));
} else {
Object gh_id = PackageUtils.getMetaData(mContext, apkEntity.getPackageName(), "gh_id");
if (PackageManager.INSTANCE.isInstalled(apkEntity.getPackageName())

View File

@ -1,5 +1,6 @@
package com.gh.gamecenter.collection;
import android.content.Intent;
import android.view.View;
import com.gh.common.util.CollectionUtils;
@ -28,6 +29,14 @@ public class AnswerFragment extends ListFragment<AnswerEntity, NormalListViewMod
private AnswerAdapter mAdapter;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 123) {
onLoadRefresh();
}
}
@Override
protected ListAdapter provideListAdapter() {
return mAdapter == null ? mAdapter = new AnswerAdapter(getContext(), this, mEntrance) : mAdapter;
@ -51,7 +60,7 @@ public class AnswerFragment extends ListFragment<AnswerEntity, NormalListViewMod
case R.id.ask_answer_item_content:
entity = (AnswerEntity) data;
if (entity.getActive()) {
startActivity(AnswerDetailActivity.getIntent(getContext(), entity.getId(), mEntrance, "我的收藏-回答"));
startActivityForResult(AnswerDetailActivity.getIntent(getContext(), entity.getId(), mEntrance, "我的收藏-回答"), 123);
} else {
showDeleteDialog(entity.getId());
}

View File

@ -1,5 +1,6 @@
package com.gh.gamecenter.collection
import android.app.Activity
import android.content.Context
import android.graphics.Paint
import android.support.v4.content.ContextCompat
@ -61,7 +62,7 @@ class CommunityArticleAdapter(context: Context,
}
holder.itemView.setOnClickListener {
if (entity.active) {
mContext.startActivity(ArticleDetailActivity.getIntent(mContext, entity.community, entity.id, mEntrance, path))
(mContext as Activity).startActivityForResult(ArticleDetailActivity.getIntent(mContext, entity.community, entity.id, mEntrance, path), 133)
} else {
DialogUtils.showCancelAlertDialog(mContext, "提示", "内容已被删除,是否取消收藏?", "取消收藏", "暂不", {
mViewModel.deleteCollection(entity.community.id, entity.id)

View File

@ -1,6 +1,7 @@
package com.gh.gamecenter.collection
import android.arch.lifecycle.ViewModelProviders
import android.content.Intent
import com.gh.gamecenter.baselist.ListFragment
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.qa.entity.ArticleEntity
@ -11,6 +12,13 @@ class CommunityArticleFragment : ListFragment<ArticleEntity, CommunityArticleVie
var mAdapter: CommunityArticleAdapter? = null
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 133) {
onLoadRefresh()
}
}
override fun provideListAdapter(): CommunityArticleAdapter {
if (mAdapter == null) {
mAdapter = CommunityArticleAdapter(context!!, mListViewModel, mEntrance)

View File

@ -6,6 +6,7 @@ class Rating(val star: Star = Star(),
var isExistComment: Boolean = true)
class Star(var average: Float = 0F,
val hits: Int = 0,
val total: Int = 0,
val one: Int = 0,
val two: Int = 0,

View File

@ -99,11 +99,11 @@ public class GameDetailFragment extends NormalFragment {
@BindView(R.id.rating_score_container)
View ratingScoreContainer;
@BindView(R.id.gamedetail_tabbar_fuli_tv)
CheckedTextView mTanBarFuLiTv;
CheckedTextView mTabBarFuLiTv;
@BindView(R.id.gamedetail_tabbar_xinxi_tv)
CheckedTextView mTanBarXinXiTv;
CheckedTextView mTabBarXinXiTv;
@BindView(R.id.gamedetail_tabbar_rating)
CheckedTextView mTanBarRatingTv;
CheckedTextView mTabBarRatingTv;
@BindView(R.id.gamedetail_tabbar_line)
View mTabbarLine;
@BindView(R.id.gamedetail_tabbar)
@ -135,6 +135,7 @@ public class GameDetailFragment extends NormalFragment {
private boolean mAutoDownload;
private boolean mSwitchToFirstTabInStartup;
private int mCurVpPosition;
private int mMaxWidth;
private DataWatcher dataWatcher = new DataWatcher() {
@Override
@ -183,6 +184,8 @@ public class GameDetailFragment extends NormalFragment {
mViewPager.setScrollable(true);
mViewPager.setOffscreenPageLimit(3);
mMaxWidth = getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(40);
Bundle args = getArguments();
mSwitchToFirstTabInStartup = args.getBoolean(EntranceUtils.KEY_TARGET);
mAutoDownload = args.getBoolean(EntranceUtils.KEY_AUTO_DOWNLOAD);
@ -206,9 +209,9 @@ public class GameDetailFragment extends NormalFragment {
if (mIsShowKaifuHint) {
mKaifuHint.setVisibility(View.VISIBLE);
}
mTanBarFuLiTv.setChecked(true);
mTanBarXinXiTv.setChecked(false);
mTanBarRatingTv.setChecked(false);
mTabBarFuLiTv.setChecked(true);
mTabBarXinXiTv.setChecked(false);
mTabBarRatingTv.setChecked(false);
pauseVideo();
if (mFirstTimeSelected) {
@ -216,18 +219,18 @@ public class GameDetailFragment extends NormalFragment {
}
} else if (position == INDEX_DESCRIPTION) {
mKaifuHint.setVisibility(View.GONE);
mTanBarFuLiTv.setChecked(false);
mTanBarXinXiTv.setChecked(true);
mTanBarRatingTv.setChecked(false);
mTabBarFuLiTv.setChecked(false);
mTabBarXinXiTv.setChecked(true);
mTabBarRatingTv.setChecked(false);
if (mFirstTimeSelected) {
DataUtils.onMtaEvent(getContext(), "游戏详情", "默认_介绍", mGameEntity.getName());
}
} else {
mKaifuHint.setVisibility(View.GONE);
mTanBarFuLiTv.setChecked(false);
mTanBarXinXiTv.setChecked(false);
mTanBarRatingTv.setChecked(true);
mTabBarFuLiTv.setChecked(false);
mTabBarXinXiTv.setChecked(false);
mTabBarRatingTv.setChecked(true);
pauseVideo();
if (mFirstTimeSelected) {
@ -303,7 +306,7 @@ public class GameDetailFragment extends NormalFragment {
if (!mGameDetailEntity.getMe().isGameConcerned()) {
if (new InstallManager(getContext()).findInstallById(mGameEntity.getId()) == null) {
mTanBarXinXiTv.performClick();
mTabBarXinXiTv.performClick();
}
}
@ -419,14 +422,15 @@ public class GameDetailFragment extends NormalFragment {
mLoading.setVisibility(View.GONE);
mAppBarLayout.setVisibility(View.VISIBLE);
ViewGroup.LayoutParams tabParams = mTabbar.getLayoutParams();
if (mGameDetailEntity.getShowComment()) {
mTanBarRatingTv.setVisibility(View.VISIBLE);
ViewGroup.LayoutParams layoutParams = mTabbar.getLayoutParams();
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
mTabBarRatingTv.setVisibility(View.VISIBLE);
tabParams.width = mMaxWidth;
} else {
mTabbarLine.setVisibility(View.GONE);
mTanBarRatingTv.setVisibility(View.GONE);
mTanBarXinXiTv.setBackgroundResource(R.drawable.tabbar_right_selector);
mTabBarRatingTv.setVisibility(View.GONE);
mTabBarXinXiTv.setBackgroundResource(R.drawable.tabbar_right_selector);
tabParams.width = mMaxWidth * 2 / 3;
}
if (mGameDetailEntity.getMe().isGameConcerned()) {

View File

@ -114,15 +114,15 @@ class RatingFragment : ListFragment<RatingComment, RatingViewModel>() {
fun setRatingScore(progress: ProgressBar, star: Star) {
var targetScore = 0
when (progress.id) {
R.id.rating_score_five -> targetScore = star.five
R.id.rating_score_four -> targetScore = star.four
R.id.rating_score_three -> targetScore = star.three
R.id.rating_score_two -> targetScore = star.two
R.id.rating_score_one -> targetScore = star.one
R.id.rating_score_five -> targetScore = star.five / 10
R.id.rating_score_four -> targetScore = star.four / 8
R.id.rating_score_three -> targetScore = star.three / 6
R.id.rating_score_two -> targetScore = star.two / 4
R.id.rating_score_one -> targetScore = star.one / 2
}
var f = (targetScore / star.total.toFloat()) * 100
var f = (targetScore / star.hits.toFloat()) * 100
if (0 < f && f < 1) {
f = 1F
}

View File

@ -44,7 +44,7 @@ class PersonalAnswerActivity : ListActivity<AnswerEntity, NormalListViewModel<An
override fun onCreate(savedInstanceState: Bundle?) {
mUserId = intent.getStringExtra(EntranceUtils.KEY_USER_ID)
super.onCreate(savedInstanceState)
if (intent.getStringExtra(mUserId) == UserManager.getInstance().userId) {
if (mUserId == UserManager.getInstance().userId) {
setNavigationTitle("我的回答")
} else {
setNavigationTitle("Ta的回答")

View File

@ -360,11 +360,11 @@ class ArticleDetailActivity : BaseActivity() {
addTag(tag)
}
mBinding.articleDetailFollow.visibility = View.VISIBLE
if (mViewModel.detailEntity?.user?.id == UserManager.getInstance().userId) {
mBinding.articleDetailFollow.setText(R.string.myself)
mBinding.articleDetailFollow.setTextColor(ContextCompat.getColor(this, R.color.button_gray))
mBinding.articleDetailFollow.setBackgroundResource(R.drawable.button_border_gray)
} else {
if (mViewModel.detailEntity?.me?.isFollower!!) {
updateFollowBtn(true)

View File

@ -20,6 +20,7 @@ import android.view.Gravity
import android.view.MenuItem
import android.view.View
import android.view.Window
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.ProgressBar
import android.widget.TextView
@ -96,7 +97,7 @@ class ArticleEditActivity : BaseActivity() {
mViewModel?.draftEntity = intent.getParcelableExtra(ArticleDraftEntity::class.java.simpleName)
mGameNameTitle.text = Html.fromHtml(getString(R.string.article_edit_game_name))
mEditContent.setPadding(20, 15, 20, 15)
mEditContent.setPadding(18, 15, 18, 15)
mEditContent.setOnTextChangeListener { t ->
if (t.contains("<img src") || !TextUtils.isEmpty(mEditContent.text)) {
mEditPlaceholder.visibility = View.GONE
@ -161,6 +162,7 @@ class ArticleEditActivity : BaseActivity() {
setPatchContent()
mViewModel?.getDefaultTag()
} else if (mViewModel?.draftEntity != null) {
setNavigationTitle("撰写文章")
setArticleDraft()
} else {// 启动自动保存草稿
setNavigationTitle("撰写文章")
@ -217,11 +219,25 @@ class ArticleEditActivity : BaseActivity() {
private fun setArticleDraft() {
mViewModel?.mSelectCommunityData = mViewModel?.draftEntity?.community
mEditTitle.setText(mViewModel?.draftEntity?.title)
mEditTitle.isFocusable = false
mDraftBtn.visibility = View.GONE
mGameName.isEnabled = true
setGameName()
mViewModel?.getArticleDraftsContent(mViewModel?.draftEntity?.id!!)
mViewModel?.getDefaultTag()
mEditContent.focusEditor()
mEditContent.setOnInitialLoadListener { isReady ->
if (isReady) {
mEditContent.scrollTo(0, 10000000)
try {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(mEditContent, InputMethodManager.SHOW_IMPLICIT)
} catch (e: Exception) {
e.printStackTrace()
}
mEditContent.postDelayed({ mEditContent.focusEditor() }, 800)
}
}
}
private fun setPatchContent() {

View File

@ -86,7 +86,7 @@
android:id = "@+id/article_placeholder"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:paddingLeft = "20dp"
android:paddingLeft = "18dp"
android:paddingTop = "15dp"
android:text = "@string/article_placeholder"
android:textColor = "@color/hint" />