package com.yunbao.share.ui; import static android.content.Context.CLIPBOARD_SERVICE; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.graphics.Color; import android.graphics.LinearGradient; import android.graphics.Shader; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.lxj.xpopup.XPopup; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.dialog.AbsDialogPopupWindow; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.share.R; import com.yunbao.share.adapters.ShareAppAdapter; import com.yunbao.share.bean.ShareBuilder; import java.util.ArrayList; import java.util.List; public class InvitePopDialog extends AbsDialogPopupWindow { private ShareAppAdapter adapter; private RecyclerView list; private RoundedImageView avatar; private TextView info; private TextView link; private TextView title; private List data; private String uid; private String anchorId; private String anchorName; private String anchorAvatar; private String url; private String titleStr; public InvitePopDialog(@NonNull Context context) { super(context); } public InvitePopDialog setUid(String uid) { this.uid = uid; return this; } public InvitePopDialog setAnchorId(String anchorId) { this.anchorId = anchorId; return this; } public InvitePopDialog setTitle(String title){ this.titleStr=title; return this; } public InvitePopDialog setAnchorName(String anchorName) { this.anchorName = anchorName; return this; } public InvitePopDialog setAnchorAvatar(String anchorAvatar) { this.anchorAvatar = anchorAvatar; return this; } @Override public void buildDialog(XPopup.Builder builder) { } @Override public int bindLayoutId() { return R.layout.dialog_share; } @Override protected void onCreate() { super.onCreate(); findViewById(R.id.close).setOnClickListener(v -> dismiss()); ((ImageView) findViewById(R.id.close)).setImageResource(R.mipmap.icon_invite_close); findViewById(R.id.share_copy).setOnClickListener(v -> copyLink()); // findViewById(R.id.share_preview).setVisibility(GONE); findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet); title = findViewById(R.id.share_title); list = findViewById(R.id.share_apps_list); avatar = findViewById(R.id.share_avatar); info = findViewById(R.id.share_info); link = findViewById(R.id.share_link); adapter = new ShareAppAdapter(getContext()); list.setLayoutManager(new GridLayoutManager(getContext(), 3)); list.setAdapter(adapter); initData(); link.setText(url.substring(0, 40)); if(StringUtil.isEmpty(titleStr)) { info.setText(R.string.dialog_invite_info); }else{ info.setText(titleStr); } avatar.setImageResource(R.mipmap.ic_launcher); //title.setTextColor(getContext().getResources().getColorStateList(R.drawable.bg_invite_title)); title.setText(R.string.dialog_invite_title); title.getViewTreeObserver().addOnGlobalLayoutListener(this::setTitleColor); } private void setTitleColor() { int[] colors = { Color.parseColor("#3377FF"), Color.parseColor("#7F66FF"), }; float[] position = { 0f, 1.0f }; float height = title.getMeasuredHeight(); LinearGradient mLinearGradient = new LinearGradient(0, 0, 0, height, colors, position, Shader.TileMode.CLAMP); title.getPaint().setShader(mLinearGradient); title.invalidate(); } private void initData() { data = new ArrayList<>(); //data.add(builder(ShareBuilder.APP_FACEBOOK)); data.add(builder(ShareBuilder.APP_LINE)); data.add(builder(ShareBuilder.APP_TWITTER)); data.add(builder(ShareBuilder.APP_WHATSAPP)); data.add(builder(ShareBuilder.APP_MESSENGER)); // data.add(builder(ShareBuilder.APP_INSTAGRAM)); adapter.setList(data); } private ShareBuilder builder(int type) { ShareBuilder builder = ShareBuilder.builder(type); builder.setText(getContext().getString(R.string.dialog_invite_info)); builder.setLink(url); builder.setUid(uid); builder.setAnchorId(anchorId); builder.setAnchorName(anchorName); builder.setAnchorAvatar(anchorAvatar); return builder; } private void copyLink() { ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE); ClipData clipData = ClipData.newPlainText("text", info.getText() + "\n" + url); cm.setPrimaryClip(clipData); ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success)); } public InvitePopDialog setUrl(String data) { this.url = data + "&isGoogle=" + (CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0"); return this; } }