hy 2 ans auparavant
Parent
commit
c1341c8461

+ 158 - 12
app/src/main/java/com/electric/chargingpile/activity/CommentVideoDetailActivity.java

@ -4,6 +4,11 @@ import android.content.Context;
4 4
import android.content.Intent;
5 5
import android.os.Bundle;
6 6
import android.util.Log;
7
import android.view.View;
8
import android.view.WindowManager;
9
import android.widget.ImageView;
10
import android.widget.ProgressBar;
11
import android.widget.Toast;
7 12
8 13
import androidx.annotation.Nullable;
9 14
import androidx.appcompat.app.AppCompatActivity;
@ -11,10 +16,14 @@ import androidx.appcompat.app.AppCompatActivity;
11 16
import com.electric.chargingpile.R;
12 17
import com.electric.chargingpile.application.MainApplication;
13 18
import com.electric.chargingpile.data.SingleCommentBean;
19
import com.electric.chargingpile.manager.ProfileManager;
20
import com.electric.chargingpile.util.ImageDisplayUtils;
14 21
import com.electric.chargingpile.util.JsonUtils;
15 22
import com.electric.chargingpile.util.LoadingDialog;
16
import com.electric.chargingpile.video.VideoPlayer;
23
import com.electric.chargingpile.util.ToastUtil;
24
import com.electric.chargingpile.video.DetailVideo;
17 25
import com.google.gson.Gson;
26
import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack;
18 27
import com.shuyu.gsyvideoplayer.video.base.GSYVideoView;
19 28
import com.zhy.http.okhttp.OkHttpUtils;
20 29
import com.zhy.http.okhttp.callback.StringCallback;
@ -26,7 +35,9 @@ import okhttp3.Call;
26 35
27 36
public class CommentVideoDetailActivity extends AppCompatActivity {
28 37
29
    private VideoPlayer mVideoPlayer;
38
    private DetailVideo mVideoPlayer;
39
    private ImageView mPlayIcon,mBackIcon;
40
    private ProgressBar mProgressBar;
30 41
    private Gson mGson=new Gson();
31 42
    private String pid;
32 43
    private LoadingDialog mLoadingDialog = null ;
@ -34,6 +45,8 @@ public class CommentVideoDetailActivity extends AppCompatActivity {
34 45
    protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
35 46
        super.onCreate(savedInstanceState);
36 47
        setContentView(R.layout.activity_video_detail);
48
        //透明状态栏
49
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
37 50
        initView();
38 51
        pid = getIntent().getStringExtra("id");
39 52
        if (null != pid && !pid.equals("")) {
@ -48,7 +61,13 @@ public class CommentVideoDetailActivity extends AppCompatActivity {
48 61
        mLoadingDialog.setCanceledOnTouchOutside(false);
49 62
50 63
        mVideoPlayer = findViewById(R.id.videoPlayer);
64
        mBackIcon = findViewById(R.id.backIcon);
65
        mPlayIcon = findViewById(R.id.playIcon);
66
        mProgressBar = findViewById(R.id.progressBar);
51 67
68
        mBackIcon.setOnClickListener(v->{
69
            finish();
70
        });
52 71
    }
53 72
54 73
@ -76,13 +95,9 @@ public class CommentVideoDetailActivity extends AppCompatActivity {
76 95
                    try {
77 96
                        JSONObject jsonObj = new JSONObject(response);
78 97
                        String commentData = jsonObj.getString("data");
79
                        Log.e("commentBean==", commentData);
80
                        JSONObject obj = new JSONObject(commentData);
98
81 99
                        SingleCommentBean singleCommentBean = mGson.fromJson(commentData, SingleCommentBean.class);
82
                        String fileUrl = singleCommentBean.getFileUrl();
83
                        String url = MainApplication.CDN + fileUrl;
84
                        mVideoPlayer.setUp(url, true, "");
85
                        mVideoPlayer.startPlayLogic();
100
                        initPlayer(singleCommentBean);
86 101
87 102
                    } catch (JSONException e) {
88 103
                        e.printStackTrace();
@ -95,23 +110,154 @@ public class CommentVideoDetailActivity extends AppCompatActivity {
95 110
        });
96 111
    }
97 112
98
    @Override
99
    protected void onResume() {
100
        super.onResume();
101
        playOrPause();
113
    private void initPlayer(SingleCommentBean bean) {
114
115
        String fileUrl = bean.getFileUrl();
116
        String url = MainApplication.CDN + fileUrl;
117
118
        setVideoAllCallBack();
119
        ImageView thumbImageView = new ImageView(this);
120
        thumbImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
121
        ImageDisplayUtils.dispalyImg(this, url, thumbImageView);
122
        mVideoPlayer.setThumbImageView(thumbImageView);
123
        mVideoPlayer.setLooping(true);
124
        mVideoPlayer.setGSYVideoProgressListener((progress, secProgress, currentPosition, duration) -> mProgressBar.setProgress(Math.toIntExact(progress)));
125
126
        mVideoPlayer.setUp(url, true, "");
127
        mVideoPlayer.startPlayLogic();
128
102 129
    }
130
131
    private void setVideoAllCallBack() {
132
        mVideoPlayer.setVideoAllCallBack(new VideoAllCallBack() {
133
            @Override
134
            public void onAutoComplete(String s, Object... objects) {
135
                if (ProfileManager.getInstance().getMakeSureNetworkForView(CommentVideoDetailActivity.this)) {
136
                    mVideoPlayer.startPlayLogic();
137
                }
138
            }
139
140
            @Override
141
            public void onComplete(String url, Object... objects) {
142
143
            }
144
145
            @Override
146
            public void onClickStartError(String s, Object... objects) {
147
                mPlayIcon.setVisibility(View.VISIBLE);
148
                ToastUtil.showToast(CommentVideoDetailActivity.this, s, Toast.LENGTH_SHORT);
149
            }
150
151
            @Override
152
            public void onPlayError(String s, Object... objects) {
153
                mPlayIcon.setVisibility(View.VISIBLE);
154
                ToastUtil.showToast(CommentVideoDetailActivity.this, s, Toast.LENGTH_SHORT);
155
            }
156
157
            @Override
158
            public void onStartPrepared(String s, Object... objects) {
159
            }
160
161
            @Override
162
            public void onPrepared(String s, Object... objects) {
163
            }
164
165
            @Override
166
            public void onClickResume(String s, Object... objects) {
167
            }
168
169
            @Override
170
            public void onClickBlank(String s, Object... objects) {
171
            }
172
173
            @Override
174
            public void onClickBlankFullscreen(String s, Object... objects) {
175
            }
176
177
            @Override
178
            public void onClickStartIcon(String s, Object... objects) {
179
            }
180
181
            @Override
182
            public void onClickStop(String s, Object... objects) {
183
184
            }
185
186
            @Override
187
            public void onClickStopFullscreen(String s, Object... objects) {
188
189
            }
190
191
            @Override
192
            public void onClickResumeFullscreen(String s, Object... objects) {
193
194
            }
195
196
            @Override
197
            public void onClickSeekbar(String s, Object... objects) {
198
199
            }
200
201
            @Override
202
            public void onClickSeekbarFullscreen(String s, Object... objects) {
203
            }
204
205
            @Override
206
            public void onEnterFullscreen(String s, Object... objects) {
207
            }
208
209
            @Override
210
            public void onQuitFullscreen(String s, Object... objects) {
211
            }
212
213
            @Override
214
            public void onQuitSmallWidget(String s, Object... objects) {
215
            }
216
217
            @Override
218
            public void onEnterSmallWidget(String s, Object... objects) {
219
            }
220
221
            @Override
222
            public void onTouchScreenSeekVolume(String s, Object... objects) {
223
            }
224
225
            @Override
226
            public void onTouchScreenSeekPosition(String s, Object... objects) {
227
            }
228
229
            @Override
230
            public void onTouchScreenSeekLight(String s, Object... objects) {
231
            }
232
233
            @Override
234
            public void onClickStartThumb(String s, Object... objects) {
235
            }
236
        });
237
    }
238
239
103 240
    private void playOrPause() {
104 241
        int currentStatue = mVideoPlayer.getCurrentState();
105 242
        if (currentStatue == GSYVideoView.CURRENT_STATE_PLAYING) {
243
            mPlayIcon.setVisibility(View.VISIBLE);
106 244
            mVideoPlayer.onVideoPause();
107 245
        } else if (currentStatue == GSYVideoView.CURRENT_STATE_PAUSE) {
246
            mPlayIcon.setVisibility(View.GONE);
108 247
            mVideoPlayer.onVideoResume(false);
109 248
        } else {
249
            mPlayIcon.setVisibility(View.GONE);
110 250
            mVideoPlayer.startPlayLogic();
111 251
        }
112 252
    }
113 253
114 254
    @Override
255
    protected void onResume() {
256
        super.onResume();
257
        playOrPause();
258
    }
259
260
    @Override
115 261
    protected void onPause() {
116 262
        super.onPause();
117 263
        playOrPause();

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

@ -99,7 +99,7 @@ public class SelectTopicActivity  extends AppCompatActivity {
99 99
                        String data = JsonUtils.getKeyResult(response, "data");
100 100
                        ArrayList<TopicBean> list = mGson.fromJson(data, new TypeToken<ArrayList<TopicBean>>() {
101 101
                        }.getType());
102
                        if (list!=null && list.size()>0){
102
                        if (list != null && list.size()>0){
103 103
                            mAdapter.setDatas(list);
104 104
                            mRecyclerView.setVisibility(View.VISIBLE);
105 105
                            noDataText.setVisibility(View.GONE);

+ 1 - 1
app/src/main/java/com/electric/chargingpile/adapter/NewPingLunAdapter.java

@ -158,7 +158,7 @@ public class NewPingLunAdapter extends BaseAdapter {
158 158
            try {
159 159
                String is_play = TextUtils.isEmpty( datas.get(position).getString("is_play"))?"": datas.get(position).getString("is_play")  ; //0 审核未通过 item隐藏,1 审核通过,item显示
160 160
161
                if (TextUtils.isEmpty(is_play) && is_play.equals("1")){
161
                if (!TextUtils.isEmpty(is_play) && is_play.equals("1")){
162 162
                    convertView.setVisibility(View.VISIBLE);
163 163
                }else{
164 164
                    convertView.setVisibility(View.GONE);

+ 1 - 1
app/src/main/java/com/electric/chargingpile/adapter/ZhanCommentsAapter.java

@ -435,7 +435,7 @@ public class ZhanCommentsAapter extends BaseAdapter {
435 435
436 436
                String is_play = TextUtils.isEmpty( datas.get(position).getString("is_play"))?"": datas.get(position).getString("is_play")  ; //0 审核未通过 item隐藏,1 审核通过,item显示
437 437
438
                if (TextUtils.isEmpty(is_play) && is_play.equals("1")){
438
                if (!TextUtils.isEmpty(is_play) && is_play.equals("1")){
439 439
                    convertView.setVisibility(View.VISIBLE);
440 440
                }else{
441 441
                    convertView.setVisibility(View.GONE);

+ 6 - 1
app/src/main/java/com/electric/chargingpile/fragment/NewMyMessageFragment.java

@ -6,6 +6,8 @@ import android.content.SharedPreferences;
6 6
import android.os.Bundle;
7 7
import android.os.Handler;
8 8
import androidx.fragment.app.Fragment;
9
10
import android.text.TextUtils;
9 11
import android.util.Log;
10 12
import android.view.LayoutInflater;
11 13
import android.view.View;
@ -133,7 +135,10 @@ public class NewMyMessageFragment extends Fragment {
133 135
                                for (int j = 0; j < jsonArray.length(); j++) {
134 136
                                    JSONObject jsonObject4 = (JSONObject) jsonArray
135 137
                                            .opt(j);
136
                                    datas.add(jsonObject4);
138
                                    String is_play = TextUtils.isEmpty( jsonObject4.getString("is_play"))?"": jsonObject4.getString("is_play")  ; //0 审核未通过 item隐藏,1 审核通过,item显示
139
                                    if (is_play.equals("1")){
140
                                        datas.add(jsonObject4);
141
                                    }
137 142
                                }
138 143
                                Log.d("comments_size", datas.size() + "");
139 144
                                if (datas.size() == 0) {

+ 10 - 2
app/src/main/java/com/electric/chargingpile/fragment/ZhanCommentFragment.java

@ -7,6 +7,7 @@ import android.os.Handler;
7 7
import androidx.fragment.app.Fragment;
8 8
import androidx.core.content.ContextCompat;
9 9
10
import android.text.TextUtils;
10 11
import android.util.Log;
11 12
import android.util.TypedValue;
12 13
import android.view.LayoutInflater;
@ -254,7 +255,10 @@ public class ZhanCommentFragment extends Fragment {
254 255
255 256
                                for (int j = 0; j < jsonArray.length(); j++) {
256 257
                                    JSONObject jsonObject = (JSONObject) jsonArray.opt(j);
257
                                    datas.add(jsonObject);
258
                                    String is_play = TextUtils.isEmpty( jsonObject.getString("is_play"))?"": jsonObject.getString("is_play")  ; //0 审核未通过 item隐藏,1 审核通过,item显示
259
                                    if (is_play.equals("1")){
260
                                        datas.add(jsonObject);
261
                                    }
258 262
                                }
259 263
//                                Log.e(TAG, "dealData: size=" + datas.size());
260 264
                                if (datas.size() == 0) {
@ -305,7 +309,11 @@ public class ZhanCommentFragment extends Fragment {
305 309
                                JSONArray jsonArray = new JSONArray(commentData);
306 310
                                for (int j = 0; j < jsonArray.length(); j++) {
307 311
                                    JSONObject jsonObject = (JSONObject) jsonArray.opt(j);
308
                                    datas.add(jsonObject);
312
                                    String is_play = TextUtils.isEmpty( jsonObject.getString("is_play"))?"": jsonObject.getString("is_play")  ; //0 审核未通过 item隐藏,1 审核通过,item显示
313
314
                                    if (is_play.equals("1")){
315
                                        datas.add(jsonObject);
316
                                    }
309 317
                                }
310 318
                                if (datas.size() == 0) {
311 319
                                    ll_tishi.setVisibility(View.VISIBLE);

+ 140 - 0
app/src/main/java/com/electric/chargingpile/video/DetailVideo.java

@ -0,0 +1,140 @@
1
package com.electric.chargingpile.video;
2
3
import android.content.Context;
4
import android.util.AttributeSet;
5
import android.view.MotionEvent;
6
7
import com.electric.chargingpile.R;
8
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
9
10
public class DetailVideo extends StandardGSYVideoPlayer {
11
12
13
14
    public DetailVideo(Context context) {
15
        this(context,null);
16
17
    }
18
19
    public DetailVideo(Context context, AttributeSet attrs) {
20
        super(context, attrs);
21
    }
22
23
    @Override
24
    protected void init(Context context) {
25
        super.init(context);
26
    }
27
    @Override
28
    public int getLayoutId() {
29
        return R.layout.layout_video_detail;
30
    }
31
32
33
    @Override
34
    protected void touchSurfaceMoveFullLogic(float absDeltaX, float absDeltaY) {
35
        super.touchSurfaceMoveFullLogic(absDeltaX, absDeltaY);
36
        //不给触摸快进,如果需要,屏蔽下方代码即可
37
        mChangePosition = false;
38
39
        //不给触摸音量,如果需要,屏蔽下方代码即可
40
        mChangeVolume = false;
41
42
        //不给触摸亮度,如果需要,屏蔽下方代码即可
43
        mBrightness = false;
44
    }
45
46
    @Override
47
    protected void touchDoubleUp(MotionEvent e) {
48
//        super.touchDoubleUp(e);
49
    }
50
51
/*
52
    @Override
53
    protected void touchDoubleUp() {
54
        // super.touchDoubleUp();
55
        // 不需要双击暂停
56
    }
57
*/
58
59
    @Override
60
    protected void changeUiToPreparingShow() {
61
        super.changeUiToPreparingShow();
62
        setViewShowState(mTopContainer, INVISIBLE);
63
        setViewShowState(mBottomContainer, INVISIBLE);
64
        setViewShowState(mLoadingProgressBar, INVISIBLE);
65
        setViewShowState(mStartButton, INVISIBLE);
66
    }
67
68
    @Override
69
    protected void changeUiToPlayingBufferingShow() {
70
        super.changeUiToPlayingBufferingShow();
71
        setViewShowState(mTopContainer, INVISIBLE);
72
        setViewShowState(mBottomContainer, INVISIBLE);
73
        setViewShowState(mLoadingProgressBar, INVISIBLE);
74
        setViewShowState(mStartButton, INVISIBLE);
75
    }
76
77
    @Override
78
    protected void changeUiToPlayingShow() {
79
        super.changeUiToPlayingShow();
80
        setViewShowState(mTopContainer, INVISIBLE);
81
        setViewShowState(mBottomContainer, INVISIBLE);
82
        setViewShowState(mLoadingProgressBar, INVISIBLE);
83
        setViewShowState(mStartButton, INVISIBLE);
84
85
    }
86
87
    @Override
88
    protected void changeUiToCompleteShow() {
89
        super.changeUiToCompleteShow();
90
        setViewShowState(mTopContainer, INVISIBLE);
91
        setViewShowState(mBottomContainer, INVISIBLE);
92
        setViewShowState(mLoadingProgressBar, INVISIBLE);
93
        setViewShowState(mStartButton, INVISIBLE);
94
    }
95
96
    @Override
97
    protected void changeUiToPauseShow() {
98
        super.changeUiToPauseShow();
99
        setViewShowState(mTopContainer, INVISIBLE);
100
        setViewShowState(mBottomContainer, INVISIBLE);
101
        setViewShowState(mLoadingProgressBar, INVISIBLE);
102
        setViewShowState(mStartButton, INVISIBLE);
103
    }
104
105
    @Override
106
    protected void changeUiToNormal() {
107
        super.changeUiToNormal();
108
        setViewShowState(mTopContainer, INVISIBLE);
109
        setViewShowState(mBottomContainer, INVISIBLE);
110
        setViewShowState(mLoadingProgressBar, INVISIBLE);
111
        setViewShowState(mStartButton, INVISIBLE);
112
    }
113
114
    @Override
115
    public void startAfterPrepared() {
116
        super.startAfterPrepared();
117
        setViewShowState(mTopContainer, INVISIBLE);
118
        setViewShowState(mBottomContainer, INVISIBLE);
119
        setViewShowState(mLoadingProgressBar, INVISIBLE);
120
        setViewShowState(mStartButton, INVISIBLE);
121
    }
122
123
    @Override
124
    protected void changeUiToPlayingBufferingClear() {
125
        super.changeUiToPlayingBufferingClear();
126
        setViewShowState(mTopContainer, INVISIBLE);
127
        setViewShowState(mBottomContainer, INVISIBLE);
128
        setViewShowState(mLoadingProgressBar, INVISIBLE);
129
        setViewShowState(mStartButton, INVISIBLE);
130
    }
131
132
    @Override
133
    protected void changeTextureViewShowType() {
134
        super.changeTextureViewShowType();
135
        setViewShowState(mTopContainer, INVISIBLE);
136
        setViewShowState(mBottomContainer, INVISIBLE);
137
        setViewShowState(mLoadingProgressBar, INVISIBLE);
138
        setViewShowState(mStartButton, INVISIBLE);
139
    }
140
}

+ 3 - 1
app/src/main/res/layout/activity_main_map.xml

@ -1487,6 +1487,7 @@
1487 1487
        android:orientation="vertical">
1488 1488
1489 1489
        <RelativeLayout
1490
            tools:visibility="visible"
1490 1491
            android:id="@+id/rl_charging_notice"
1491 1492
            android:layout_width="match_parent"
1492 1493
            android:layout_height="wrap_content"
@ -1605,6 +1606,7 @@
1605 1606
            </LinearLayout>
1606 1607
1607 1608
            <ImageView
1609
1608 1610
                android:id="@+id/second_hand_car"
1609 1611
                android:layout_width="80dp"
1610 1612
                android:layout_height="80dp"
@ -1615,7 +1617,7 @@
1615 1617
                android:layout_marginBottom="9dp"
1616 1618
                android:visibility="gone"
1617 1619
                tools:background="#ff0000"
1618
                tools:visibility="gone" />
1620
                tools:visibility="visible" />
1619 1621
1620 1622
            <ImageView
1621 1623
                android:id="@+id/iv_route"

+ 40 - 3
app/src/main/res/layout/activity_video_detail.xml

@ -3,14 +3,51 @@
3 3
    xmlns:app="http://schemas.android.com/apk/res-auto"
4 4
    xmlns:tools="http://schemas.android.com/tools"
5 5
    android:layout_width="match_parent"
6
    android:layout_height="match_parent">
6
    android:layout_height="match_parent"
7
   >
7 8
8
    <com.electric.chargingpile.video.VideoPlayer
9
    <com.electric.chargingpile.video.DetailVideo
9 10
        android:id="@+id/videoPlayer"
11
        android:layout_width="match_parent"
12
        android:layout_height="0dp"
13
        app:layout_constraintEnd_toEndOf="parent"
14
        app:layout_constraintStart_toStartOf="parent"
15
        app:layout_constraintBottom_toBottomOf="parent"
16
        app:layout_constraintTop_toTopOf="parent" />
17
    <ImageView
18
        android:id="@+id/playIcon"
10 19
        android:layout_width="wrap_content"
11 20
        android:layout_height="wrap_content"
21
        android:clickable="false"
22
        android:src="@drawable/app_talk_video_icon"
23
        app:layout_constraintBottom_toBottomOf="@+id/videoPlayer"
24
        app:layout_constraintEnd_toEndOf="@+id/videoPlayer"
25
        app:layout_constraintStart_toStartOf="@+id/videoPlayer"
26
        app:layout_constraintTop_toTopOf="@+id/videoPlayer" />
27
    <!-- 自定义进度条 -->
28
    <ProgressBar
12 29
        app:layout_constraintEnd_toEndOf="parent"
13 30
        app:layout_constraintStart_toStartOf="parent"
14
        app:layout_constraintTop_toTopOf="parent" />
31
        android:layout_marginBottom="10dp"
32
        app:layout_constraintBottom_toBottomOf="parent"
33
        android:id="@+id/progressBar"
34
        style="@android:style/Widget.ProgressBar.Horizontal"
35
        android:layout_width="match_parent"
36
        android:layout_height="1dp"
37
        android:max="100"
38
        android:progressDrawable="@drawable/video_player_progressbar"
39
        tools:progress="50" />
40
    <ImageView
41
        android:layout_marginTop="25dp"
42
        app:layout_constraintTop_toTopOf="parent"
43
        app:layout_constraintStart_toStartOf="parent"
44
        android:padding="16dp"
45
        android:id="@+id/backIcon"
46
        android:layout_width="wrap_content"
47
        android:layout_height="wrap_content"
48
        android:paddingLeft="20dp"
49
        android:paddingRight="20dp"
50
        android:src="@drawable/app_white_back_icon"
51
        app:layout_constraintLeft_toLeftOf="parent" />
15 52
16 53
</androidx.constraintlayout.widget.ConstraintLayout>

+ 38 - 0
app/src/main/res/layout/layout_video_detail.xml

@ -0,0 +1,38 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    xmlns:tools="http://schemas.android.com/tools"
4
    android:layout_width="match_parent"
5
    android:layout_height="match_parent"
6
    android:background="@android:color/black">
7
8
    <FrameLayout
9
        android:id="@+id/surface_container"
10
        android:layout_width="match_parent"
11
        android:layout_height="match_parent"
12
        android:gravity="center">
13
14
    </FrameLayout>
15
16
17
18
19
    <moe.codeest.enviews.ENDownloadView
20
21
        android:id="@+id/loading"
22
        android:layout_width="28dp"
23
        android:layout_height="28dp"
24
        android:layout_centerHorizontal="true"
25
        android:layout_centerVertical="true"
26
        android:visibility="invisible" />
27
28
    <moe.codeest.enviews.ENPlayView
29
        android:id="@+id/start"
30
        android:layout_width="60dp"
31
        android:layout_height="60dp"
32
        android:layout_centerHorizontal="true"
33
        android:layout_centerVertical="true"
34
        android:layout_gravity="center_vertical" />
35
36
37
38
</RelativeLayout>