admin
2021-05-08 f93ff67ed4681f416a653370aa1e7995a56940ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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();
    }
 
 
}