From 3c6443d78fa82ef93e50841dd2c50f907bbd8e06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Wed, 17 Jun 2020 16:50:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9D=83=E7=94=B3=E8=AF=89UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/SuggestionActivity.java | 289 +++++++++++---- .../suggest/SuggestSelectFragment.java | 9 +- .../gh/gamecenter/suggest/SuggestType.java | 3 +- .../suggest_type_copyright.png | Bin 0 -> 5671 bytes app/src/main/res/layout/activity_suggest.xml | 332 +++++++++++++++++- .../main/res/layout/fragment_game_upload.xml | 1 - .../res/layout/fragment_suggest_select.xml | 48 +++ app/src/main/res/values/strings.xml | 10 + 8 files changed, 617 insertions(+), 75 deletions(-) create mode 100644 app/src/main/res/drawable-xxhdpi/suggest_type_copyright.png diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index eb571428de..5931ae7d22 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -6,6 +6,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Color; +import android.graphics.Paint; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -21,15 +22,10 @@ import android.widget.CheckedTextView; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ProgressBar; +import android.widget.RadioGroup; import android.widget.ScrollView; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - import com.gh.base.OnListClickListener; import com.gh.base.OnRequestCallBackListener; import com.gh.base.ToolBarActivity; @@ -89,6 +85,11 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.OnClick; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -153,12 +154,53 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall TextView mLinkEt; @BindView(R.id.suggest_link_container) View mLinkContainer; + @BindView(R.id.contactMethodContainer) + View mContactMethodContainer; + @BindView(R.id.picContainer) + View mPicContainer; + + @BindView(R.id.copyrightContainer) + View mCopyrightContainer; + @BindView(R.id.suggestIdentityRg) + RadioGroup mSuggestIdentityRg; + @BindView(R.id.suggestIdentityTv) + TextView mSuggestIdentityTv; + @BindView(R.id.credentialsCodeTv) + TextView mCredentialsCodeTv; + @BindView(R.id.credentialsCodeEt) + EditText mCredentialsCodeEt; + @BindView(R.id.credentialsPhotoTv) + TextView mCredentialsPhotoTv; + @BindView(R.id.credentialsPhotoRv) + RecyclerView mCredentialsPhotoRv; + @BindView(R.id.appNameTv) + TextView mAppNameTv; + @BindView(R.id.appNameEt) + EditText mAppNameEt; + @BindView(R.id.infringementAppScreenshotTv) + TextView mInfringementAppScreenshotTv; + @BindView(R.id.infringementAppScreenshotRv) + RecyclerView mInfringementAppScreenshotRv; + @BindView(R.id.explanationTv) + TextView mExplanationTv; + @BindView(R.id.explanationEt) + EditText mExplanationEt; + @BindView(R.id.contactMethodTv) + TextView mContactMethodTv; + @BindView(R.id.contactMethodEt) + EditText mContactMethodEt; + @BindView(R.id.lookDetailDesTv) + TextView mLookDetailDesTv; public static final int MEDIA_STORE_REQUEST = 1; + public static final int MEDIA_STORE_CREDENTIALS_REQUEST = 2; + public static final int MEDIA_STORE_SCREENSHOT_REQUEST = 3; public static final String SUGGESTION_HINT_TYPE = "SUGGESTION_HINT_TYPE"; public static final String FROM_RATING_KEY = "from_rating_key"; private SuggestPicAdapter mAdapter; + private SuggestPicAdapter mCredentialsAdapter; + private SuggestPicAdapter mScreenshotAdapter; private Dialog selectGameDialog; private WaitingDialogFragment postDialog; @@ -187,6 +229,8 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall private String mCollectCancelPkgName = ""; + private String mSuggestIdentity = "个人";//版权方身份 + @NonNull public static Intent getIntent(Context context, SuggestType suggestType) { Intent intent = new Intent(context, SuggestionActivity.class); @@ -247,7 +291,8 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (data != null && requestCode == MEDIA_STORE_REQUEST) { + if (data == null) return; + if (requestCode == MEDIA_STORE_REQUEST || requestCode == MEDIA_STORE_CREDENTIALS_REQUEST || requestCode == MEDIA_STORE_SCREENSHOT_REQUEST) { Uri selectedImage = data.getData(); if (selectedImage == null) { return; @@ -272,7 +317,13 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall long count = ImageUtils.getUploadFileMaxSize() / 1024 / 1024; Utils.toast(this, getString(R.string.pic_max_hint, count)); } else { - mAdapter.addFileList(picturePath); + if (requestCode == MEDIA_STORE_REQUEST) { + mAdapter.addFileList(picturePath); + } else if (requestCode == MEDIA_STORE_CREDENTIALS_REQUEST) { + mCredentialsAdapter.addFileList(picturePath); + } else { + mScreenshotAdapter.addFileList(picturePath); + } } } catch (Exception e) { Utils.toast(this, e.getMessage()); @@ -419,14 +470,61 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall mSuggestGameName.setVisibility(View.VISIBLE); mSuggestGameLl.setEnabled(false); } - - mSuggestContentEt.setFocusable(true); - mSuggestContentEt.setFocusableInTouchMode(true); - mSuggestContentEt.requestFocus(); mSuggestContentEt.setFilters(new InputFilter[]{TextHelper.getFilter(256, "最多输入256个字")}); mSuggestEmailEt.setFilters(new InputFilter[]{TextHelper.getFilter(64, "最多输入64个字")}); mTypeOtherName.setFilters(new InputFilter[]{TextHelper.getFilter(30, " 最多输入30个字")}); Util_System_Keyboard.showSoftKeyboard(this, mSuggestContentEt); + if (mSuggestType != SuggestType.copyright) { + mSuggestContentEt.setFocusable(true); + mSuggestContentEt.setFocusableInTouchMode(true); + mSuggestContentEt.requestFocus(); + } else { + mCredentialsAdapter = new SuggestPicAdapter(this, 5, new OnListClickListener() { + @Override + public void onListClick(View view, int position, T data) { + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(intent, MEDIA_STORE_CREDENTIALS_REQUEST); + } + }); + mCredentialsAdapter.setPicItem(R.layout.game_upload_pic_item); + mCredentialsAdapter.setSuggestAddPicIcon(R.drawable.icon_pic_add); + mCredentialsPhotoRv.setLayoutManager(new GridLayoutManager(this, 5) { + @Override + public boolean canScrollVertically() { + return false; + } + }); + mCredentialsPhotoRv.setAdapter(mCredentialsAdapter); + + mScreenshotAdapter = new SuggestPicAdapter(this, 5, new OnListClickListener() { + @Override + public void onListClick(View view, int position, T data) { + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(intent, MEDIA_STORE_SCREENSHOT_REQUEST); + } + }); + mScreenshotAdapter.setPicItem(R.layout.game_upload_pic_item); + mScreenshotAdapter.setSuggestAddPicIcon(R.drawable.icon_pic_add); + mInfringementAppScreenshotRv.setLayoutManager(new GridLayoutManager(this, 5) { + @Override + public boolean canScrollVertically() { + return false; + } + }); + mInfringementAppScreenshotRv.setAdapter(mScreenshotAdapter); + + mSuggestIdentityRg.setOnCheckedChangeListener((group, checkedId) -> { + if (checkedId == R.id.suggestPersonalRb) { + mSuggestIdentity = "个人"; + mCredentialsCodeEt.setHint("请填写身份证号或护照号"); + mCredentialsPhotoTv.setText(Html.fromHtml(getString(R.string.suggestion_credentials_pic))); + } else if (checkedId == R.id.suggestCompanyRb) { + mSuggestIdentity = "公司或组织"; + mCredentialsCodeEt.setHint("请填写公司营业执照或组织代码等"); + mCredentialsPhotoTv.setText(Html.fromHtml(getString(R.string.suggestion_company_pic))); + } + }); + } } private void initSuggest(SuggestType type) { @@ -434,12 +532,15 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall mSuggestContentEt.setHint("请详细描述你遇到的问题... \n ↓↓你还可以上传截图"); mSuggestTypeContainer.setVisibility(View.GONE); mSuggestGameLl.setVisibility(View.GONE); + mCopyrightContainer.setVisibility(View.GONE); } else if (type == SuggestType.crash) { mSuggestContentEt.setHint("请详细描述闪退之前你所进行的操作... \n ↓↓你还可以上传截图"); mSuggestTypeContainer.setVisibility(View.GONE); mSuggestGameLl.setVisibility(View.GONE); + mCopyrightContainer.setVisibility(View.GONE); } else if (type == SuggestType.gameQuestion) { mSuggestTypeContainer.setVisibility(View.GONE); + mCopyrightContainer.setVisibility(View.GONE); if (!EntranceUtils.KEY_PLUGIN.equals(mSuggestHintType)) { mSuggestContentEt.setHint("请描述具体遇到的问题... \n ↓↓你还可以上传截图"); mSuggestGameLl.setVisibility(View.VISIBLE); @@ -458,6 +559,7 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall mSuggestTypeContainer.setVisibility(View.GONE); mSuggestContentEt.setHint("请在上方选择或填写游戏名↑↑ \n 在此处可输入补充信息(例如游戏的平台版本等)"); mEmailName.setText(Html.fromHtml(getString(R.string.suggestion_contact))); + mCopyrightContainer.setVisibility(View.GONE); } else if (type == SuggestType.functionSuggest) { mSuggestContentEt.setHint("请详细描述你的建议... \n ↓↓你还可以上传截图"); mSuggestTypeContainer.setVisibility(View.VISIBLE); @@ -465,10 +567,29 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall mGameNameTitle.setText(Html.fromHtml(getString(R.string.suggestion_game_name))); mTypeName.setText(Html.fromHtml(getString(R.string.suggestion_function))); mEmailName.setText(Html.fromHtml(getString(R.string.suggestion_contact))); + mCopyrightContainer.setVisibility(View.GONE); } else if (type == SuggestType.articleCollect) { mSuggestContentEt.setHint("简单介绍文章内容,别忘了填写文章链接哦 \n ↓↓你还可以上传截图"); mSuggestTypeContainer.setVisibility(View.GONE); mSuggestGameLl.setVisibility(View.GONE); + mCopyrightContainer.setVisibility(View.GONE); + } else if (type == SuggestType.copyright) { + mSuggestGameLl.setVisibility(View.GONE); + mSuggestTypeContainer.setVisibility(View.GONE); + mPlatformContainer.setVisibility(View.GONE); + mLinkContainer.setVisibility(View.GONE); + mContactMethodContainer.setVisibility(View.GONE); + mPicContainer.setVisibility(View.GONE); + mCopyrightContainer.setVisibility(View.VISIBLE); + mCredentialsCodeEt.requestFocus(); + mSuggestIdentityTv.setText(Html.fromHtml(getString(R.string.suggestion_identity))); + mCredentialsCodeTv.setText(Html.fromHtml(getString(R.string.suggestion_credentials_code))); + mCredentialsPhotoTv.setText(Html.fromHtml(getString(R.string.suggestion_credentials_pic))); + mAppNameTv.setText(Html.fromHtml(getString(R.string.suggestion_app_name))); + mInfringementAppScreenshotTv.setText(Html.fromHtml(getString(R.string.suggestion_infringement))); + mExplanationTv.setText(Html.fromHtml(getString(R.string.suggestion_explanation))); + mContactMethodTv.setText(Html.fromHtml(getString(R.string.suggestion_contact_method))); + mLookDetailDesTv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); } } @@ -545,63 +666,73 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall } @OnClick({R.id.suggest_post_btn, R.id.suggest_game_container, R.id.type_accelerate, R.id.type_material, - R.id.type_other, R.id.type_standalone}) + R.id.type_other, R.id.type_standalone, R.id.lookDetailDesTv}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.suggest_post_btn: - String email = mSuggestEmailEt.getText().toString().trim(); - - if (TextUtils.isEmpty(mSuggestContentEt.getText().toString()) && - mSuggestType != SuggestType.functionSuggest && - mSuggestType != SuggestType.gameCollect) { - toast("请输入反馈内容"); - return; - } - - if (mSuggestGameLl.getVisibility() == View.VISIBLE && - TextUtils.isEmpty(mSuggestGameName.getText().toString())) { - toast("请选择游戏"); - return; - } - - if (mSuggestTypeContainer.getVisibility() == View.VISIBLE) { - if (mFunctionType == 3 && TextUtils.isEmpty(mTypeOtherName.getText().toString().trim())) { - toast("请选择功能需求"); - return; - } - if (mFunctionType == -1) { - toast("请选择功能需求"); - return; - } - } - - if (mPlatformContainer.getVisibility() == View.VISIBLE && - TextUtils.isEmpty(mPlatformEt.getText().toString())) { - toast("请填写游戏平台"); - return; - } - String entrance = "我的光环-反馈-[提交]"; - if (!TextUtils.isEmpty(mSuggestContent)) { - switch (mSuggestContent) { - case "问题投诉": - entrance = "问题详情-投诉-提交反馈"; - break; - case "回答投诉": - entrance = "回答详情-投诉-提交反馈"; - break; - case "文章投诉": - entrance = "社区文章详情-投诉-提交反馈"; - break; + if (mSuggestType != SuggestType.copyright) { + String email = mSuggestEmailEt.getText().toString().trim(); + + if (TextUtils.isEmpty(mSuggestContentEt.getText().toString()) && + mSuggestType != SuggestType.functionSuggest && + mSuggestType != SuggestType.gameCollect) { + toast("请输入反馈内容"); + return; + } + + if (mSuggestGameLl.getVisibility() == View.VISIBLE && + TextUtils.isEmpty(mSuggestGameName.getText().toString())) { + toast("请选择游戏"); + return; + } + + if (mSuggestTypeContainer.getVisibility() == View.VISIBLE) { + if (mFunctionType == 3 && TextUtils.isEmpty(mTypeOtherName.getText().toString().trim())) { + toast("请选择功能需求"); + return; + } + if (mFunctionType == -1) { + toast("请选择功能需求"); + return; + } + } + + if (mPlatformContainer.getVisibility() == View.VISIBLE && + TextUtils.isEmpty(mPlatformEt.getText().toString())) { + toast("请填写游戏平台"); + return; + } + + + if (!TextUtils.isEmpty(mSuggestContent)) { + switch (mSuggestContent) { + case "问题投诉": + entrance = "问题详情-投诉-提交反馈"; + break; + case "回答投诉": + entrance = "回答详情-投诉-提交反馈"; + break; + case "文章投诉": + entrance = "社区文章详情-投诉-提交反馈"; + break; + } + } + // 闪退反馈不需要反馈(由闪退提示框跳转) + if (mSuggestType == SuggestType.crash && !mHideHint.isEmpty()) { + readPostSuggestion(email); + } else { + CheckLoginUtils.checkLogin(this, entrance, () -> { + readPostSuggestion(email); + }); } - } - // 闪退反馈不需要反馈(由闪退提示框跳转) - if (mSuggestType == SuggestType.crash && !mHideHint.isEmpty()) { - readPostSuggestion(email); } else { CheckLoginUtils.checkLogin(this, entrance, () -> { - readPostSuggestion(email); + if (checkCopyrightData()) { + + } }); + } break; case R.id.suggest_game_container: @@ -639,9 +770,45 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall mFunctionType = 3; mTypeOtherName.requestFocus(); break; + case R.id.lookDetailDesTv: + startActivity(WebActivity.getUploadPolicyIntent(this)); + break; } } + private boolean checkCopyrightData() { + if (TextUtils.isEmpty(mSuggestIdentity)) { + toast("请先选择版权方身份"); + return false; + } else { + if (TextUtils.isEmpty(mCredentialsCodeEt.getText().toString())) { + toast(mSuggestIdentity.equals("个人") ? "请填写身份证号或护照号等" : "请填写公司营业执照或组织代码等"); + return false; + } + } + if (mCredentialsAdapter.getFileList().size() == 0) { + toast("请先添加版权证明文件"); + return false; + } + if (TextUtils.isEmpty(mAppNameEt.getText().toString())) { + toast("请先填写侵权的应用名字"); + return false; + } + if (mScreenshotAdapter.getFileList().size() == 0) { + toast("请先添加侵权应用截图"); + return false; + } + if (TextUtils.isEmpty(mExplanationEt.getText().toString())) { + toast("请先填写说明"); + return false; + } + if (TextUtils.isEmpty(mContactMethodEt.getText().toString())) { + toast("请先填写联系方式"); + return false; + } + return true; + } + private void readPostSuggestion(String email) { if (TextUtils.isEmpty(email)) { if (mSuggestType == SuggestType.functionSuggest || mSuggestType == SuggestType.gameCollect) { diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java index 6104722faf..0dc14ac15d 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java @@ -6,8 +6,6 @@ import android.text.TextUtils; import android.view.View; import android.widget.TextView; -import androidx.annotation.Nullable; - import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Config; import com.gh.common.util.DirectUtils; @@ -17,6 +15,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.SettingsEntity; +import androidx.annotation.Nullable; import butterknife.BindView; import butterknife.OnClick; @@ -49,7 +48,7 @@ public class SuggestSelectFragment extends BaseFragment { } @OnClick({R.id.suggest_type1, R.id.suggest_type2, R.id.suggest_type3, R.id.suggest_type4, - R.id.suggest_type5, R.id.suggest_type6, R.id.suggest_qqun_rl}) + R.id.suggest_type5, R.id.suggest_type6, R.id.suggest_type7, R.id.suggest_qqun_rl}) public void OnClick(View view) { SuggestType type = SuggestType.normal; switch (view.getId()) { @@ -77,6 +76,10 @@ public class SuggestSelectFragment extends BaseFragment { type = SuggestType.articleCollect; MtaHelper.onEvent("意见反馈", "意见反馈", "文章投稿"); break; + case R.id.suggest_type7: + type = SuggestType.copyright; + MtaHelper.onEvent("意见反馈", "意见反馈", "版权申诉"); + break; case R.id.suggest_qqun_rl: MtaHelper.onEvent("意见反馈", "意见反馈", "点击QQ群号"); if (ShareUtils.isQQClientAvailable(requireContext())) { 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 d060f7b7bc..0d4684050d 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,8 @@ public enum SuggestType { gameQuestion("游戏问题"), gameCollect("游戏收录"), functionSuggest("功能收录"), - articleCollect("文章投稿"); + articleCollect("文章投稿"), + copyright("版权申诉"); private String mType; diff --git a/app/src/main/res/drawable-xxhdpi/suggest_type_copyright.png b/app/src/main/res/drawable-xxhdpi/suggest_type_copyright.png new file mode 100644 index 0000000000000000000000000000000000000000..e357c7c7686c1b4b86ea3a352d490b49a643cdc4 GIT binary patch literal 5671 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 N002ovPDHLkV1lLz;|l-) literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_suggest.xml b/app/src/main/res/layout/activity_suggest.xml index 66204a3c08..72128be623 100644 --- a/app/src/main/res/layout/activity_suggest.xml +++ b/app/src/main/res/layout/activity_suggest.xml @@ -1,9 +1,10 @@ - + @@ -15,7 +16,8 @@ @@ -237,6 +239,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + android:layout_weight = "1" />--> + + + + + + + + + + + + + 游戏收录 推荐好玩的游戏,或游戏版本求更新 文章投稿 + 版权申诉 原创或转发,我们都欢迎 + 原创或转发,我们都欢迎 光环助手官方交流Q群: 367541038 添加选项 @@ -614,6 +616,14 @@ 游戏平台*]]> 功能需求*]]> 联系方式*]]> + 版权方身份*]]> + 版权方证件*]]> + 证件正反面照片*]]> + 公司或组织证件照片*]]> + 侵权的应用*]]> + 侵权应用截图*]]> + 说明*]]> + 联系方式*]]> 游戏标签*]]> 开发者的话*]]>