Browse Source

隐藏状态栏功能完成

huyuguo 5 years ago
parent
commit
434e445800

BIN
app/.DS_Store


+ 78 - 4
app/src/main/java/com/electric/chargingpile/activity/ChatActivity.java

1
package com.electric.chargingpile.activity;
1
package com.electric.chargingpile.activity;
2
2
3
import android.Manifest;
3
import android.Manifest;
4
import android.app.ActionBar;
4
import android.app.Activity;
5
import android.app.Activity;
6
import android.app.Fragment;
5
import android.content.Intent;
7
import android.content.Intent;
6
import android.content.SharedPreferences;
8
import android.content.SharedPreferences;
9
import android.graphics.Color;
10
import android.os.Build;
7
import android.os.Bundle;
11
import android.os.Bundle;
12
import android.support.annotation.ColorInt;
8
import android.support.annotation.NonNull;
13
import android.support.annotation.NonNull;
14
import android.support.v4.app.FragmentManager;
15
import android.support.v4.graphics.ColorUtils;
9
import android.support.v4.view.ViewPager;
16
import android.support.v4.view.ViewPager;
10
import android.support.v7.app.AppCompatActivity;
17
import android.support.v7.app.AppCompatActivity;
11
import android.view.KeyEvent;
18
import android.view.KeyEvent;
12
import android.view.View;
19
import android.view.View;
20
import android.view.ViewGroup;
21
import android.view.Window;
22
import android.view.WindowManager;
23
import android.widget.FrameLayout;
13
import android.widget.ImageView;
24
import android.widget.ImageView;
14
import android.widget.LinearLayout;
25
import android.widget.LinearLayout;
15
import android.widget.RelativeLayout;
26
import android.widget.RelativeLayout;
20
import com.electric.chargingpile.R;
31
import com.electric.chargingpile.R;
21
import com.electric.chargingpile.adapter.ViewPagerFragmentAdapter;
32
import com.electric.chargingpile.adapter.ViewPagerFragmentAdapter;
22
import com.electric.chargingpile.application.MainApplication;
33
import com.electric.chargingpile.application.MainApplication;
23
import com.electric.chargingpile.data.ChatBeanLab;
34
import com.electric.chargingpile.fragment.ChatFragment;
24
import com.electric.chargingpile.fragment.ChatRecommendFragment;
35
import com.electric.chargingpile.fragment.ChatRecommendFragment;
25
import com.electric.chargingpile.fragment.QaActivityFragment;
36
import com.electric.chargingpile.fragment.QaActivityFragment;
37
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
26
import com.electric.chargingpile.manager.ProfileManager;
38
import com.electric.chargingpile.manager.ProfileManager;
27
import com.electric.chargingpile.util.ToastUtil;
39
import com.electric.chargingpile.util.BarColorUtil;
28
import com.umeng.analytics.MobclickAgent;
40
import com.umeng.analytics.MobclickAgent;
29
41
30
import java.util.List;
42
import java.util.List;
55
67
56
    private static final int RC_CAMERA_PERM = 123;
68
    private static final int RC_CAMERA_PERM = 123;
57
    private long exitTime = 0;
69
    private long exitTime = 0;
70
    private FrameLayout fragmentContainer;
71
    private ChatFragment chatFragment;
58
72
59
    @Override
73
    @Override
60
    protected void onCreate(Bundle savedInstanceState) {
74
    protected void onCreate(Bundle savedInstanceState) {
61
        super.onCreate(savedInstanceState);
75
        super.onCreate(savedInstanceState);
62
        setContentView(R.layout.activity_chat);
76
        setContentView(R.layout.activity_chat);
63
64
        initView();
77
        initView();
65
        initListener();
78
        initListener();
66
        isRefresh = true;
79
        isRefresh = true;
67
68
        updateView(0);
80
        updateView(0);
69
    }
81
    }
70
82
99
        tv_msg_num = findViewById(R.id.tv_msg_num);
111
        tv_msg_num = findViewById(R.id.tv_msg_num);
100
        // 发现红点消息提醒
112
        // 发现红点消息提醒
101
        iv_point = findViewById(R.id.iv_point);
113
        iv_point = findViewById(R.id.iv_point);
114
115
        // 点击视频或图文
116
        chatRecommendFragment.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() {
117
            @Override
118
            public void onItemClickListener(int position, int index) {
119
                addChatFragment(position);
120
            }
121
        });
122
123
        fragmentContainer = findViewById(R.id.fragment_container);
102
    }
124
    }
103
125
126
    private void addChatFragment(int position) {
127
        setFullScreen(true);
128
        setStatusBarVisibility(true);
129
130
        fragmentContainer.setVisibility(View.VISIBLE);
131
        FragmentManager fragmentManager = getSupportFragmentManager();
132
        chatFragment = (ChatFragment) fragmentManager.findFragmentById(R.id.fragment_container);
133
        if (chatFragment == null) {
134
            chatFragment = ChatFragment.newInstance(position - 1);
135
            fragmentManager.beginTransaction().add(R.id.fragment_container, chatFragment).commit();
136
            chatFragment.setMenuVisibility(true);
137
        }
138
    }
139
140
    private void removeChatFragment() {
141
        FragmentManager fragmentManager = getSupportFragmentManager();
142
        if (chatFragment != null) {
143
            fragmentManager.beginTransaction().remove(chatFragment).commit();
144
            chatFragment.setMenuVisibility(false);
145
        }
146
    }
147
148
    /**
149
     * 显示隐藏状态栏,全屏不变,只在有全屏时有效
150
     * @param enable
151
     */
152
    private void setStatusBarVisibility(boolean enable) {
153
        WindowManager.LayoutParams lp = getWindow().getAttributes();
154
        if (enable) {
155
            lp.flags |= WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
156
        } else {
157
            lp.flags &= (~WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
158
        }
159
        getWindow().setAttributes(lp);
160
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
161
    }
162
    /**
163
     * 设置是否全屏
164
     * @param enable
165
     */
166
    private void setFullScreen(boolean enable) {
167
        WindowManager.LayoutParams lp = getWindow().getAttributes();
168
        if (enable) {
169
            lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
170
        } else {
171
            lp.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
172
        }
173
        getWindow().setAttributes(lp);
174
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
175
    }
176
177
104
    private void initListener() {
178
    private void initListener() {
105
        act_bar_title_recommend.setOnClickListener(this);
179
        act_bar_title_recommend.setOnClickListener(this);
106
        act_bar_title_help.setOnClickListener(this);
180
        act_bar_title_help.setOnClickListener(this);

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

897
        map.put("content", et_context.getText().toString());
897
        map.put("content", et_context.getText().toString());
898
        map.put("urls", urls);
898
        map.put("urls", urls);
899
        if (chatRecommendBean != null) {
899
        if (chatRecommendBean != null) {
900
            map.put("topicId", chatRecommendBean.targetId + "");
900
            map.put("topicId", chatRecommendBean.topicId + "");
901
        }
901
        }
902
        map.put("targetType", ChatRecommendBean.TARGET_TYPE_IMAGE_TEXT + "");
902
        map.put("targetType", ChatRecommendBean.TARGET_TYPE_IMAGE_TEXT + "");
903
        map.put("coverImgUrl", "");
903
        map.put("coverImgUrl", "");

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

313
        map.put("content", mPublishtopicCon.getText().toString().trim());
313
        map.put("content", mPublishtopicCon.getText().toString().trim());
314
        map.put("urls", urls);
314
        map.put("urls", urls);
315
        if (chatRecommendBean != null) {
315
        if (chatRecommendBean != null) {
316
            map.put("topicId", chatRecommendBean.targetId + "");
316
            map.put("topicId", chatRecommendBean.topicId + "");
317
        }
317
        }
318
        map.put("targetType", ChatRecommendBean.TARGET_TYPE_VIDEO + "");
318
        map.put("targetType", ChatRecommendBean.TARGET_TYPE_VIDEO + "");
319
        map.put("coverImgW", media.getWidth() + "");
319
        map.put("coverImgW", media.getWidth() + "");

+ 72 - 0
app/src/main/java/com/electric/chargingpile/fragment/ChatFragment.java

1
package com.electric.chargingpile.fragment;
2
3
import android.os.Bundle;
4
import android.support.annotation.Nullable;
5
import android.support.v4.app.Fragment;
6
import android.util.Log;
7
import android.view.LayoutInflater;
8
import android.view.View;
9
import android.view.ViewGroup;
10
import android.widget.Toast;
11
12
import com.electric.chargingpile.R;
13
import com.electric.chargingpile.util.ToastUtil;
14
import com.electric.chargingpile.util.Util;
15
16
public class ChatFragment extends Fragment implements View.OnClickListener {
17
    private static final String TAG = "ChatFragment";
18
    private static final String ARG_POSITION = "arg_position";
19
20
    public static ChatFragment newInstance(int position) {
21
        Bundle args = new Bundle();
22
        args.putSerializable(ARG_POSITION, position);
23
        ChatFragment fragment = new ChatFragment();
24
        fragment.setArguments(args);
25
        return fragment;
26
    }
27
28
    @Override
29
    public void onCreate(@Nullable Bundle savedInstanceState) {
30
        super.onCreate(savedInstanceState);
31
        int position = getArguments().getInt(ARG_POSITION);
32
        Log.d(TAG, "onCreatexxxx: " + position);
33
    }
34
35
    @Nullable
36
    @Override
37
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
38
        View view = inflater.inflate(R.layout.fragment_chat, container, false);
39
        init(view);
40
        return view;
41
    }
42
43
    private void init(View view) {
44
//        view.findViewById(R.id.button2).setOnClickListener(this);
45
    }
46
47
    @Override
48
    public void onResume() {
49
        super.onResume();
50
    }
51
52
    @Override
53
    public void onDestroy() {
54
        super.onDestroy();
55
        Log.d(TAG, "onDestroy: ");
56
    }
57
58
    @Override
59
    public void onDestroyView() {
60
        super.onDestroyView();
61
        Log.d(TAG, "onDestroyView: ");
62
    }
63
64
    @Override
65
    public void onClick(View view) {
66
        switch (view.getId()) {
67
//            case R.id.button2:
68
//                ToastUtil.showToast(getContext(), "come on ", Toast.LENGTH_SHORT);
69
//                break;
70
        }
71
    }
72
}

+ 39 - 37
app/src/main/java/com/electric/chargingpile/fragment/ChatRecommendFragment.java

1
package com.electric.chargingpile.fragment;
1
package com.electric.chargingpile.fragment;
2
2
3
import android.app.Activity;
3
import android.content.Intent;
4
import android.content.Intent;
4
import android.os.Bundle;
5
import android.os.Bundle;
5
import android.support.constraint.ConstraintLayout;
6
import android.support.constraint.ConstraintLayout;
6
import android.support.v4.app.Fragment;
7
import android.support.v4.app.Fragment;
8
import android.support.v4.app.FragmentManager;
7
import android.support.v7.widget.RecyclerView;
9
import android.support.v7.widget.RecyclerView;
8
import android.support.v7.widget.StaggeredGridLayoutManager;
10
import android.support.v7.widget.StaggeredGridLayoutManager;
9
import android.text.TextUtils;
11
import android.text.TextUtils;
18
import com.electric.chargingpile.R;
20
import com.electric.chargingpile.R;
19
import com.electric.chargingpile.activity.LoginActivity;
21
import com.electric.chargingpile.activity.LoginActivity;
20
import com.electric.chargingpile.activity.PublishItemsActivity;
22
import com.electric.chargingpile.activity.PublishItemsActivity;
21
import com.electric.chargingpile.activity.TopicDetailActivity;
22
import com.electric.chargingpile.activity.VideoDetaislActivity;
23
import com.electric.chargingpile.adapter.ChatRecommendAdapter;
23
import com.electric.chargingpile.adapter.ChatRecommendAdapter;
24
import com.electric.chargingpile.adapter.TopicDetailAdapter;
24
import com.electric.chargingpile.adapter.TopicDetailAdapter;
25
import com.electric.chargingpile.application.MainApplication;
25
import com.electric.chargingpile.application.MainApplication;
36
import com.zhy.http.okhttp.OkHttpUtils;
36
import com.zhy.http.okhttp.OkHttpUtils;
37
import com.zhy.http.okhttp.callback.StringCallback;
37
import com.zhy.http.okhttp.callback.StringCallback;
38
38
39
import java.io.Serializable;
40
import java.util.ArrayList;
39
import java.util.ArrayList;
41
import java.util.HashMap;
40
import java.util.HashMap;
42
import java.util.List;
43
import java.util.Map;
41
import java.util.Map;
44
42
45
import io.reactivex.Observable;
46
import io.reactivex.android.schedulers.AndroidSchedulers;
47
import io.reactivex.disposables.Disposable;
48
import io.reactivex.functions.Consumer;
49
import io.reactivex.functions.Predicate;
50
import io.reactivex.schedulers.Schedulers;
51
import okhttp3.Call;
43
import okhttp3.Call;
52
44
53
public class ChatRecommendFragment extends Fragment implements View.OnClickListener {
45
public class ChatRecommendFragment extends Fragment implements View.OnClickListener {
65
    private LoadingDialog loadingDialog;
57
    private LoadingDialog loadingDialog;
66
    private ConstraintLayout noNetView;
58
    private ConstraintLayout noNetView;
67
    private TextView noNetTry;
59
    private TextView noNetTry;
60
    private RecyclerItemTypeClickListener onRecyclerItemClickListener;
61
68
62
69
    @Override
63
    @Override
70
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
64
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
126
                    return;
120
                    return;
127
                }
121
                }
128
122
123
                if (onRecyclerItemClickListener != null) {
124
                    onRecyclerItemClickListener.onItemClickListener(position, type);
125
                }
129
126
130
                final List<ChatRecommendBean> beans = ChatBeanLab.get(getContext()).beans();
131
                ChatRecommendBean bean = beans.get(position - 1);
132
                Disposable disposable = Observable.fromIterable(beans).filter(new Predicate<ChatRecommendBean>() {
133
                    @Override
134
                    public boolean test(ChatRecommendBean chatRecommendBean) throws Exception {
135
                        return chatRecommendBean.targetType != 25;
136
                    }
137
                }).toList().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<List<ChatRecommendBean>>() {
138
                    @Override
139
                    public void accept(List<ChatRecommendBean> list) throws Exception {
140
                        ChatRecommendBean chatRecommendBean = beans.get(position - 1);
141
142
                        int index = 0;
143
                        for (int i = 0; i < list.size(); i++) {
144
                            ChatRecommendBean tmp = list.get(i);
145
                            if (tmp.targetType == chatRecommendBean.targetType &&
146
                                    tmp.targetId == chatRecommendBean.targetId) {
147
                                index = i;
148
                                break;
149
                            }
150
                        }
151
127
152
                        Intent intent = new Intent(getActivity(), VideoDetaislActivity.class);
153
                        intent.putExtra("list", (Serializable) list);
154
                        intent.putExtra("pos", index);
155
                        startActivity(intent);
156
                    }
157
                });
128
//                final List<ChatRecommendBean> beans = ChatBeanLab.get(getContext()).beans();
129
//                ChatRecommendBean bean = beans.get(position - 1);
130
//                Disposable disposable = Observable.fromIterable(beans).filter(new Predicate<ChatRecommendBean>() {
131
//                    @Override
132
//                    public boolean test(ChatRecommendBean chatRecommendBean) throws Exception {
133
//                        return chatRecommendBean.targetType != 25;
134
//                    }
135
//                }).toList().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<List<ChatRecommendBean>>() {
136
//                    @Override
137
//                    public void accept(List<ChatRecommendBean> list) throws Exception {
138
//                        ChatRecommendBean chatRecommendBean = beans.get(position - 1);
139
//
140
//                        int index = 0;
141
//                        for (int i = 0; i < list.size(); i++) {
142
//                            ChatRecommendBean tmp = list.get(i);
143
//                            if (tmp.targetType == chatRecommendBean.targetType &&
144
//                                    tmp.targetId == chatRecommendBean.targetId) {
145
//                                index = i;
146
//                                break;
147
//                            }
148
//                        }
149
//
150
//                        Intent intent = new Intent(getActivity(), VideoDetaislActivity.class);
151
//                        intent.putExtra("list", (Serializable) list);
152
//                        intent.putExtra("pos", index);
153
//                        startActivity(intent);
154
//                    }
155
//                });
158
            }
156
            }
159
        });
157
        });
160
158
166
        }
164
        }
167
    }
165
    }
168
166
167
    public void setOnRecyclerItemClickListener(RecyclerItemTypeClickListener onRecyclerItemClickListener) {
168
        this.onRecyclerItemClickListener = onRecyclerItemClickListener;
169
    }
170
169
    private void initListener() {
171
    private void initListener() {
170
        iv_ask.setOnClickListener(this);
172
        iv_ask.setOnClickListener(this);
171
        noNetTry.setOnClickListener(this);
173
        noNetTry.setOnClickListener(this);

+ 20 - 0
app/src/main/java/com/electric/chargingpile/util/Util.java

1
package com.electric.chargingpile.util;
1
package com.electric.chargingpile.util;
2

2

3
import android.app.Activity;
3
import android.content.Context;
4
import android.content.Context;
5
import android.graphics.Color;
6
import android.os.Build;
7
import android.support.v7.app.ActionBar;
8
import android.support.v7.app.AppCompatActivity;
4
import android.text.TextUtils;
9
import android.text.TextUtils;
5
import android.util.Log;
10
import android.util.Log;
11
import android.view.View;
12
import android.view.WindowManager;
6

13

7
import com.electric.chargingpile.activity.MainMapActivity;
14
import com.electric.chargingpile.activity.MainMapActivity;
8
import com.electric.chargingpile.data.Zhan;
15
import com.electric.chargingpile.data.Zhan;
267
        return list2;
274
        return list2;
268
    }
275
    }
269

276

277
    public static void hideActionBar(AppCompatActivity activity) {
278
        if (Build.VERSION.SDK_INT >= 21) {
279
            View decorView = activity.getWindow().getDecorView();
280
            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
281
            decorView.setSystemUiVisibility(option);
282
            activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
283

284
        }
285

286
        ActionBar actionBar = activity.getSupportActionBar();
287
        actionBar.hide();
288
    }
289

270
}
290
}

+ 6 - 0
app/src/main/res/layout/activity_chat.xml

261
261
262
    </LinearLayout>
262
    </LinearLayout>
263
263
264
    <FrameLayout
265
        android:id="@+id/fragment_container"
266
        android:layout_width="match_parent"
267
        android:visibility="gone"
268
        android:layout_height="match_parent"></FrameLayout>
269
264
</RelativeLayout>
270
</RelativeLayout>

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

113
            android:layout_width="wrap_content"
113
            android:layout_width="wrap_content"
114
            android:layout_height="wrap_content"
114
            android:layout_height="wrap_content"
115
            android:layout_marginBottom="20dp"
115
            android:layout_marginBottom="20dp"
116
            android:text="网络跑了,请重试~"
116
            android:text="网络跑了,请重试~"
117
            android:textColor="#555"
117
            android:textColor="#555"
118
            android:textSize="14sp" />
118
            android:textSize="14sp" />
119
119

+ 19 - 0
app/src/main/res/layout/fragment_chat.xml

1
<?xml version="1.0" encoding="utf-8"?>
2
<android.support.constraint.ConstraintLayout
3
    xmlns:android="http://schemas.android.com/apk/res/android"
4
    xmlns:app="http://schemas.android.com/apk/res-auto"
5
    xmlns:tools="http://schemas.android.com/tools"
6
    android:background="#0000ff"
7
    android:layout_width="match_parent"
8
    android:layout_height="match_parent">
9
10
    <!--<com.andview.refreshview.XRefreshView-->
11
        <!--android:layout_width="match_parent"-->
12
        <!--android:layout_height="match_parent"-->
13
        <!--app:layout_constraintBottom_toBottomOf="parent"-->
14
        <!--app:layout_constraintEnd_toEndOf="parent"-->
15
        <!--app:layout_constraintStart_toStartOf="parent"-->
16
        <!--app:layout_constraintTop_toTopOf="parent">-->
17
18
    <!--</com.andview.refreshview.XRefreshView>-->
19
</android.support.constraint.ConstraintLayout>

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

60
        <TextView
60
        <TextView
61
            android:layout_width="wrap_content"
61
            android:layout_width="wrap_content"
62
            android:layout_height="wrap_content"
62
            android:layout_height="wrap_content"
63
            android:text="网络跑了,请检查网络~"
63
            android:text="网络跑了,请检查网络~"
64
            android:textColor="#fff"
64
            android:textColor="#fff"
65
            android:textSize="14sp" />
65
            android:textSize="14sp" />
66
66