diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 1db8d0a5ac..ec487aaeda 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -111,6 +111,9 @@ public class Constants { public static final String BADGE_ADDRESS_DEV = "http://resource.ghzs.com/page/badge_dev/index.html#/"; public static final String BADGE_ADDRESS = "http://resource.ghzs.com/page/badge_pro/index.html#/"; + // 腾讯企点地址 + public static final String TENCENT_QIDIAN_ADDRESS = "https://url.cn/D80iyMVV?_type=wpa&qidian=true"; + //最少需要多少数据才能上传 public static final int DATA_AMOUNT = 20; diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 1c31394af6..99a6ac1d2f 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -29,6 +29,12 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.core.content.ContextCompat; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.gh.common.AppExecutor; import com.gh.common.constant.Config; @@ -58,12 +64,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; -import androidx.databinding.DataBindingUtil; -import androidx.recyclerview.widget.RecyclerView; - public class DialogUtils { public static Dialog showWaitDialog(Context context, String msg) { @@ -1099,6 +1099,21 @@ public class DialogUtils { final ConfirmListener cmListener, final CancelListener clListener, TrackableEntity trackableEntity) { + return showTrackableDialog(context, false, title, message, positive, negative, cmListener, clListener, trackableEntity); + } + + /** + * @param useRoundedCornerStyle 使用圆角样式 + */ + public static Dialog showTrackableDialog(Context context, + boolean useRoundedCornerStyle, + String title, + CharSequence message, + String positive, + String negative, + final ConfirmListener cmListener, + final CancelListener clListener, + TrackableEntity trackableEntity) { context = checkDialogContext(context); final TrackableDialog dialog = new TrackableDialog(context, @@ -1110,7 +1125,17 @@ public class DialogUtils { trackableEntity.getKeyBackValue(), trackableEntity.getLogShowEvent()); - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); + View contentView; + if (useRoundedCornerStyle) { + contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert_with_rounded_corner, null); + Window window = dialog.getWindow(); + if (window != null) { + window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + } + } else { + contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); + } + TextView contentTv = contentView.findViewById(R.id.dialog_content); TextView titleTv = contentView.findViewById(R.id.dialog_title); TextView negativeTv = contentView.findViewById(R.id.dialog_negative); diff --git a/app/src/main/java/com/gh/common/view/MessageSpannableTextView.java b/app/src/main/java/com/gh/common/view/MessageSpannableTextView.java index e715920b00..60fd3768f0 100644 --- a/app/src/main/java/com/gh/common/view/MessageSpannableTextView.java +++ b/app/src/main/java/com/gh/common/view/MessageSpannableTextView.java @@ -9,13 +9,14 @@ import android.text.style.ClickableSpan; import android.util.AttributeSet; import android.view.View; +import androidx.appcompat.widget.AppCompatTextView; + import com.gh.gamecenter.R; import java.util.ArrayList; import java.util.List; - -public class MessageSpannableTextView extends androidx.appcompat.widget.AppCompatTextView { +public class MessageSpannableTextView extends AppCompatTextView { private OnSpannableClickListener mSpannableClickListener; diff --git a/app/src/main/java/com/gh/gamecenter/entity/MessageKeFuEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MessageKeFuEntity.kt index bd8cf09b02..57609ff724 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageKeFuEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageKeFuEntity.kt @@ -32,6 +32,9 @@ class MessageKeFuEntity { @SerializedName("service") var serviceEntity: ServiceEntity? = null + @SerializedName("show_user_id") + var showUserId: Boolean? = false + class ServiceEntity { var name: String? = null var icon: String? = null diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt index a343815e9e..ef7b9b5c3f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.Intent -import android.graphics.Rect import android.os.Build import android.os.Bundle import android.text.TextUtils @@ -18,7 +17,7 @@ import com.gh.base.ToolBarActivity import com.gh.base.fragment.WaitingDialogFragment import com.gh.common.AppExecutor import com.gh.common.DefaultJsApi -import com.gh.common.im.ImManager +import com.gh.common.constant.Constants import com.gh.common.util.* import com.gh.common.view.dsbridge.DWebView import com.gh.common.view.dsbridge.OnReturnValue @@ -286,13 +285,11 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { errorEntity?.code == 403079 -> { MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame.name ?: "") MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "出现弹窗") - DialogUtils.showTrackableDialog(this@RatingEditActivity, "提示", + DialogUtils.showTrackableDialog(this@RatingEditActivity, true, "提示", "检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方联系客服按钮,将问题反馈给客服,以便更优解决!", "联系客服", "继续提交", { - ImManager.startChatActivity(this@RatingEditActivity - , "《" + errorEntity.data?.gameName + "》- " - + errorEntity.data?.content?.replace(LABEL_REPLACE_REGEX.toRegex(), ""), IM_REQUEST_CODE) + DirectUtils.directToExternalBrowser(this, Constants.TENCENT_QIDIAN_ADDRESS) MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击联系客服") }, { diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java index e2cb5339a6..c37af01e15 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java @@ -10,10 +10,13 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; + import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.generic.RoundingParams; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.OnListClickListener; +import com.gh.common.constant.Constants; import com.gh.common.constant.ItemViewType; import com.gh.common.im.ImManager; import com.gh.common.util.CommentUtils; @@ -44,8 +47,6 @@ import com.lightgame.utils.Utils; import java.util.ArrayList; import java.util.List; -import androidx.recyclerview.widget.RecyclerView; - /** * Created by khy on 2017/4/10. * 消息-客服适配器 @@ -193,13 +194,18 @@ public class KeFuFragmentAdapter extends ListAdapter { linkSkip(link); }); } - } else { viewHolder.skipList.setVisibility(View.GONE); } + if (keFuEntity.getShowUserId() != null && keFuEntity.getShowUserId()) { + viewHolder.copyIdContainer.setVisibility(View.VISIBLE); + viewHolder.copyIdContainer.setOnClickListener((view) -> { + Util_System_ClipboardManager.setText(mContext, UserManager.getInstance().getUserId()); + Utils.toast(mContext, "已复制"); + }); + } } - MessageKeFuEntity.ServiceEntity serviceEntity = keFuEntity.getServiceEntity(); viewHolder.kefuName.setText(R.string.kefu_default_name); if (serviceEntity != null) { @@ -397,6 +403,9 @@ public class KeFuFragmentAdapter extends ListAdapter { case "home": DirectUtils.directToHomeActivity(mContext, UserManager.getInstance().getUserId(), mEntrance, "(消息-客服)"); break; + case "qidian": + DirectUtils.directToExternalBrowser(mContext, Constants.TENCENT_QIDIAN_ADDRESS); + break; default: DirectUtils.directToLinkPage(mContext, data, mEntrance, "(消息-客服)"); break; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java index a2c284ffee..649ea698a0 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java @@ -37,6 +37,8 @@ public class KeFuViewHolder extends BaseRecyclerViewHolder { TextView kefuName; @BindView(R.id.message_kefu_unread) View unread; + @BindView(R.id.copy_id_container) + View copyIdContainer; @BindView(R.id.message_kefu_images_container) FlexboxLayout imagesContainer; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt b/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt index f0b1c6e634..fde0f7e287 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt @@ -24,7 +24,6 @@ class KeFuViewModel(application: Application) : ListViewModel>(mListLiveData) { mResultLiveData.postValue(it) } } - fun postMessageRead(messageId: String) { // 更新本地数据以及页面 diff --git a/app/src/main/res/drawable-hdpi/ic_id.png b/app/src/main/res/drawable-hdpi/ic_id.png new file mode 100644 index 0000000000..b6876610bf Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_id.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_id.png b/app/src/main/res/drawable-xhdpi/ic_id.png new file mode 100644 index 0000000000..54175900e5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_id.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_id.png b/app/src/main/res/drawable-xxhdpi/ic_id.png new file mode 100644 index 0000000000..129a651d8d Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_id.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_id.png b/app/src/main/res/drawable-xxxhdpi/ic_id.png new file mode 100644 index 0000000000..31d700b337 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_id.png differ diff --git a/app/src/main/res/layout/dialog_alert_with_rounded_corner.xml b/app/src/main/res/layout/dialog_alert_with_rounded_corner.xml new file mode 100644 index 0000000000..8fd56c6a77 --- /dev/null +++ b/app/src/main/res/layout/dialog_alert_with_rounded_corner.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/message_kefu_item.xml b/app/src/main/res/layout/message_kefu_item.xml index 998bedc531..d39610c970 100644 --- a/app/src/main/res/layout/message_kefu_item.xml +++ b/app/src/main/res/layout/message_kefu_item.xml @@ -2,6 +2,7 @@ + android:layout_marginRight="15dp" + tools:background="@color/btn_gray"> + android:textSize="12sp" + tools:text="Kris Wu" /> + android:textSize="10sp" + tools:text="12-13" /> + android:textSize="13sp" + tools:text="Kris Wu never let you down." /> + android:visibility="visible" + tools:text="Kris is here to help" /> + android:orientation="horizontal"> + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 449e0eacd9..1eae0cba3b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -225,6 +225,7 @@ 长按识别二维码下载『光环助手』 5个 享受免流量传送的快感 + 复制ID 网络错误,点击重试! 目前还没有评论 没有更多评论啦