Ver Código Fonte

上报充电车位开发完成

huyuguo 5 anos atrás
pai
commit
ce5a9fd7dc

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

@ -1746,6 +1746,7 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
1746 1746
                }
1747 1747
                ProfileManager.getInstance().setAtCity(getApplicationContext(), MainApplication.atCity);
1748 1748
                center = new LatLng(amapLocation.getLatitude(), amapLocation.getLongitude());
1749
                MainApplication.center = center;
1749 1750
                ete("{\"fun\":\"timer\"}");
1750 1751
//                Log.e("!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!");
1751 1752
                mlocationClient.stopLocation();

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

@ -12,6 +12,7 @@ import android.os.StrictMode;
12 12
import android.support.multidex.MultiDexApplication;
13 13
import android.util.Log;
14 14

15
import com.amap.api.maps.model.LatLng;
15 16
import com.blankj.utilcode.util.LogUtils;
16 17
import com.blankj.utilcode.util.Utils;
17 18
import com.electric.chargingpile.BuildConfig;
@ -59,6 +60,7 @@ public class MainApplication extends MultiDexApplication {
59 60
    public static String userId = "";
60 61
    public static String userCar = "";
61 62
    public static String userIcon = "";
63
    public static LatLng center = null; // 用户位置
62 64
    public static String userNickname = "";
63 65
    public static String mapStatus = "";
64 66
    public static String costWay = "";
@ -74,7 +76,7 @@ public class MainApplication extends MultiDexApplication {
74 76
    public static Boolean firstSsyd;
75 77
    public static String password = "";
76 78
    public static String url = "http://59.110.68.162";// 充电桩测试环境
77
//    public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
79
    //    public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
78 80
//    public static String urlNew = "http://123.56.67.7:83/api/0300";// 一电测试环境
79 81
    public static String urlNew = "https://api.touchev.com:83/api/0300";// 一电正式环境
80 82
    public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
@ -243,7 +245,6 @@ public class MainApplication extends MultiDexApplication {
243 245
    }
244 246

245 247

246

247 248
    public static void initImageLoader(Context context) {
248 249
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory()
249 250
                .discCacheFileNameGenerator(new Md5FileNameGenerator()).discCacheSize(50 * 1024 * 1024).memoryCacheSize(5 * 1024 * 1024).build();

+ 37 - 13
app/src/main/java/com/electric/chargingpile/fragment/DetailsFragment.java

@ -974,25 +974,49 @@ public class DetailsFragment extends Fragment implements View.OnClickListener, O
974 974
                startActivity(i);
975 975
                break;
976 976
            case R.id.parking_icon:  // 停车位相关操作
977
                LatLng latLng = new LatLng(Double.parseDouble(poi_wei), Double.parseDouble(poi_jing));
977 978
                if ("1".equals(freeStatus)) { // 有状态的站点
978 979
                    if ("0".equals(acableNum) && "0".equals(dcableNum)) { // 无空闲桩
979
                        // todo alert
980
                        ReportParkingDialogFragment reportParkingDialogFragment = ReportParkingDialogFragment.newInstance(ReportParkingDialogFragment.TYPE_THIRD);
981
                        reportParkingDialogFragment.show(getFragmentManager(),"没有充电车位");
980 982
                    } else {
981
                        if ("1002".equals(vacancyCode)) { // 无有空闲桩
982
                            // todo alert
983
                            addVacancy();
984
                        } else { // 有空闲桩
985
                            // todo alert
986
                            addVacancy();
983
                        if (MainApplication.center == null) {
984
                            ToastUtil.showToast(getContext(), "请检查您当前网络或定位权限是否开启", Toast.LENGTH_SHORT);
985
                        } else {
986
                            double distance = AMapUtils.calculateLineDistance(MainApplication.center, latLng);
987
                            if (distance > 100) {
988
                                ReportParkingDialogFragment reportParkingDialogFragment = ReportParkingDialogFragment.newInstance(ReportParkingDialogFragment.TYPE_FIRST);
989
                                reportParkingDialogFragment.show(getFragmentManager(),"超过100米,无法上报充电车位");
990
                            } else {
991
                                ReportParkingDialogFragment reportParkingDialogFragment = ReportParkingDialogFragment.newInstance(ReportParkingDialogFragment.TYPE_SECOND);
992
                                reportParkingDialogFragment.setOnReportParkingDialogFragmentListener(new ReportParkingDialogFragment.OnReportParkingDialogFragmentListener() {
993
                                    @Override
994
                                    public void report() {
995
                                        addVacancy();
996
                                    }
997
                                });
998
                                reportParkingDialogFragment.show(getFragmentManager(),"上报车位");
999
                            }
987 1000
                        }
988 1001
                    }
989 1002
                } else {
990
                    if ("1002".equals(vacancyCode)) { // 无有空闲桩
991
                        // todo alert
992
                        addVacancy();
993
                    } else { // 有空闲桩
994
                        // todo alert
995
                        addVacancy();
1003
                    if (MainApplication.center == null) {
1004
                        ToastUtil.showToast(getContext(), "请检查您当前网络或定位权限是否开启", Toast.LENGTH_SHORT);
1005
                    } else {
1006
                        double distance = AMapUtils.calculateLineDistance(MainApplication.center, latLng);
1007
                        if (distance > 100) {
1008
                            ReportParkingDialogFragment reportParkingDialogFragment = ReportParkingDialogFragment.newInstance(ReportParkingDialogFragment.TYPE_FIRST);
1009
                            reportParkingDialogFragment.show(getFragmentManager(),"超过100米,无法上报充电车位");
1010
                        } else {
1011
                            ReportParkingDialogFragment reportParkingDialogFragment = ReportParkingDialogFragment.newInstance(ReportParkingDialogFragment.TYPE_SECOND);
1012
                            reportParkingDialogFragment.setOnReportParkingDialogFragmentListener(new ReportParkingDialogFragment.OnReportParkingDialogFragmentListener() {
1013
                                @Override
1014
                                public void report() {
1015
                                    addVacancy();
1016
                                }
1017
                            });
1018
                            reportParkingDialogFragment.show(getFragmentManager(),"上报车位");
1019
                        }
996 1020
                    }
997 1021
                }
998 1022
                break;

+ 147 - 0
app/src/main/java/com/electric/chargingpile/fragment/ReportParkingDialogFragment.java

@ -0,0 +1,147 @@
1
package com.electric.chargingpile.fragment;
2
3
import android.app.Dialog;
4
import android.graphics.Color;
5
import android.media.Image;
6
import android.os.Bundle;
7
import android.support.constraint.ConstraintLayout;
8
import android.support.v4.app.DialogFragment;
9
import android.view.Gravity;
10
import android.view.View;
11
import android.view.Window;
12
import android.view.WindowManager;
13
import android.widget.Button;
14
import android.widget.ImageView;
15
16
import com.electric.chargingpile.R;
17
18
public class ReportParkingDialogFragment extends DialogFragment implements View.OnClickListener {
19
20
    public static final String TYPE_FIRST = "first";
21
    public static final String TYPE_SECOND = "second";
22
    public static final String TYPE_THIRD = "third";
23
24
    private static Dialog mDialog;
25
    private String mType;
26
    private ConstraintLayout container;
27
    private ConstraintLayout first;
28
    private ImageView first_close;
29
    private ConstraintLayout second;
30
    private ImageView second_close;
31
    private Button cancel_report;
32
    private Button report;
33
    private ConstraintLayout third;
34
    private ImageView third_close;
35
    private OnReportParkingDialogFragmentListener reportParkingDialogFragmentListener;
36
37
    public static ReportParkingDialogFragment newInstance(String type) {
38
        Bundle args = new Bundle();
39
        args.putSerializable("type", type);
40
        ReportParkingDialogFragment fragment = new ReportParkingDialogFragment();
41
        fragment.setArguments(args);
42
        return fragment;
43
    }
44
45
    @Override
46
    public Dialog onCreateDialog(Bundle savedInstanceState) {
47
        mDialog = new Dialog(getActivity(), R.style.CenterDialog);
48
        mDialog.setCancelable(true);
49
        mDialog.setCanceledOnTouchOutside(true);
50
51
        mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
52
        mDialog.setContentView(R.layout.fragment_dialog_report_parking);
53
54
        Window window = mDialog.getWindow();
55
        WindowManager.LayoutParams layoutParams = window.getAttributes();
56
        // 布局属性位于整个窗口底部
57
        layoutParams.gravity = Gravity.CENTER;
58
        // 布局属性宽度填充整个窗口,默认是有margin的
59
        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
60
        window.setAttributes(layoutParams);
61
62
        initDialog();
63
        initListener();
64
65
        return mDialog;
66
    }
67
68
    private void initDialog() {
69
        mType = (String)getArguments().get("type");
70
        container = mDialog.findViewById(R.id.container);
71
        first = mDialog.findViewById(R.id.first);
72
        first_close = mDialog.findViewById(R.id.first_close);
73
74
        second = mDialog.findViewById(R.id.second);
75
        second_close = mDialog.findViewById(R.id.second_close);
76
        cancel_report = mDialog.findViewById(R.id.cancel_report);
77
        report = mDialog.findViewById(R.id.report);
78
79
        third = mDialog.findViewById(R.id.third);
80
        third_close = mDialog.findViewById(R.id.third_close);
81
82
83
        if (TYPE_FIRST.equals(mType)) {
84
            first.setVisibility(View.VISIBLE);
85
            second.setVisibility(View.GONE);
86
            third.setVisibility(View.GONE);
87
        } else if (TYPE_SECOND.equals(mType)) {
88
            first.setVisibility(View.GONE);
89
            second.setVisibility(View.VISIBLE);
90
            third.setVisibility(View.GONE);
91
        } else {
92
            first.setVisibility(View.GONE);
93
            second.setVisibility(View.GONE);
94
            third.setVisibility(View.VISIBLE);
95
        }
96
    }
97
98
    private void initListener() {
99
        container.setOnClickListener(this);
100
101
        first.setOnClickListener(this);
102
        first_close.setOnClickListener(this);
103
104
        second.setOnClickListener(this);
105
        second_close.setOnClickListener(this);
106
        cancel_report.setOnClickListener(this);
107
        report.setOnClickListener(this);
108
109
        third.setOnClickListener(this);
110
        third_close.setOnClickListener(this);
111
    }
112
113
    @Override
114
    public void onClick(View v) {
115
        switch (v.getId()) {
116
            case R.id.container:
117
                mDialog.dismiss();
118
                break;
119
            case R.id.first_close:
120
                mDialog.dismiss();
121
                break;
122
            case R.id.second_close:
123
                mDialog.dismiss();
124
                break;
125
            case R.id.cancel_report:
126
                mDialog.dismiss();
127
                break;
128
            case R.id.report:
129
                if (reportParkingDialogFragmentListener != null) {
130
                    reportParkingDialogFragmentListener.report();
131
                }
132
                mDialog.dismiss();
133
                break;
134
            case R.id.third_close:
135
                mDialog.dismiss();
136
                break;
137
        }
138
    }
139
140
    public interface OnReportParkingDialogFragmentListener {
141
        void report();
142
    }
143
144
    public void setOnReportParkingDialogFragmentListener(OnReportParkingDialogFragmentListener listener) {
145
        this.reportParkingDialogFragmentListener = listener;
146
    }
147
}

+ 1 - 3
app/src/main/java/com/electric/chargingpile/fragment/RoutePlanMapScreenDialogFragment.java

@ -12,8 +12,6 @@ import android.view.WindowManager;
12 12
import android.widget.ImageView;
13 13
14 14
import com.electric.chargingpile.R;
15
import com.electric.chargingpile.util.LogUtils;
16
import com.mabeijianxi.smallvideorecord2.Log;
17 15
18 16
public class RoutePlanMapScreenDialogFragment extends DialogFragment implements View.OnClickListener {
19 17
@ -52,7 +50,7 @@ public class RoutePlanMapScreenDialogFragment extends DialogFragment implements
52 50
        // 布局属性位于整个窗口底部
53 51
        layoutParams.gravity = Gravity.BOTTOM;
54 52
        // 布局属性宽度填充整个窗口,默认是有margin的
55
        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
53
//        layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
56 54
        window.setAttributes(layoutParams);
57 55
58 56
        initDialog();

BIN
app/src/main/res/drawable-hdpi/report_parking_close.png


BIN
app/src/main/res/drawable-mdpi/report_parking_close.png


BIN
app/src/main/res/drawable-xhdpi/report_parking_close.png


BIN
app/src/main/res/drawable-xxhdpi/report_parking_close.png


BIN
app/src/main/res/drawable-xxxhdpi/report_parking_close.png


+ 9 - 0
app/src/main/res/drawable/cancel_report_parking_shap.xml

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<shape xmlns:android="http://schemas.android.com/apk/res/android">
3
    <!-- 背景色 -->
4
    <solid android:color="#ffffff"></solid>
5
    <!-- 边框颜色、宽度  -->
6
    <stroke android:width="0.5dip" android:color="#dedede"></stroke>
7
    <!-- 边框圆角 -->
8
    <corners android:radius="4dp"></corners>
9
</shape>

+ 7 - 0
app/src/main/res/drawable/report_parking_shape.xml

@ -0,0 +1,7 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<shape xmlns:android="http://schemas.android.com/apk/res/android">
3
    <!-- 背景色 -->
4
    <solid android:color="#00B536"></solid>
5
    <!-- 边框圆角 -->
6
    <corners android:radius="4dp"></corners>
7
</shape>

+ 224 - 0
app/src/main/res/layout/fragment_dialog_report_parking.xml

@ -0,0 +1,224 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    xmlns:app="http://schemas.android.com/apk/res-auto"
4
    xmlns:tools="http://schemas.android.com/tools"
5
    android:id="@+id/container"
6
    android:layout_width="match_parent"
7
    android:layout_height="match_parent"
8
    android:background="#a0000000">
9
10
    <android.support.constraint.ConstraintLayout
11
        android:id="@+id/first"
12
        android:layout_width="310dp"
13
        android:layout_height="255dp"
14
        android:visibility="gone"
15
        app:layout_constraintBottom_toBottomOf="parent"
16
        app:layout_constraintLeft_toLeftOf="parent"
17
        app:layout_constraintRight_toRightOf="parent"
18
        app:layout_constraintTop_toTopOf="parent">
19
20
        <ImageView
21
            android:layout_width="match_parent"
22
            android:layout_height="match_parent"
23
            android:src="@drawable/detail_parking_alert_first" />
24
25
        <ImageView
26
            android:id="@+id/first_close"
27
            android:layout_width="wrap_content"
28
            android:layout_height="wrap_content"
29
            android:layout_marginTop="40dp"
30
            android:padding="10dp"
31
            android:src="@drawable/report_parking_close"
32
            app:layout_constraintRight_toRightOf="parent"
33
            app:layout_constraintTop_toTopOf="parent" />
34
35
        <TextView
36
            android:id="@+id/first_msg"
37
            android:layout_width="match_parent"
38
            android:layout_height="wrap_content"
39
            android:layout_marginLeft="28dp"
40
            android:layout_marginTop="90dp"
41
            android:layout_marginRight="28dp"
42
            android:text="对不起,请在该充电站100米范围内上报“有充电车位”信息"
43
            android:textColor="#222222"
44
            android:textSize="14sp"
45
            app:layout_constraintLeft_toLeftOf="parent"
46
            app:layout_constraintRight_toRightOf="parent"
47
            app:layout_constraintTop_toTopOf="parent" />
48
49
        <TextView
50
            android:layout_width="match_parent"
51
            android:layout_height="wrap_content"
52
            android:layout_marginLeft="28dp"
53
            android:layout_marginTop="10dp"
54
            android:layout_marginRight="28dp"
55
            android:text="非常感谢,您的信息可以帮助到更多的充电用户"
56
            android:textColor="#bcbcbc"
57
            android:textSize="14sp"
58
            app:layout_constraintLeft_toLeftOf="parent"
59
            app:layout_constraintRight_toRightOf="parent"
60
            app:layout_constraintTop_toBottomOf="@+id/first_msg" />
61
62
        <TextView
63
            android:layout_width="match_parent"
64
            android:layout_height="wrap_content"
65
            android:layout_marginBottom="10dp"
66
            android:text="有任何疑问可以联系充电桩客服微信\nchongdianzhuang2"
67
            android:textAlignment="center"
68
            android:textColor="#a7a7a7"
69
            android:textSize="12sp"
70
            app:layout_constraintBottom_toBottomOf="parent"
71
            app:layout_constraintLeft_toLeftOf="parent"
72
            app:layout_constraintRight_toRightOf="parent" />
73
74
    </android.support.constraint.ConstraintLayout>
75
76
    <android.support.constraint.ConstraintLayout
77
        android:id="@+id/second"
78
        android:layout_width="310dp"
79
        android:layout_height="320dp"
80
        android:visibility="gone"
81
        app:layout_constraintBottom_toBottomOf="parent"
82
        app:layout_constraintLeft_toLeftOf="parent"
83
        app:layout_constraintRight_toRightOf="parent"
84
        app:layout_constraintTop_toTopOf="parent">
85
86
        <ImageView
87
            android:layout_width="match_parent"
88
            android:layout_height="match_parent"
89
            android:src="@drawable/detail_parking_alert_second" />
90
91
        <ImageView
92
            android:id="@+id/second_close"
93
            android:layout_width="wrap_content"
94
            android:layout_height="wrap_content"
95
            android:layout_marginTop="40dp"
96
            android:padding="10dp"
97
            android:src="@drawable/report_parking_close"
98
            app:layout_constraintRight_toRightOf="parent"
99
            app:layout_constraintTop_toTopOf="parent" />
100
101
        <TextView
102
            android:id="@+id/second_msg"
103
            android:layout_width="match_parent"
104
            android:layout_height="wrap_content"
105
            android:layout_marginLeft="28dp"
106
            android:layout_marginTop="90dp"
107
            android:layout_marginRight="28dp"
108
            android:text="您上报的“有充电车位”信息,可以作为其他用户到此充电的重要参考依据,务必真实上报"
109
            android:textColor="#222222"
110
            android:textSize="14sp"
111
            app:layout_constraintLeft_toLeftOf="parent"
112
            app:layout_constraintRight_toRightOf="parent"
113
            app:layout_constraintTop_toTopOf="parent" />
114
115
        <TextView
116
            android:id="@+id/second_desc"
117
            android:layout_width="match_parent"
118
            android:layout_height="wrap_content"
119
            android:layout_marginLeft="28dp"
120
            android:layout_marginTop="10dp"
121
            android:layout_marginRight="28dp"
122
            android:text="非常感谢,您的信息可以帮助到更多的充电用户"
123
            android:textColor="#bcbcbc"
124
            android:textSize="14sp"
125
            app:layout_constraintLeft_toLeftOf="parent"
126
            app:layout_constraintRight_toRightOf="parent"
127
            app:layout_constraintTop_toBottomOf="@+id/second_msg" />
128
129
        <LinearLayout
130
            android:layout_width="match_parent"
131
            android:layout_height="35dp"
132
            android:layout_marginTop="20dp"
133
            android:gravity="center"
134
            app:layout_constraintTop_toBottomOf="@+id/second_desc">
135
136
            <Button
137
                android:id="@+id/cancel_report"
138
                android:layout_width="100dp"
139
                android:layout_height="match_parent"
140
                android:background="@drawable/cancel_report_parking_shap"
141
                android:text="取消上报"
142
                android:textColor="#999999"
143
                android:textSize="13sp" />
144
145
            <Button
146
                android:id="@+id/report"
147
                android:layout_width="100dp"
148
                android:layout_height="match_parent"
149
                android:layout_marginLeft="10dp"
150
                android:background="@drawable/report_parking_shape"
151
                android:text="上报空停车位"
152
                android:textColor="#ffffff"
153
                android:textSize="13sp" />
154
155
        </LinearLayout>
156
157
158
        <TextView
159
            android:layout_width="match_parent"
160
            android:layout_height="wrap_content"
161
            android:layout_marginBottom="10dp"
162
            android:text="有任何疑问可以联系充电桩客服微信\nchongdianzhuang2"
163
            android:textAlignment="center"
164
            android:textColor="#a7a7a7"
165
            android:textSize="12sp"
166
            app:layout_constraintBottom_toBottomOf="parent"
167
            app:layout_constraintLeft_toLeftOf="parent"
168
            app:layout_constraintRight_toRightOf="parent" />
169
170
    </android.support.constraint.ConstraintLayout>
171
172
    <android.support.constraint.ConstraintLayout
173
        android:id="@+id/third"
174
        android:layout_width="310dp"
175
        android:layout_height="200dp"
176
        app:layout_constraintBottom_toBottomOf="parent"
177
        app:layout_constraintLeft_toLeftOf="parent"
178
        app:layout_constraintRight_toRightOf="parent"
179
        app:layout_constraintTop_toTopOf="parent">
180
181
        <ImageView
182
            android:layout_width="match_parent"
183
            android:layout_height="match_parent"
184
            android:src="@drawable/detail_parking_alert_third" />
185
186
        <ImageView
187
            android:id="@+id/third_close"
188
            android:layout_width="wrap_content"
189
            android:layout_height="wrap_content"
190
            android:layout_marginTop="40dp"
191
            android:padding="10dp"
192
            android:src="@drawable/report_parking_close"
193
            app:layout_constraintRight_toRightOf="parent"
194
            app:layout_constraintTop_toTopOf="parent" />
195
196
        <TextView
197
            android:id="@+id/third_msg"
198
            android:layout_width="match_parent"
199
            android:layout_height="wrap_content"
200
            android:layout_marginLeft="28dp"
201
            android:layout_marginTop="90dp"
202
            android:layout_marginRight="28dp"
203
            android:text="该充电站目前没有充电车位"
204
            android:textColor="#222222"
205
            android:textSize="14sp"
206
            app:layout_constraintLeft_toLeftOf="parent"
207
            app:layout_constraintRight_toRightOf="parent"
208
            app:layout_constraintTop_toTopOf="parent" />
209
210
        <TextView
211
            android:layout_width="match_parent"
212
            android:layout_height="wrap_content"
213
            android:layout_marginBottom="10dp"
214
            android:text="有任何疑问可以联系充电桩客服微信\nchongdianzhuang2"
215
            android:textAlignment="center"
216
            android:textColor="#a7a7a7"
217
            android:textSize="12sp"
218
            app:layout_constraintBottom_toBottomOf="parent"
219
            app:layout_constraintLeft_toLeftOf="parent"
220
            app:layout_constraintRight_toRightOf="parent" />
221
222
    </android.support.constraint.ConstraintLayout>
223
224
</android.support.constraint.ConstraintLayout>

+ 8 - 0
app/src/main/res/values/styles.xml

@ -6,6 +6,7 @@
6 6
        <item name="colorAccent">@color/colorAccent</item>
7 7

8 8
    </style>
9

9 10
    <style name="BottomDialog" parent="@style/AppTheme">
10 11
        <item name="android:layout_width">match_parent</item>
11 12
        <item name="android:layout_height">wrap_content</item>
@ -18,6 +19,13 @@
18 19
        <item name="android:layout_height">wrap_content</item>
19 20
        <item name="android:windowIsFloating">true</item>
20 21
    </style>
22
    <style name="CenterDialog" parent="@style/AppTheme">
23
        <item name="windowNoTitle">true</item>
24
        <item name="android:backgroundDimEnabled">false</item>
25
        <item name="android:windowBackground">@android:color/transparent</item>
26
        <item name="android:windowIsFloating">false</item>
27
        <item name="android:windowFullscreen">true</item>
28
    </style>
21 29

22 30
    <style name="actionBarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
23 31
        <item name="android:textColorPrimary">@android:color/primary_text_light</item>