package com.tejia.lijin.app.ui.dialog;
|
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.wpc.library.util.SystemCommon;
|
import com.wpc.library.widget.ResizableImageView;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 用户引导弹框
|
*/
|
public class UserGuideDialog extends Dialog {
|
|
private static String TAG = "UserGuideDialog";
|
|
public UserGuideDialog(Context context) {
|
super(context);
|
this.setCancelable(false);
|
}
|
|
public UserGuideDialog(Context context, int theme) {
|
super(context, theme);
|
this.setCancelable(false);
|
}
|
|
|
public static class Builder {
|
private Activity context;
|
|
public Builder(Activity context) {
|
this.context = context;
|
}
|
|
private List<GuideStepContent> mList;
|
private FinishCallback finishCallback;
|
|
public Builder setFinishCallback(FinishCallback finishCallback) {
|
this.finishCallback = finishCallback;
|
return this;
|
}
|
|
private void initData() {
|
if (mList == null)
|
mList = new ArrayList<>();
|
mList.clear();
|
mList.add(new GuideStepContent("第一步", "快速查找商品优惠券和返利", R.drawable.user_guide_1, "复制淘宝/京东/拼多多标题或链接"));
|
mList.add(new GuideStepContent("第二步", "打开本App系统自动查找", R.drawable.user_guide_2, "系统自动完成智能搜索"));
|
mList.add(new GuideStepContent("第三步", "弹出猜你喜欢/智能搜索弹窗", R.drawable.user_guide_3, "选择要搜索的平台"));
|
}
|
|
private TextView tv_step_num, tv_step_name, tv_content_desc;
|
private ResizableImageView iv_content;
|
private ImageView iv_cancel;
|
|
private void setData(GuideStepContent content) {
|
tv_step_num.setText(content.stepOrder);
|
tv_step_name.setText(content.stepName);
|
tv_content_desc.setText(content.action);
|
iv_content.setImageResource(content.imageId);
|
}
|
|
int position = 0;
|
|
public UserGuideDialog create() {
|
initData();
|
LayoutInflater inflater = (LayoutInflater) context
|
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
final UserGuideDialog dialog = new UserGuideDialog(context, R.style.DialogUserGuide);
|
|
dialog.setCanceledOnTouchOutside(false);
|
final View layout = inflater.inflate(R.layout.dialog_user_guide, null);
|
tv_step_num = layout.findViewById(R.id.tv_step_num);
|
tv_step_name = layout.findViewById(R.id.tv_step_name);
|
tv_content_desc = layout.findViewById(R.id.tv_content_desc);
|
iv_content = layout.findViewById(R.id.iv_content);
|
iv_cancel = layout.findViewById(R.id.iv_cancel);
|
layout.findViewById(R.id.tv_next).setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (position >= mList.size()) {
|
dialog.dismiss();
|
UserUtil.shownUserGuide(context);
|
if (finishCallback != null) {
|
finishCallback.onFinish();
|
}
|
} else {
|
setData(mList.get(position++));
|
if (position >= mList.size())
|
iv_cancel.setVisibility(View.INVISIBLE);
|
else
|
iv_cancel.setVisibility(View.VISIBLE);
|
}
|
}
|
});
|
iv_cancel.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
dialog.dismiss();
|
UserUtil.shownUserGuide(context);
|
if (finishCallback != null) {
|
finishCallback.onFinish();
|
}
|
}
|
});
|
|
setData(mList.get(position++));
|
|
dialog.setContentView(layout);
|
|
android.view.WindowManager.LayoutParams params = dialog.getWindow()
|
.getAttributes();
|
params.width = (int) ((SystemCommon.getScreenWidth(context) * 3) / 4);
|
params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT;
|
dialog.getWindow().setAttributes(params);
|
return dialog;
|
}
|
|
class GuideStepContent {
|
String stepOrder;
|
String stepName;
|
int imageId;
|
String action;
|
|
public GuideStepContent(String stepOrder, String stepName, int imageId, String action) {
|
this.stepOrder = stepOrder;
|
this.stepName = stepName;
|
this.imageId = imageId;
|
this.action = action;
|
}
|
}
|
}
|
|
public interface FinishCallback {
|
public void onFinish();
|
}
|
|
|
}
|