Browse Source

视频发布功能开发完成

huyuguo 6 years ago
parent
commit
7f8ea07c24

+ 1 - 1
app/src/main/java/com/electric/chargingpile/activity/PublishPicTopicActivity.java

189
        itemWidth = (int) ((screenWidth - DensityUtil.dip2px(this, 15 * 2 + 10 * 2)) / 3f);
189
        itemWidth = (int) ((screenWidth - DensityUtil.dip2px(this, 15 * 2 + 10 * 2)) / 3f);
190
190
191
        uploadDialog = new ProgressDialog(this);
191
        uploadDialog = new ProgressDialog(this);
192
        uploadDialog.setMessage("正在提交...");
192
        uploadDialog.setMessage("发布中...");
193
        uploadDialog.setCanceledOnTouchOutside(false);
193
        uploadDialog.setCanceledOnTouchOutside(false);
194
194
195
        mPublishTopicDe = (ImageView) findViewById(R.id.publishtopic_choose_topic_de);
195
        mPublishTopicDe = (ImageView) findViewById(R.id.publishtopic_choose_topic_de);

+ 71 - 79
app/src/main/java/com/electric/chargingpile/activity/PublishVideoTopicActivity.java

1
package com.electric.chargingpile.activity;
1
package com.electric.chargingpile.activity;
2
2
3
import android.app.Activity;
3
import android.app.Activity;
4
import android.app.ProgressDialog;
4
import android.content.Context;
5
import android.content.Context;
5
import android.content.DialogInterface;
6
import android.content.DialogInterface;
6
import android.content.Intent;
7
import android.content.Intent;
27
import com.bumptech.glide.Glide;
28
import com.bumptech.glide.Glide;
28
import com.bumptech.glide.request.RequestOptions;
29
import com.bumptech.glide.request.RequestOptions;
29
import com.electric.chargingpile.R;
30
import com.electric.chargingpile.R;
31
import com.electric.chargingpile.adapter.TopicAdapter;
30
import com.electric.chargingpile.application.MainApplication;
32
import com.electric.chargingpile.application.MainApplication;
31
import com.electric.chargingpile.data.AuthSignBean;
33
import com.electric.chargingpile.data.AuthSignBean;
34
import com.electric.chargingpile.data.ChatRecommendBean;
32
import com.electric.chargingpile.data.TalkRecommendBean;
35
import com.electric.chargingpile.data.TalkRecommendBean;
33
import com.electric.chargingpile.manager.ProfileManager;
36
import com.electric.chargingpile.manager.ProfileManager;
34
import com.electric.chargingpile.util.BarColorUtil;
37
import com.electric.chargingpile.util.BarColorUtil;
35
import com.electric.chargingpile.util.Bimp;
38
import com.electric.chargingpile.util.Bimp;
39
import com.electric.chargingpile.util.CommonParams;
36
import com.electric.chargingpile.util.JsonUtils;
40
import com.electric.chargingpile.util.JsonUtils;
37
import com.electric.chargingpile.util.LoadingDialog;
41
import com.electric.chargingpile.util.LoadingDialog;
38
import com.electric.chargingpile.util.ToastUtil;
42
import com.electric.chargingpile.util.ToastUtil;
57
import okhttp3.Call;
61
import okhttp3.Call;
58
62
59
public class PublishVideoTopicActivity extends Activity implements OnClickListener {
63
public class PublishVideoTopicActivity extends Activity implements OnClickListener {
64
    private static final String TAG = "PublishVideoTopicActivity";
60
    Context mContext;
65
    Context mContext;
61
    private ImageView mPublishtopicBack;
66
    private ImageView mPublishtopicBack;
62
    private TextView mPublishtopicPublish;
67
    private TextView mPublishtopicPublish;
77
82
78
    public static final String IMAGE_CACHE = CACHE_DIR + "/cache/image/";
83
    public static final String IMAGE_CACHE = CACHE_DIR + "/cache/image/";
79
    LocalMedia media;
84
    LocalMedia media;
80
    LoadingDialog loadingDialog;
85
    ProgressDialog uploadDialog;
81
86
82
    @Override
87
    @Override
83
    protected void onCreate(Bundle savedInstanceState) {
88
    protected void onCreate(Bundle savedInstanceState) {
84
        super.onCreate(savedInstanceState);
89
        super.onCreate(savedInstanceState);
85
        setContentView(R.layout.activity_publishtopic);
90
        setContentView(R.layout.activity_publishtopic);
86
        mContext = this;
91
        mContext = this;
87
        loadingDialog = new LoadingDialog(this);
88
        loadingDialog.setCanceledOnTouchOutside(false);
92
        uploadDialog = new ProgressDialog(this);
93
        uploadDialog.setMessage("发布中...");
94
        uploadDialog.setCanceledOnTouchOutside(false);
95
89
        BarColorUtil.initStatusBarColor(PublishVideoTopicActivity.this);
96
        BarColorUtil.initStatusBarColor(PublishVideoTopicActivity.this);
90
        initView();
97
        initView();
91
    }
98
    }
108
        mPublishtopicCon.addTextChangedListener(new TextWatcher() {
115
        mPublishtopicCon.addTextChangedListener(new TextWatcher() {
109
            @Override
116
            @Override
110
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
117
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
111
112
            }
118
            }
113
119
114
            @Override
120
            @Override
115
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
121
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
116
117
118
            }
122
            }
119
123
120
            @Override
124
            @Override
125
                    mPublishtopicCon.setSelection(500);
129
                    mPublishtopicCon.setSelection(500);
126
                }
130
                }
127
                String s = mPublishtopicCon.getText().toString();
131
                String s = mPublishtopicCon.getText().toString();
128
129
                if (!s.trim().isEmpty() && s.length() > 0 && null != media) {
130
                    mPublishtopicPublish.setEnabled(true);
131
                    mPublishtopicPublish.setBackgroundColor(Color.parseColor("#02b637"));
132
                } else {
133
                    mPublishtopicPublish.setEnabled(false);
134
                    mPublishtopicPublish.setBackgroundColor(Color.parseColor("#9ed3ae"));
135
                }
136
132
                updatePublishBtn();
137
                if (TextUtils.isEmpty(s)) {
133
                if (TextUtils.isEmpty(s)) {
138
                    mPublishtopicWordNum.setText("0/500");
134
                    mPublishtopicWordNum.setText("0/500");
139
                } else {
135
                } else {
151
        mPublishtopicGv.setOnClickListener(this);
147
        mPublishtopicGv.setOnClickListener(this);
152
    }
148
    }
153
149
150
    private void updatePublishBtn() {
151
        String s = mPublishtopicCon.getText().toString();
152
        if (!s.trim().isEmpty() && s.length() > 0 && null != media) {
153
            mPublishtopicPublish.setEnabled(true);
154
            mPublishtopicPublish.setBackgroundColor(Color.parseColor("#02b637"));
155
        } else {
156
            mPublishtopicPublish.setEnabled(false);
157
            mPublishtopicPublish.setBackgroundColor(Color.parseColor("#9ed3ae"));
158
        }
159
    }
160
154
161
155
    @Override
162
    @Override
156
    public void onClick(View v) {
163
    public void onClick(View v) {
157
        switch (v.getId()) {
164
        switch (v.getId()) {
158
            case R.id.publishtopic_back: // 左上返回按钮事件
165
            case R.id.publishtopic_back: // 左上返回按钮事件
159
                showDialogToExit();
166
                showDialogToExit();
160
//                finish();
161
                break;
167
                break;
162
            case R.id.publishtopic_publish: // 右上发布事件
168
            case R.id.publishtopic_publish: // 右上发布事件
163
                if (media == null) {
169
                if (media == null) {
164
                    ToastUtils.showLong("请选择视频!");
170
                    ToastUtils.showLong("请选择视频!");
165
                    return;
171
                    return;
166
                }
172
                }
167
                if (chatRecommendBean == null) {
168
                    ToastUtils.showLong("请选择话题!");
169
                    return;
170
                }
173
                uploadDialog.show();
171
                getYouPaiData();
174
                getYouPaiData();
172
                break;
175
                break;
173
174
            case R.id.publishtopic_choose_topic: // 选择话题事件
176
            case R.id.publishtopic_choose_topic: // 选择话题事件
175
                startActivityForResult(new Intent(this, TopicActivity.class), reqTopic);
177
                startActivityForResult(new Intent(this, TopicActivity.class), reqTopic);
176
                break;
178
                break;
177
            case R.id.publishtopic_choose_preview: // 预览事件 未知隐藏
179
            case R.id.publishtopic_choose_preview: // 预览事件 暂时隐藏
178
                break;
180
                break;
179
            case R.id.publishtopic_choose_topic_de: // 取消选择话题事件
181
            case R.id.publishtopic_choose_topic_de: // 取消选择话题事件
180
                mPublishtopicChooseTopic.setText("# 选择话题");
182
                mPublishtopicChooseTopic.setText("# 选择话题");
211
                mItemVideoLl.setVisibility(View.GONE);
213
                mItemVideoLl.setVisibility(View.GONE);
212
                mPublishtopicGv.setVisibility(View.VISIBLE);
214
                mPublishtopicGv.setVisibility(View.VISIBLE);
213
                media = null;
215
                media = null;
216
                updatePublishBtn();
214
                break;
217
                break;
215
            default:
218
            default:
216
                break;
219
                break;
223
        Map<String, String> map = new HashMap<>();
226
        Map<String, String> map = new HashMap<>();
224
        map.put("fileNames", fileNames);
227
        map.put("fileNames", fileNames);
225
        Log.e("fileNameDir fileName", fileNames);
228
        Log.e("fileNameDir fileName", fileNames);
226
        map.put("targetType", "23");//23视频/24图片
227
        String token = ProfileManager.getInstance().getKeyMessageToken(getApplicationContext());
228
        map.put("appToken", token + "");
229
        map.put("userId", MainApplication.userId);
230
        OkHttpUtils
231
                .post()
232
                .params(map)
233
                .url(url)
234
                .build()
235
                .connTimeOut(6000)
236
                .readTimeOut(6000)
237
                .execute(new StringCallback() {
238
                    @Override
239
                    public void onError(Call call, Exception e) {
240
                        ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
241
                        loadingDialog.dismiss();
242
                    }
229
        map.put("targetType", ChatRecommendBean.TARGET_TYPE_VIDEO + "");
230
        CommonParams.addCommonParams(map);
243
231
244
                    @Override
245
                    public void onResponse(String response) {
246
                        String rtnCode = JsonUtils.getKeyResult(response, "code");
247
                        if ("1000".equals(rtnCode)) {
248
                            String rtnMsg = JsonUtils.getKeyResult(response, "data");
249
                            ArrayList<AuthSignBean> signBeans = (ArrayList<AuthSignBean>) JsonUtils.parseToObjectList(rtnMsg, AuthSignBean.class);
250
251
                            if (null != signBeans && signBeans.size() > 0) {
252
                                String sign = signBeans.get(0).sign;
253
                                String policy = signBeans.get(0).policy;
254
                                formUpload(media.getPath(), sign, policy);
255
                            }
256
                        } else {
257
                            String desc = JsonUtils.getKeyResult(response, "desc");
258
                            ToastUtil.showToast(getApplicationContext(), desc, Toast.LENGTH_SHORT);
259
                            loadingDialog.dismiss();
260
                        }
232
        OkHttpUtils.post().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
233
            @Override
234
            public void onError(Call call, Exception e) {
235
                ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
236
                uploadDialog.dismiss();
237
            }
238
239
            @Override
240
            public void onResponse(String response) {
241
                String code = JsonUtils.getKeyResult(response, "code");
242
                String desc = JsonUtils.getKeyResult(response, "desc");
243
                if ("1000".equals(code)) {
244
                    String data = JsonUtils.getKeyResult(response, "data");
245
                    ArrayList<AuthSignBean> signBeans = (ArrayList<AuthSignBean>) JsonUtils.parseToObjectList(data, AuthSignBean.class);
246
                    if (null != signBeans && signBeans.size() > 0) {
247
                        String sign = signBeans.get(0).sign;
248
                        String policy = signBeans.get(0).policy;
249
                        formUpload(media.getPath(), sign, policy);
261
                    }
250
                    }
262
                });
251
                } else {
252
                    ToastUtil.showToast(getApplicationContext(), desc, Toast.LENGTH_SHORT);
253
                    uploadDialog.dismiss();
254
                }
255
            }
256
        });
263
257
264
    }
258
    }
265
259
287
                    requestPublishServer("[" + result + "]");
281
                    requestPublishServer("[" + result + "]");
288
                } else {
282
                } else {
289
                    ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
283
                    ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
290
                    loadingDialog.dismiss();
284
                    uploadDialog.dismiss();
291
                }
285
                }
292
            }
286
            }
293
        };
287
        };
309
        Map<String, String> map = new HashMap<>();
303
        Map<String, String> map = new HashMap<>();
310
        map.put("content", mPublishtopicCon.getText().toString());
304
        map.put("content", mPublishtopicCon.getText().toString());
311
        map.put("urls", urls);
305
        map.put("urls", urls);
312
        map.put("topicId", chatRecommendBean.targetId + "");
313
        map.put("targetType", "23");
306
        if (chatRecommendBean != null) {
307
            map.put("topicId", chatRecommendBean.targetId + "");
308
        }
309
        map.put("targetType", ChatRecommendBean.TARGET_TYPE_VIDEO + "");
314
        map.put("coverImgW", media.getWidth() + "");
310
        map.put("coverImgW", media.getWidth() + "");
315
        map.put("coverImgH", media.getHeight() + "");
311
        map.put("coverImgH", media.getHeight() + "");
316
        map.put("duration", media.getDuration() + "");
312
        map.put("duration", media.getDuration() + "");
317
        map.put("size", size + "");
313
        map.put("size", size + "");
318
        if (MainApplication.isLogin()) {
319
            map.put("userId", MainApplication.userId);
320
            map.put("appToken", MainApplication.messageToken);
321
        }
314
        CommonParams.addCommonParams(map);
315
322
        OkHttpUtils.post().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
316
        OkHttpUtils.post().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
323
            @Override
317
            @Override
324
            public void onError(Call call, Exception e) {
318
            public void onError(Call call, Exception e) {
325
                ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
319
                ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
326
327
                loadingDialog.dismiss();
320
                uploadDialog.dismiss();
328
            }
321
            }
329
322
330
            @Override
323
            @Override
331
            public void onResponse(String response) {
324
            public void onResponse(String response) {
332
                String rtnCode = JsonUtils.getKeyResult(response, "code");
333
                if ("1000".equals(rtnCode)) {
325
                String code = JsonUtils.getKeyResult(response, "code");
326
                String desc = JsonUtils.getKeyResult(response, "desc");
327
                Log.d(TAG, "onResponse: " + response);
328
                if ("1000".equals(code)) {
334
                    ToastUtil.showToast(getApplicationContext(), "发布成功", Toast.LENGTH_SHORT);
329
                    ToastUtil.showToast(getApplicationContext(), "发布成功", Toast.LENGTH_SHORT);
335
                    finish();
330
                    startActivity(new Intent(getApplicationContext(), ChatActivity.class));
336
                } else {
331
                } else {
337
                    String message = JsonUtils.getKeyResult(response, "desc");
338
                    ToastUtil.showToast(getApplicationContext(), message, Toast.LENGTH_SHORT);
332
                    ToastUtil.showToast(getApplicationContext(), desc, Toast.LENGTH_SHORT);
339
                }
333
                }
340
                loadingDialog.dismiss();
334
                uploadDialog.dismiss();
341
            }
335
            }
342
        });
336
        });
343
    }
337
    }
344
338
345
339
346
    final int reqTopic = 100;
340
    final int reqTopic = 100;
347
348
    TalkRecommendBean chatRecommendBean = null;
341
    ChatRecommendBean chatRecommendBean = null;
349
342
350
    @Override
343
    @Override
351
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
344
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
352
        super.onActivityResult(requestCode, resultCode, data);
345
        super.onActivityResult(requestCode, resultCode, data);
353
354
        if (requestCode == reqTopic && resultCode == -100) {
346
        if (requestCode == reqTopic && resultCode == -100) {
355
            chatRecommendBean = (TalkRecommendBean) data.getSerializableExtra("topic");
347
            chatRecommendBean = (ChatRecommendBean) data.getSerializableExtra("topic");
356
            if (chatRecommendBean != null) {
348
            if (chatRecommendBean != null) {
357
                mPublishtopicChooseTopic.setText("# " + chatRecommendBean.topicName);
349
                mPublishtopicChooseTopic.setText(Html.fromHtml(chatRecommendBean.name));
358
                mPublishTopicDe.setVisibility(View.VISIBLE);
350
                mPublishTopicDe.setVisibility(View.VISIBLE);
359
            }
351
            }
360
        } else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
352
        } else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
372
                    return;
364
                    return;
373
                }
365
                }
374
366
375
                Glide
376
                        .with(this)
367
                Glide.with(this)
377
                        .load(Uri.fromFile(new File(media.getPath())))
368
                        .load(Uri.fromFile(new File(media.getPath())))
378
                        .apply(new RequestOptions().centerCrop())
369
                        .apply(new RequestOptions().centerCrop())
379
                        .into(mItemVideo);
370
                        .into(mItemVideo);
380
                mItemVideoLl.setVisibility(View.VISIBLE);
371
                mItemVideoLl.setVisibility(View.VISIBLE);
381
                mPublishtopicGv.setVisibility(View.GONE);
372
                mPublishtopicGv.setVisibility(View.GONE);
373
                updatePublishBtn();
382
                Log.e("yopic", "TEST===> video path = " + media.getPath()
374
                Log.e("yopic", "TEST===> video path = " + media.getPath()
383
                        + ",  compressPath = " + media.getCompressPath()
375
                        + ",  compressPath = " + media.getCompressPath()
384
                        + ", height = " + media.getHeight()
376
                        + ", height = " + media.getHeight()

+ 54 - 49
app/src/main/java/com/electric/chargingpile/activity/TopicActivity.java

8
import android.support.v7.widget.RecyclerView;
8
import android.support.v7.widget.RecyclerView;
9
import android.text.Editable;
9
import android.text.Editable;
10
import android.text.TextWatcher;
10
import android.text.TextWatcher;
11
import android.util.Log;
11
import android.view.View;
12
import android.view.View;
12
import android.view.View.OnClickListener;
13
import android.view.View.OnClickListener;
13
import android.widget.EditText;
14
import android.widget.EditText;
15
import android.widget.LinearLayout;
16
import android.widget.LinearLayout;
16
import android.widget.RelativeLayout;
17
import android.widget.RelativeLayout;
17
import android.widget.TextView;
18
import android.widget.TextView;
19
import android.widget.Toast;
18
20
19
import com.electric.chargingpile.R;
21
import com.electric.chargingpile.R;
20
import com.electric.chargingpile.adapter.TopicAdapter;
22
import com.electric.chargingpile.adapter.TopicAdapter;
21
import com.electric.chargingpile.application.MainApplication;
23
import com.electric.chargingpile.application.MainApplication;
24
import com.electric.chargingpile.data.ChatRecommendBean;
22
import com.electric.chargingpile.data.TalkRecommendBean;
25
import com.electric.chargingpile.data.TalkRecommendBean;
23
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
26
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
24
import com.electric.chargingpile.util.BarColorUtil;
27
import com.electric.chargingpile.util.BarColorUtil;
28
import com.electric.chargingpile.util.CommonParams;
25
import com.electric.chargingpile.util.JsonUtils;
29
import com.electric.chargingpile.util.JsonUtils;
30
import com.electric.chargingpile.util.ToastUtil;
26
import com.umeng.analytics.MobclickAgent;
31
import com.umeng.analytics.MobclickAgent;
27
import com.zhy.http.okhttp.OkHttpUtils;
32
import com.zhy.http.okhttp.OkHttpUtils;
28
import com.zhy.http.okhttp.callback.StringCallback;
33
import com.zhy.http.okhttp.callback.StringCallback;
40
 * @author lenovo
45
 * @author lenovo
41
 */
46
 */
42
public class TopicActivity extends Activity implements OnClickListener, EasyPermissions.PermissionCallbacks {
47
public class TopicActivity extends Activity implements OnClickListener, EasyPermissions.PermissionCallbacks {
48
    private static final String TAG = "TopicActivity";
43
    private ImageView mTopicBack;
49
    private ImageView mTopicBack;
44
    private RelativeLayout mTopicInputLl;
50
    private RelativeLayout mTopicInputLl;
45
    private View mTopicInputStart;
51
    private View mTopicInputStart;
60
        setContentView(R.layout.activity_topic);
66
        setContentView(R.layout.activity_topic);
61
        BarColorUtil.initStatusBarColor(TopicActivity.this);
67
        BarColorUtil.initStatusBarColor(TopicActivity.this);
62
        initView();
68
        initView();
63
        recommentTopic();
69
        recommendTopic();
64
    }
70
    }
65
71
66
    private void initView() {
72
    private void initView() {
83
        topicAdapter.setRecyclerItemTypeClickListener(new RecyclerItemTypeClickListener() {
89
        topicAdapter.setRecyclerItemTypeClickListener(new RecyclerItemTypeClickListener() {
84
            @Override
90
            @Override
85
            public void onItemClickListener(int position, int index) {
91
            public void onItemClickListener(int position, int index) {
86
                TalkRecommendBean item = topicAdapter.getItem(position);
92
                ChatRecommendBean item = topicAdapter.getItem(position);
87
                Intent intent = new Intent();
93
                Intent intent = new Intent();
88
                intent.putExtra("topic", item);
94
                intent.putExtra("topic", item);
89
                setResult(-100, intent);
95
                setResult(-100, intent);
105
            @Override
111
            @Override
106
            public void afterTextChanged(Editable editable) {
112
            public void afterTextChanged(Editable editable) {
107
                if (editable.length() == 0) {
113
                if (editable.length() == 0) {
108
                    recommentTopic();
114
                    recommendTopic();
109
                } else {
115
                } else {
110
                    searchTopic(editable.toString());
116
                    searchTopic(editable.toString());
111
117
115
        });
121
        });
116
    }
122
    }
117
123
118
    private void recommentTopic() {
119
        String url = MainApplication.urlNew + "/topic/info/list.do";
120
//        Log.e(TAG, "getQAData: "+url );
124
    private void recommendTopic() {
125
        String url = MainApplication.urlNew + "/topic/list.do";
121
        Map<String, String> map = new HashMap<>();
126
        Map<String, String> map = new HashMap<>();
122
        map.put("selected", "1");
127
        map.put("selected", "1");
123
        if (MainApplication.isLogin()) {
124
            map.put("user_id", MainApplication.userId);
125
        }
128
        CommonParams.addCommonParams(map);
129
126
        OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
130
        OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
127
            @Override
131
            @Override
128
            public void onError(Call call, Exception e) {
132
            public void onError(Call call, Exception e) {
129
                mTopicRetryLl.setVisibility(View.VISIBLE);
133
                mTopicRetryLl.setVisibility(View.VISIBLE);
130
                mTopicNotCon.setVisibility(View.GONE);
134
                mTopicNotCon.setVisibility(View.GONE);
131
                mTopicRv.setVisibility(View.GONE);
135
                mTopicRv.setVisibility(View.GONE);
136
                ToastUtil.showToast(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT);
132
            }
137
            }
133
138
134
            @Override
139
            @Override
135
            public void onResponse(String response) {
140
            public void onResponse(String response) {
136
                String rtnCode = JsonUtils.getKeyResult(response, "code");
137
                if ("1000".equals(rtnCode)) {
138
                    String rtnMsg = JsonUtils.getKeyResult(response, "data");
139
                    List<TalkRecommendBean> qadata = JsonUtils.parseToObjectList(rtnMsg, TalkRecommendBean.class);
141
                String code = JsonUtils.getKeyResult(response, "code");
142
                String desc = JsonUtils.getKeyResult(response, "desc");
143
                Log.d(TAG, "onResponse: " + response);
144
                if ("1000".equals(code)) {
145
                    String data = JsonUtils.getKeyResult(response, "data");
146
                    List<ChatRecommendBean> beans = JsonUtils.parseToObjectList(data, ChatRecommendBean.class);
140
                    mTopicRetryLl.setVisibility(View.GONE);
147
                    mTopicRetryLl.setVisibility(View.GONE);
141
                    if (qadata.size() == 0) {
148
                    if (beans.size() == 0) {
142
                        mTopicNotCon.setVisibility(View.VISIBLE);
149
                        mTopicNotCon.setVisibility(View.VISIBLE);
143
                        mTopicRv.setVisibility(View.GONE);
150
                        mTopicRv.setVisibility(View.GONE);
144
                    } else {
151
                    } else {
145
                        mTopicNotCon.setVisibility(View.GONE);
152
                        mTopicNotCon.setVisibility(View.GONE);
146
                        mTopicRv.setVisibility(View.VISIBLE);
153
                        mTopicRv.setVisibility(View.VISIBLE);
147
                        topicAdapter.addData(TopicAdapter.RECOMENT_TITLE, qadata);
154
                        topicAdapter.addData(TopicAdapter.RECOMMEND_ITEM, beans);
148
                    }
155
                    }
156
                } else {
157
                    ToastUtil.showToast(getApplicationContext(), desc, Toast.LENGTH_SHORT);
149
                }
158
                }
150
            }
159
            }
151
        });
160
        });
153
162
154
163
155
    private void searchTopic(CharSequence charSequence) {
164
    private void searchTopic(CharSequence charSequence) {
156
157
        String url = MainApplication.urlNew + "/topic/search.do";
165
        String url = MainApplication.urlNew + "/topic/search.do";
158
        Map<String, String> map = new HashMap<>();
166
        Map<String, String> map = new HashMap<>();
159
        map.put("key", charSequence.toString());
167
        map.put("key", charSequence.toString());
168
        CommonParams.addCommonParams(map);
169
        Log.d(TAG, "searchTopic: " + map);
170
        OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
171
            @Override
172
            public void onError(Call call, Exception e) {
173
                mTopicRetryLl.setVisibility(View.VISIBLE);
174
                mTopicNotCon.setVisibility(View.GONE);
175
                mTopicRv.setVisibility(View.GONE);
176
                ToastUtil.showToast(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT);
177
            }
160
178
161
        OkHttpUtils
162
                .get()
163
                .params(map)
164
                .url(url)
165
                .build()
166
                .connTimeOut(6000)
167
                .readTimeOut(6000)
168
                .execute(new StringCallback() {
169
                    @Override
170
                    public void onError(Call call, Exception e) {
171
                        mTopicRetryLl.setVisibility(View.VISIBLE);
172
                        mTopicNotCon.setVisibility(View.GONE);
179
            @Override
180
            public void onResponse(String response) {
181
                Log.d(TAG, "onResponse: " + response);
182
                String code = JsonUtils.getKeyResult(response, "code");
183
                String desc = JsonUtils.getKeyResult(response, "desc");
184
                if ("1000".equals(code)) {
185
                    String data = JsonUtils.getKeyResult(response, "data");
186
                    List<ChatRecommendBean> beans = JsonUtils.parseToObjectList(data, ChatRecommendBean.class);
187
                    mTopicRetryLl.setVisibility(View.GONE);
188
                    if (beans.size() == 0) {
189
                        mTopicNotCon.setVisibility(View.VISIBLE);
173
                        mTopicRv.setVisibility(View.GONE);
190
                        mTopicRv.setVisibility(View.GONE);
191
                    } else {
192
                        mTopicNotCon.setVisibility(View.GONE);
193
                        mTopicRv.setVisibility(View.VISIBLE);
174
                    }
194
                    }
175
176
                    @Override
177
                    public void onResponse(String response) {
178
                        String rtnCode = JsonUtils.getKeyResult(response, "code");
179
                        if ("1000".equals(rtnCode)) {
180
                            String rtnMsg = JsonUtils.getKeyResult(response, "data");
181
                            List<TalkRecommendBean> qadata = JsonUtils
182
                                    .parseToObjectList(rtnMsg, TalkRecommendBean.class);
183
                            mTopicRetryLl.setVisibility(View.GONE);
184
                            if (qadata.size() == 0) {
185
                                mTopicNotCon.setVisibility(View.VISIBLE);
186
                                mTopicRv.setVisibility(View.GONE);
187
                            } else {
188
                                mTopicNotCon.setVisibility(View.GONE);
189
                                mTopicRv.setVisibility(View.VISIBLE);
190
                            }
191
192
                            topicAdapter.addData(TopicAdapter.RECOMENT_ITEM, qadata);
193
                        }
194
                    }
195
                });
195
                    topicAdapter.addData(TopicAdapter.SEARCH_ITEM, beans);
196
                } else {
197
                    ToastUtil.showToast(getApplicationContext(), desc, Toast.LENGTH_SHORT);
198
                }
199
            }
200
        });
196
    }
201
    }
197
202
198
203

+ 33 - 34
app/src/main/java/com/electric/chargingpile/adapter/ChatRecommendAdapter.java

134
        simpleViewHolder.index = position - 1;
134
        simpleViewHolder.index = position - 1;
135
        RelativeLayout.LayoutParams bgParams = (RelativeLayout.LayoutParams) simpleViewHolder.info_bg_icon.getLayoutParams();
135
        RelativeLayout.LayoutParams bgParams = (RelativeLayout.LayoutParams) simpleViewHolder.info_bg_icon.getLayoutParams();
136
        bgParams.width = talkItemWidth;
136
        bgParams.width = talkItemWidth;
137
137
        if (chatRecommendBean.targetType == ChatRecommendBean.TARGET_TYPE_IMAGE_TOPIC) { // 话题
138
        if (chatRecommendBean.targetType == ChatRecommendBean.TARGET_TYPE_IMAGE_TOPIC) { // 话题
138
            bgParams.height = (int) (talkItemWidth * 365f / 480f);
139
            bgParams.height = (int) (talkItemWidth * 365f / 480f);
139
            simpleViewHolder.bottom_view.setVisibility(View.GONE);
140
            simpleViewHolder.bottom_view.setVisibility(View.GONE);
158
                } else {
159
                } else {
159
                    bgParams.height = (int) ((float) talkItemWidth * chatRecommendBean.coverImgH / chatRecommendBean.coverImgW);
160
                    bgParams.height = (int) ((float) talkItemWidth * chatRecommendBean.coverImgH / chatRecommendBean.coverImgW);
160
                }
161
                }
162
            }
163
            simpleViewHolder.bottom_view.setVisibility(View.VISIBLE);
164
            simpleViewHolder.topic_back.setVisibility(View.GONE);
165
            simpleViewHolder.recycler_view_title.setVisibility(View.VISIBLE);
166
            simpleViewHolder.topic_title.setVisibility(View.GONE);
167
            // 红心点赞
168
            if (chatRecommendBean.likeFlg == 0) {
169
                simpleViewHolder.recycler_view_zan_icon.setBackgroundResource(R.drawable.app_talk_main_list_zan_icon);
170
            } else {
171
                simpleViewHolder.recycler_view_zan_icon.setBackgroundResource(R.drawable.app_talk_main_list_zan_red_icon);
172
            }
173
            // 标题设置
174
            if (TextUtils.isEmpty(chatRecommendBean.title)) {
175
                simpleViewHolder.recycler_view_title.setText("分享内容");
176
            } else {
177
                simpleViewHolder.recycler_view_title.setText(chatRecommendBean.title);
178
            }
161
179
162
                simpleViewHolder.bottom_view.setVisibility(View.VISIBLE);
163
                simpleViewHolder.topic_back.setVisibility(View.GONE);
164
                simpleViewHolder.recycler_view_title.setVisibility(View.VISIBLE);
165
                simpleViewHolder.topic_title.setVisibility(View.GONE);
166
                // 红心点赞
167
                if (chatRecommendBean.likeFlg == 0) {
168
                    simpleViewHolder.recycler_view_zan_icon.setBackgroundResource(R.drawable.app_talk_main_list_zan_icon);
169
                } else {
170
                    simpleViewHolder.recycler_view_zan_icon.setBackgroundResource(R.drawable.app_talk_main_list_zan_red_icon);
171
                }
172
                // 标题设置
173
                if (TextUtils.isEmpty(chatRecommendBean.title)) {
174
                    simpleViewHolder.recycler_view_title.setText("分享内容");
175
                } else {
176
                    simpleViewHolder.recycler_view_title.setText(chatRecommendBean.title);
177
                }
178
179
                if (chatRecommendBean.likeNums == 0) {
180
                    simpleViewHolder.recycler_view_zan.setVisibility(View.GONE);
181
                    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) simpleViewHolder.recycler_view_zan_icon.getLayoutParams();
182
                    params.rightMargin = DensityUtil.dip2px(context, 10);
183
                    simpleViewHolder.recycler_view_zan_icon.setLayoutParams(params);
184
                } else if (chatRecommendBean.likeNums > 999) {
185
                    simpleViewHolder.recycler_view_zan.setVisibility(View.VISIBLE);
186
                    simpleViewHolder.recycler_view_zan.setText("999+");
187
                } else {
188
                    simpleViewHolder.recycler_view_zan.setVisibility(View.VISIBLE);
189
                    simpleViewHolder.recycler_view_zan.setText(chatRecommendBean.likeNums + "");
190
                }
191
192
                simpleViewHolder.user_avater_name.setText(chatRecommendBean.nickName);
180
            if (chatRecommendBean.likeNums == 0) {
181
                simpleViewHolder.recycler_view_zan.setVisibility(View.GONE);
182
                LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) simpleViewHolder.recycler_view_zan_icon.getLayoutParams();
183
                params.rightMargin = DensityUtil.dip2px(context, 10);
184
                simpleViewHolder.recycler_view_zan_icon.setLayoutParams(params);
185
            } else if (chatRecommendBean.likeNums > 999) {
186
                simpleViewHolder.recycler_view_zan.setVisibility(View.VISIBLE);
187
                simpleViewHolder.recycler_view_zan.setText("999+");
188
            } else {
189
                simpleViewHolder.recycler_view_zan.setVisibility(View.VISIBLE);
190
                simpleViewHolder.recycler_view_zan.setText(chatRecommendBean.likeNums + "");
193
            }
191
            }
192
193
            simpleViewHolder.user_avater_name.setText(chatRecommendBean.nickName);
194
        }
194
        }
195
195
196
        if (chatRecommendBean.isTop == 0) {
196
        if (chatRecommendBean.isTop == 0) {
207
        }
207
        }
208
        simpleViewHolder.info_bg_icon.setLayoutParams(bgParams);
208
        simpleViewHolder.info_bg_icon.setLayoutParams(bgParams);
209
209
210
211
        ImageDisplayUtils.dispalyImg(context, chatRecommendBean.coverImgUrl, simpleViewHolder.info_bg_icon);
210
        ImageDisplayUtils.dispalyImg(context, chatRecommendBean.coverImgUrl, simpleViewHolder.info_bg_icon);
212
211
213
        if (TextUtils.isEmpty(chatRecommendBean.headImgUrl)) {
212
        if (TextUtils.isEmpty(chatRecommendBean.headImgUrl)) {
330
                    String desc = JsonUtils.getKeyResult(response, "desc");
329
                    String desc = JsonUtils.getKeyResult(response, "desc");
331
                    if ("1000".equals(rtnCode)) {
330
                    if ("1000".equals(rtnCode)) {
332
                        recycler_view_zan_icon.setBackgroundResource(R.drawable.app_talk_main_list_zan_red_icon);
331
                        recycler_view_zan_icon.setBackgroundResource(R.drawable.app_talk_main_list_zan_red_icon);
333
                        bean.likeNums ++;
332
                        bean.likeNums++;
334
333
335
                        if (bean.likeNums > 999) {
334
                        if (bean.likeNums > 999) {
336
                            recycler_view_zan.setText("999+");
335
                            recycler_view_zan.setText("999+");
338
                            recycler_view_zan.setText(bean.likeNums + "");
337
                            recycler_view_zan.setText(bean.likeNums + "");
339
                        }
338
                        }
340
                        recycler_view_zan.setVisibility(View.VISIBLE);
339
                        recycler_view_zan.setVisibility(View.VISIBLE);
341
                        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)recycler_view_zan_icon.getLayoutParams();
340
                        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) recycler_view_zan_icon.getLayoutParams();
342
                        params.rightMargin = DensityUtil.dip2px(context, 5);
341
                        params.rightMargin = DensityUtil.dip2px(context, 5);
343
                        recycler_view_zan_icon.setLayoutParams(params);
342
                        recycler_view_zan_icon.setLayoutParams(params);
344
                    } else {
343
                    } else {

+ 14 - 20
app/src/main/java/com/electric/chargingpile/adapter/TopicAdapter.java

5
import android.support.v7.widget.RecyclerView;
5
import android.support.v7.widget.RecyclerView;
6
import android.text.Html;
6
import android.text.Html;
7
import android.text.TextUtils;
7
import android.text.TextUtils;
8
import android.util.Log;
8
import android.view.LayoutInflater;
9
import android.view.LayoutInflater;
9
import android.view.View;
10
import android.view.View;
10
import android.view.View.OnClickListener;
11
import android.view.View.OnClickListener;
17
import com.bumptech.glide.Glide;
18
import com.bumptech.glide.Glide;
18
import com.bumptech.glide.request.RequestOptions;
19
import com.bumptech.glide.request.RequestOptions;
19
import com.electric.chargingpile.R;
20
import com.electric.chargingpile.R;
21
import com.electric.chargingpile.data.ChatRecommendBean;
20
import com.electric.chargingpile.data.TalkRecommendBean;
22
import com.electric.chargingpile.data.TalkRecommendBean;
21
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
23
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
22
24
24
import java.util.List;
26
import java.util.List;
25
27
26
public class TopicAdapter extends RecyclerView.Adapter<TopicAdapter.ItemViewHolder> {
28
public class TopicAdapter extends RecyclerView.Adapter<TopicAdapter.ItemViewHolder> {
27
    private ArrayList<TalkRecommendBean> dataList = new ArrayList<>();
29
    private static final String TAG = "TopicAdapter";
30
    private ArrayList<ChatRecommendBean> dataList = new ArrayList<>();
28
    private Context mContext;
31
    private Context mContext;
29
    private int type = 0;
32
    private int type = 0;
30
    public final static int RECOMENT_TITLE = 0;
31
    public final static int RECOMENT_ITEM = 1;
33
    public final static int RECOMMEND_ITEM = 0; // 推荐话题列表
34
    public final static int SEARCH_ITEM = 1;  // 搜索话题列表
32
35
33
    public TopicAdapter(Context c) {
36
    public TopicAdapter(Context c) {
34
        mContext = c;
37
        mContext = c;
44
    @Override
47
    @Override
45
    public void onBindViewHolder(ItemViewHolder itemViewHolder, int position) {
48
    public void onBindViewHolder(ItemViewHolder itemViewHolder, int position) {
46
        if (position == 0) {
49
        if (position == 0) {
47
            if (type == RECOMENT_TITLE) {
50
            if (type == RECOMMEND_ITEM) {
48
                itemViewHolder.mItemTopicLayout.setVisibility(View.VISIBLE);
51
                itemViewHolder.mItemTopicLayout.setVisibility(View.VISIBLE);
49
            } else {
52
            } else {
50
                itemViewHolder.mItemTopicLayout.setVisibility(View.GONE);
53
                itemViewHolder.mItemTopicLayout.setVisibility(View.GONE);
53
            itemViewHolder.mItemTopicLayout.setVisibility(View.GONE);
56
            itemViewHolder.mItemTopicLayout.setVisibility(View.GONE);
54
        }
57
        }
55
58
56
        TalkRecommendBean item = getItem(position);
57
        if (type == RECOMENT_ITEM) {
58
            itemViewHolder.mItemTopicName.setText(Html.fromHtml(item.name));
59
        } else {
60
            itemViewHolder.mItemTopicName.setText(item.topicName);
61
        }
62
63
        Glide
64
                .with(itemViewHolder.mItemTopicImg)
65
                .load(TextUtils.isEmpty(item.coverImgUrl) ? "" : item.coverImgUrl)
66
                .apply(requestOptions)
67
                .into(itemViewHolder.mItemTopicImg);
59
        ChatRecommendBean item = getItem(position);
60
        itemViewHolder.mItemTopicName.setText(Html.fromHtml(item.name));
61
        Glide.with(itemViewHolder.mItemTopicImg).load(TextUtils.isEmpty(item.coverImgUrl) ? "" : item.coverImgUrl).apply(requestOptions).into(itemViewHolder.mItemTopicImg);
68
    }
62
    }
69
63
70
    RequestOptions requestOptions = new RequestOptions().centerCrop();
64
    RequestOptions requestOptions = new RequestOptions().centerCrop();
71
65
72
    public TalkRecommendBean getItem(int position) {
66
    public ChatRecommendBean getItem(int position) {
73
        return dataList.get(position);
67
        return dataList.get(position);
74
    }
68
    }
75
69
80
    }
74
    }
81
75
82
76
83
    public void addData(int i, List<TalkRecommendBean> qadata) {
77
    public void addData(int i, List<ChatRecommendBean> beans) {
84
        type = i;
78
        type = i;
85
        dataList.clear();
79
        dataList.clear();
86
        if (qadata != null && qadata.size() > 0) {
87
            dataList.addAll(qadata);
80
        if (beans != null && beans.size() > 0) {
81
            dataList.addAll(beans);
88
            notifyDataSetChanged();
82
            notifyDataSetChanged();
89
        }
83
        }
90
    }
84
    }

+ 3 - 2
app/src/main/java/com/electric/chargingpile/application/MainApplication.java

73
    public static String firstPoint = "";
73
    public static String firstPoint = "";
74
    public static Boolean firstSsyd;
74
    public static Boolean firstSsyd;
75
    public static String password = "";
75
    public static String password = "";
76
//    public static String url = "http://59.110.68.162";// 充电桩测试环境
76
    public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
77
    public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
77
    public static String urlNew = "http://123.56.67.7:83/api/0200";// 一电测试环境
78
//    public static String urlNew = "https://api.touchev.com:83/api/0200";// 一电正式环境
78
//    public static String urlNew = "http://123.56.67.7:83/api/0200";// 一电测试环境
79
    public static String urlNew = "https://api.touchev.com:83/api/0200";// 一电正式环境
79
    public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
80
    public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
80
    //	public static String url = "https://cdz.d1ev.com";
81
    //	public static String url = "https://cdz.d1ev.com";
81
    public static String build_flag = "0";
82
    public static String build_flag = "0";

+ 30 - 0
app/src/main/java/com/electric/chargingpile/data/ChatRecommendBean.java

33
    public int likeNums;    // 点赞总数
33
    public int likeNums;    // 点赞总数
34
    public int coverImgW;   // 图片宽度
34
    public int coverImgW;   // 图片宽度
35
    public int coverImgH;   // 图片高度
35
    public int coverImgH;   // 图片高度
36
37
    @Override
38
    public String toString() {
39
        return "ChatRecommendBean{" +
40
                "targetId=" + targetId +
41
                ", addUserId=" + addUserId +
42
                ", targetType=" + targetType +
43
                ", title='" + title + '\'' +
44
                ", name='" + name + '\'' +
45
                ", addTime=" + addTime +
46
                ", topicId=" + topicId +
47
                ", joinNums=" + joinNums +
48
                ", visitNums=" + visitNums +
49
                ", coverImgUrl='" + coverImgUrl + '\'' +
50
                ", imgUrls=" + imgUrls +
51
                ", headImgUrl='" + headImgUrl + '\'' +
52
                ", nickName='" + nickName + '\'' +
53
                ", topicName='" + topicName + '\'' +
54
                ", content='" + content + '\'' +
55
                ", shareUrl='" + shareUrl + '\'' +
56
                ", source=" + source +
57
                ", videoUrl='" + videoUrl + '\'' +
58
                ", commentNums=" + commentNums +
59
                ", isTop=" + isTop +
60
                ", likeFlg=" + likeFlg +
61
                ", likeNums=" + likeNums +
62
                ", coverImgW=" + coverImgW +
63
                ", coverImgH=" + coverImgH +
64
                '}';
65
    }
36
}
66
}

+ 4 - 2
app/src/main/java/com/electric/chargingpile/fragment/ChatRecommendFragment.java

196
                } else if ("8010".equals(code)) {
196
                } else if ("8010".equals(code)) {
197
                    startActivity(new Intent(getContext(), LoginActivity.class));
197
                    startActivity(new Intent(getContext(), LoginActivity.class));
198
                    ToastUtil.showToast(getContext(), desc, Toast.LENGTH_LONG);
198
                    ToastUtil.showToast(getContext(), desc, Toast.LENGTH_LONG);
199
                } else  {
199
                } else {
200
                    ToastUtil.showToast(getContext(), desc, Toast.LENGTH_SHORT);
200
                    ToastUtil.showToast(getContext(), desc, Toast.LENGTH_SHORT);
201
                }
201
                }
202
            }
202
            }
216
        String url = MainApplication.urlNew + "/topic/list.do";
216
        String url = MainApplication.urlNew + "/topic/list.do";
217
217
218
        Map<String, String> map = new HashMap<>();
218
        Map<String, String> map = new HashMap<>();
219
        map.put("selected", "1");
219
        map.put("selected", "0");
220
        CommonParams.addCommonParams(map);
220
        CommonParams.addCommonParams(map);
221
221
222
        OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
222
        OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
273
                } else {
273
                } else {
274
                    refreshView.stopLoadMore();
274
                    refreshView.stopLoadMore();
275
                }
275
                }
276
//                Log.d(TAG, "onResponse: " + response);
277
276
                String code = JsonUtils.getKeyResult(response, "code");
278
                String code = JsonUtils.getKeyResult(response, "code");
277
                String desc = JsonUtils.getKeyResult(response, "desc");
279
                String desc = JsonUtils.getKeyResult(response, "desc");
278
                if ("1000".equals(code)) {
280
                if ("1000".equals(code)) {

+ 1 - 1
app/src/main/res/layout/item_topic.xml

49
            android:layout_toEndOf="@+id/item_topic_img"
49
            android:layout_toEndOf="@+id/item_topic_img"
50
            android:ellipsize="end"
50
            android:ellipsize="end"
51
            android:maxLines="2"
51
            android:maxLines="2"
52
            android:text="adadasd"
52
            android:text=""
53
            android:textColor="#444444"
53
            android:textColor="#444444"
54
            android:textSize="14sp" />
54
            android:textSize="14sp" />
55
55