Bladeren bron

修改测试环境,完善充电详情页逻辑

hy 2 jaren geleden
bovenliggende
commit
cbf660eac9
23 gewijzigde bestanden met toevoegingen van 702 en 9 verwijderingen
  1. 2 0
      app/build.gradle
  2. 4 0
      app/src/main/AndroidManifest.xml
  3. 151 0
      app/src/main/java/com/electric/chargingpile/activity/ChargingPileActivity.java
  4. 6 0
      app/src/main/java/com/electric/chargingpile/activity/ChargingStatusActivity.java
  5. 8 1
      app/src/main/java/com/electric/chargingpile/activity/InputCodeActivity.java
  6. 6 0
      app/src/main/java/com/electric/chargingpile/activity/SelectPileActivity.java
  7. 68 0
      app/src/main/java/com/electric/chargingpile/adapter/LicensePlateHistoryAdapter.java
  8. 6 6
      app/src/main/java/com/electric/chargingpile/application/MainApplication.java
  9. 30 0
      app/src/main/java/com/electric/chargingpile/manager/ProfileManager.java
  10. 83 0
      app/src/main/java/com/electric/chargingpile/view/ConfirmChargingDialog.java
  11. BIN
      app/src/main/res/drawable-xhdpi/bg_chargin.webp
  12. BIN
      app/src/main/res/drawable-xhdpi/ic_charging_pile.webp
  13. 9 0
      app/src/main/res/drawable/bg_3ec34c_radius20.xml
  14. 9 0
      app/src/main/res/drawable/bg_ececec_radius20.xml
  15. 9 0
      app/src/main/res/drawable/bg_edit_radius4.xml
  16. 9 0
      app/src/main/res/drawable/bg_start_charging.xml
  17. 9 0
      app/src/main/res/drawable/bg_white_radius4.xml
  18. 9 0
      app/src/main/res/drawable/bg_white_radius8.xml
  19. 188 0
      app/src/main/res/layout/activity_charging_pile.xml
  20. 60 0
      app/src/main/res/layout/dialog_confirm_charging.xml
  21. 18 0
      app/src/main/res/layout/layout_license_plate_history.xml
  22. 16 0
      zxing/src/main/java/com/google/zxing/client/android/CaptureActivity.java
  23. 2 2
      zxing/src/main/java/com/google/zxing/client/android/constant/UrlConstants.java

+ 2 - 0
app/build.gradle

@ -302,6 +302,8 @@ dependencies {
302 302
    implementation 'com.github.khoyron:Actionsheet-android:4'
303 303
    implementation 'cn.jiguang.sdk:jpush:4.6.2'
304 304
    implementation 'cn.jiguang.sdk:jcore:3.2.2'
305
    //车牌键盘
306
    implementation 'com.github.jenly1314:kingkeyboard:1.0.4'
305 307
306 308
    //极速版 (预计占用 4M 左右空间),主要移除了一些不常用的编解码器
307 309
//    implementation 'com.github.microshow:RxFFmpeg:4.9.0-lite'

+ 4 - 0
app/src/main/AndroidManifest.xml

@ -553,6 +553,10 @@
553 553
            android:exported="true"
554 554
            android:screenOrientation="portrait" />
555 555
        <activity
556
            android:name=".activity.ChargingPileActivity"
557
            android:exported="true"
558
            android:screenOrientation="portrait" />
559
        <activity
556 560
            android:name=".activity.H5Activity"
557 561
            android:screenOrientation="portrait" />
558 562
        <activity

+ 151 - 0
app/src/main/java/com/electric/chargingpile/activity/ChargingPileActivity.java

@ -0,0 +1,151 @@
1
package com.electric.chargingpile.activity;
2
3
import android.annotation.SuppressLint;
4
import android.content.Context;
5
import android.content.Intent;
6
import android.os.Bundle;
7
import android.text.Editable;
8
import android.text.TextWatcher;
9
import android.widget.EditText;
10
import android.widget.LinearLayout;
11
import android.widget.TextView;
12
import android.widget.Toast;
13
14
import androidx.annotation.Nullable;
15
import androidx.appcompat.app.AppCompatActivity;
16
import androidx.recyclerview.widget.GridLayoutManager;
17
import androidx.recyclerview.widget.RecyclerView;
18
19
import com.electric.chargingpile.R;
20
import com.electric.chargingpile.adapter.LicensePlateHistoryAdapter;
21
import com.electric.chargingpile.manager.ProfileManager;
22
import com.electric.chargingpile.util.BarColorUtil;
23
import com.electric.chargingpile.view.ConfirmChargingDialog;
24
import com.google.zxing.client.android.constant.ChargingConstants;
25
import com.king.keyboard.KingKeyboard;
26
27
/**
28
 *  特瓦特充电 详情页
29
 * */
30
public class ChargingPileActivity extends AppCompatActivity {
31
32
    private KingKeyboard kingKeyboard;
33
    private int beforeCount = 0;
34
    private ConfirmChargingDialog mDialog = ConfirmChargingDialog.newInstart();
35
    private LicensePlateHistoryAdapter mAdapter;
36
    private RecyclerView rvHistory;
37
    private TextView tvStartCharge;
38
    private EditText editText;
39
    private LinearLayout rootView;
40
    private LinearLayout mKeyboardParent;
41
    private String pileId;
42
    private TextView tvCoding;
43
44
45
    @Override
46
    protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
47
        super.onCreate(savedInstanceState);
48
        setContentView(R.layout.activity_charging_pile);
49
        BarColorUtil.initStatusBarColor(ChargingPileActivity.this);
50
        pileId = getIntent().getStringExtra(ChargingConstants.ORDERID);
51
        initView();
52
        initOnClick();
53
        registerKingKeyboard();
54
    }
55
    @SuppressLint("SetTextI18n")
56
    private void initView() {
57
        editText = findViewById(R.id.et_carPlate);
58
        tvStartCharge = findViewById(R.id.tvStartCharge);
59
        mKeyboardParent = findViewById(R.id.keyboardParent);
60
        rootView = findViewById(R.id.rootView);
61
        rvHistory = findViewById(R.id.rvHistory);
62
        tvCoding = findViewById(R.id.tvCoding);
63
64
        tvCoding.setText("充电桩编码:"+pileId);
65
    }
66
67
    private void initOnClick() {
68
        rvHistory.setLayoutManager(new GridLayoutManager(this,3));
69
        mAdapter = new LicensePlateHistoryAdapter();
70
        mAdapter.setListener(str->{
71
            mDialog.setLicensePlate(str);
72
            mDialog.show(getSupportFragmentManager());
73
        });
74
        rvHistory.setAdapter(mAdapter);
75
        mAdapter.setList();
76
77
        mDialog.setOnClickListener(v->{
78
            //todo 进入充电流程
79
            ProfileManager.getInstance().setLicensePlateHistory(mDialog.getLicensePlate());
80
            mAdapter.setList();
81
        });
82
83
        tvStartCharge.setOnClickListener(v->{
84
            String str = editText.getText().toString();
85
            if (str.equals("")){
86
                Toast.makeText(this, "请输入车牌号", Toast.LENGTH_SHORT).show();
87
                return;
88
            }
89
90
            mDialog.setLicensePlate(str);
91
            mDialog.show(getSupportFragmentManager());
92
93
        });
94
95
        rootView.setOnClickListener(v->{
96
            kingKeyboard.hide();
97
        });
98
    }
99
100
    private void registerKingKeyboard(){
101
        kingKeyboard = new KingKeyboard(this,mKeyboardParent);
102
        //然后将EditText注册到KingKeyboard即可
103
        kingKeyboard.register(editText, KingKeyboard.KeyboardType.LICENSE_PLATE_PROVINCE);
104
        editText.addTextChangedListener(new TextWatcher() {
105
            @Override
106
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
107
                beforeCount = s.toString().length();
108
            }
109
110
            @Override
111
            public void onTextChanged(CharSequence s, int start, int before, int count) {
112
                int length = s.toString().length();
113
                if (length == 0){
114
                    if(kingKeyboard.getKeyboardType() != KingKeyboard.KeyboardType.LICENSE_PLATE_PROVINCE){
115
                        kingKeyboard.sendKey(KingKeyboard.KEYCODE_BACK);
116
                    }
117
                }else if (length == 1){
118
                    if(beforeCount == 0 && kingKeyboard.getKeyboardType() == KingKeyboard.KeyboardType.LICENSE_PLATE_PROVINCE){
119
                        kingKeyboard.sendKey(KingKeyboard.KEYCODE_MODE_CHANGE);
120
                    }
121
                }else if (length >= 8){
122
                    kingKeyboard.hide();
123
                }
124
            }
125
126
            @Override
127
            public void afterTextChanged(Editable s) {
128
129
            }
130
        });
131
    }
132
133
    @Override
134
    protected void onResume() {
135
        super.onResume();
136
        kingKeyboard.onResume();
137
    }
138
139
    @Override
140
    protected void onDestroy() {
141
        super.onDestroy();
142
        kingKeyboard.onDestroy();
143
    }
144
145
146
    public static void actionStart(Context context,String pileId){
147
        Intent intent = new Intent(context, ChargingPileActivity.class);
148
        intent.putExtra(ChargingConstants.ORDERID,pileId);
149
        context.startActivity(intent);
150
    }
151
}

+ 6 - 0
app/src/main/java/com/electric/chargingpile/activity/ChargingStatusActivity.java

@ -326,6 +326,9 @@ public class ChargingStatusActivity extends Activity implements View.OnClickList
326 326
                if (ActivityUtils.isActivityExistsInStack(SelectPileActivity.class)) {
327 327
                    ActivityUtils.finishActivity(SelectPileActivity.class);
328 328
                }
329
                if (ActivityUtils.isActivityExistsInStack(ChargingPileActivity.class)) {
330
                    ActivityUtils.finishActivity(ChargingPileActivity.class);
331
                }
329 332
                finish();
330 333
                break;
331 334
        }
@ -344,6 +347,9 @@ public class ChargingStatusActivity extends Activity implements View.OnClickList
344 347
            if (ActivityUtils.isActivityExistsInStack(SelectPileActivity.class)) {
345 348
                ActivityUtils.finishActivity(SelectPileActivity.class);
346 349
            }
350
            if (ActivityUtils.isActivityExistsInStack(ChargingPileActivity.class)) {
351
                ActivityUtils.finishActivity(ChargingPileActivity.class);
352
            }
347 353
            finish();
348 354
            return true;
349 355
        }

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

@ -39,7 +39,9 @@ import okhttp3.Call;
39 39
import pub.devrel.easypermissions.AfterPermissionGranted;
40 40
import pub.devrel.easypermissions.AppSettingsDialog;
41 41
import pub.devrel.easypermissions.EasyPermissions;
42
42
/**
43
 * 输入桩编码
44
 * */
43 45
public class InputCodeActivity extends AutoLayoutActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks {
44 46
    private static final String TAG = "InputCodeActivity";
45 47
    private EditText et_code;
@ -237,6 +239,11 @@ public class InputCodeActivity extends AutoLayoutActivity implements View.OnClic
237 239
                intent1800.putExtra(ChargingConstants.ORDERID, pileId);
238 240
                startActivity(intent1800);
239 241
                break;
242
            case "1000":
243
                String data1000 = JsonUtils.getKeyResult(response, "data");
244
                String pileIds = JsonUtils.getKeyResult(data1000, "pileId");
245
                ChargingPileActivity.actionStart(this,pileIds);
246
                break;
240 247
            default:
241 248
                ToastUtil.showToast(getApplicationContext(), rtnMsg, Toast.LENGTH_SHORT);
242 249
                break;

+ 6 - 0
app/src/main/java/com/electric/chargingpile/activity/SelectPileActivity.java

@ -277,6 +277,12 @@ public class SelectPileActivity extends Activity implements View.OnClickListener
277 277
                intent1800.putExtra(ChargingConstants.ORDERID, pileId);
278 278
                startActivity(intent1800);
279 279
                break;
280
281
            case "1000":
282
                String data1000 = JsonUtils.getKeyResult(response, "data");
283
                String pileIds = JsonUtils.getKeyResult(data1000, "pileId");
284
                ChargingPileActivity.actionStart(this,pileIds);
285
                break;
280 286
            default:
281 287
                ToastUtil.showToast(getApplicationContext(), rtnMsg, Toast.LENGTH_SHORT);
282 288
                break;

+ 68 - 0
app/src/main/java/com/electric/chargingpile/adapter/LicensePlateHistoryAdapter.java

@ -0,0 +1,68 @@
1
package com.electric.chargingpile.adapter;
2
3
import android.preference.PreferenceManager;
4
import android.view.LayoutInflater;
5
import android.view.View;
6
import android.view.ViewGroup;
7
import android.widget.TextView;
8
9
import androidx.annotation.NonNull;
10
import androidx.recyclerview.widget.RecyclerView;
11
12
import com.electric.chargingpile.R;
13
import com.electric.chargingpile.manager.ProfileManager;
14
15
import org.jetbrains.annotations.NotNull;
16
17
18
import java.util.ArrayList;
19
20
public class LicensePlateHistoryAdapter extends RecyclerView.Adapter<LicensePlateHistoryAdapter.ViewHodler> {
21
    private ArrayList<String> mList = new ArrayList<String>();
22
    private ItemOnClickListener mListener = null;
23
24
    public void setListener(ItemOnClickListener listener) {
25
        this.mListener = listener;
26
    }
27
28
    public void setList(){
29
        mList.clear();
30
        mList.addAll( ProfileManager.getInstance().getLicensePlateHistory());
31
        notifyDataSetChanged();
32
    }
33
34
    @NonNull
35
    @NotNull
36
    @Override
37
    public ViewHodler onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
38
        View rootView = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_license_plate_history, parent, false);
39
        return new ViewHodler(rootView);
40
    }
41
42
    @Override
43
    public void onBindViewHolder(@NonNull @NotNull ViewHodler holder, int position) {
44
        String str = mList.get(position);
45
        holder.textView.setText(str);
46
        holder.textView.setOnClickListener(v->{
47
            mListener.OnClickListener(str);
48
        });
49
    }
50
51
    @Override
52
    public int getItemCount() {
53
        return mList.size();
54
    }
55
56
    public class ViewHodler extends RecyclerView.ViewHolder {
57
58
        private final TextView textView;
59
60
        public ViewHodler(@NonNull @NotNull View itemView) {
61
            super(itemView);
62
            textView = itemView.findViewById(R.id.tvLicensePlate);
63
        }
64
    }
65
    public interface ItemOnClickListener{
66
        void OnClickListener(String str);
67
    }
68
}

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

@ -101,13 +101,13 @@ public class MainApplication extends MultiDexApplication implements CameraXConfi
101 101
    public static String firstPoint = "";
102 102
    public static Boolean firstSsyd;
103 103
    public static String password = "";
104
//    public static String url = "http://59.110.68.162";// 充电桩测试环境
105
//    public static String pic_url = "http://59.110.68.162/zhannew/uploadfile/";
106
    public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
107
    public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
104
    public static String url = "http://59.110.68.162";// 充电桩测试环境
105
    public static String pic_url = "http://59.110.68.162/zhannew/uploadfile/";
106
//    public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
107
//    public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
108 108

109
//        public static String urlNew = "http://123.56.67.7:83/api/0300";// 一电测试环境
110
    public static String urlNew = "https://api.touchev.com:83/api/0300";// 一电正式环境
109
        public static String urlNew = "http://123.56.67.7:83/api/0300";// 一电测试环境
110
//    public static String urlNew = "https://api.touchev.com:83/api/0300";// 一电正式环境
111 111

112 112
    public static String d1evUrl = "https://d1ev-new.yiduyongche.com";// 评论上传视频
113 113
    public static String CDN = "https://cdn-fs.d1ev.com";

+ 30 - 0
app/src/main/java/com/electric/chargingpile/manager/ProfileManager.java

@ -2,6 +2,13 @@ package com.electric.chargingpile.manager;
2 2

3 3
import android.content.Context;
4 4

5
import com.electric.chargingpile.application.MainApplication;
6
import com.electric.chargingpile.entity.CarBrandGroupEntity;
7
import com.google.gson.Gson;
8
import com.google.gson.reflect.TypeToken;
9

10
import java.util.ArrayList;
11

5 12
public class ProfileManager {
6 13

7 14
    private static final String KEY_USERNAME = "key_username";
@ -76,6 +83,7 @@ public class ProfileManager {
76 83

77 84
    private static final String KEY_USER_CENTER_COUNT = "key_user_center_count";
78 85
    private static final String KEY_USER_CENTER_MAX_COUNT = "key_user_center_max_count";
86
    private static final String KEY_LICENSE_PLATE_HISTORY = "key_license_plate_history";
79 87

80 88
    private static ProfileManager instance;
81 89
    private String deviceId;
@ -732,5 +740,27 @@ public class ProfileManager {
732 740
        return PreferenceManager.getInstance(context).getInt(KEY_USER_CENTER_MAX_COUNT,3);
733 741
    }
734 742

743
    public void setLicensePlateHistory(String str) {
744
        ArrayList<String> list = getLicensePlateHistory();
745
        if (list.size() >= 6){
746
            list.remove(list.size() -1 );
747
        }
748

749
        list.remove(str);
750
        list.add(0,str);
751
        PreferenceManager.getInstance(MainApplication.context).putString(KEY_LICENSE_PLATE_HISTORY, new Gson().toJson(list));
752
    }
753

754
    public ArrayList<String> getLicensePlateHistory() {
755
        String str = PreferenceManager.getInstance(MainApplication.context).getString(KEY_LICENSE_PLATE_HISTORY, "");
756
        if (str.equals("")){
757
            return new ArrayList<>();
758
        }
759
        Gson gson = new Gson();
760
        ArrayList<String> strings = gson.fromJson(str, new TypeToken<ArrayList<String>>() {
761
        }.getType());
762
        return strings;
763
    }
764

735 765

736 766
}

+ 83 - 0
app/src/main/java/com/electric/chargingpile/view/ConfirmChargingDialog.java

@ -0,0 +1,83 @@
1
package com.electric.chargingpile.view;
2
3
import android.os.Bundle;
4
import android.view.LayoutInflater;
5
import android.view.View;
6
import android.view.ViewGroup;
7
import android.widget.TextView;
8
9
import androidx.annotation.NonNull;
10
import androidx.annotation.Nullable;
11
import androidx.fragment.app.DialogFragment;
12
import androidx.fragment.app.Fragment;
13
import androidx.fragment.app.FragmentManager;
14
import androidx.fragment.app.FragmentTransaction;
15
16
import com.electric.chargingpile.R;
17
18
import org.jetbrains.annotations.NotNull;
19
20
public class ConfirmChargingDialog  extends DialogFragment {
21
22
    private String licensePlate = "";
23
    private View.OnClickListener onClickListener;
24
25
    public void setOnClickListener(View.OnClickListener onClickListener) {
26
        this.onClickListener = onClickListener;
27
    }
28
29
    public String getLicensePlate() {
30
        return licensePlate;
31
    }
32
33
    public void setLicensePlate(String licensePlate) {
34
        this.licensePlate = licensePlate;
35
    }
36
37
    public static ConfirmChargingDialog newInstart(){
38
        return new ConfirmChargingDialog();
39
    }
40
41
    @Override
42
    public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
43
        super.onCreate(savedInstanceState);
44
        setStyle(DialogFragment.STYLE_NORMAL, R.style.TransparentVideoDialogFragmentTheme);
45
46
    }
47
    @Nullable
48
    @org.jetbrains.annotations.Nullable
49
    @Override
50
    public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
51
        View rootView = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_confirm_charging, container, false);
52
        return rootView;
53
    }
54
55
    @Override
56
    public void onViewCreated(@NonNull @NotNull View view, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
57
        super.onViewCreated(view, savedInstanceState);
58
        TextView tvTitle = view.findViewById(R.id.tvTitle);
59
60
        view.findViewById(R.id.tvRetransmit).setOnClickListener(v->{
61
            dismissAllowingStateLoss();
62
        });
63
        view.findViewById(R.id.tvCorrect).setOnClickListener(v->{
64
            //回调
65
            if (onClickListener !=null){
66
                onClickListener.onClick(v);
67
            }
68
            dismissAllowingStateLoss();
69
        });
70
        tvTitle.setText("请确认是否给\n车牌号"+licensePlate+"充电");
71
    }
72
73
    public void show(FragmentManager fragmentManager){
74
        FragmentTransaction ft = fragmentManager.beginTransaction();
75
        Fragment prev = fragmentManager.findFragmentByTag(ConfirmChargingDialog.class.getName());
76
        if (prev != null) {
77
            ft.remove(prev);
78
        }
79
        show(fragmentManager,ConfirmChargingDialog.class.getName());
80
        fragmentManager.executePendingTransactions();
81
    }
82
83
}

BIN
app/src/main/res/drawable-xhdpi/bg_chargin.webp


BIN
app/src/main/res/drawable-xhdpi/ic_charging_pile.webp


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

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3
    <item android:width="110dp" android:height="40dp">
4
        <shape android:shape="rectangle">
5
            <solid android:color="#ff3ec34c" />
6
            <corners android:radius="20dp" />
7
        </shape>
8
    </item>
9
</selector>

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

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3
    <item android:width="110dp" android:height="40dp">
4
        <shape android:shape="rectangle">
5
            <solid android:color="#ffececec" />
6
            <corners android:radius="20dp" />
7
        </shape>
8
    </item>
9
</selector>

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

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3
    <item android:width="251dp" android:height="34dp">
4
        <shape android:shape="rectangle">
5
            <stroke android:width="1dp" android:color="#ffe6e6e6" />
6
            <corners android:radius="4dp" />
7
        </shape>
8
    </item>
9
</selector>

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

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3
    <item android:width="351dp" android:height="42dp">
4
        <shape android:shape="rectangle">
5
            <solid android:color="#ff3ec34c" />
6
            <corners android:radius="6dp" />
7
        </shape>
8
    </item>
9
</selector>

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

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3
    <item android:width="94dp" android:height="34dp">
4
        <shape android:shape="rectangle">
5
            <stroke android:width="1dp" android:color="#ffe6e6e6" />
6
            <corners android:radius="4dp" />
7
        </shape>
8
    </item>
9
</selector>

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

@ -0,0 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3
    <item>
4
        <shape android:shape="rectangle">
5
            <solid android:color="@color/white" />
6
            <corners android:radius="8dp" />
7
        </shape>
8
    </item>
9
</selector>

+ 188 - 0
app/src/main/res/layout/activity_charging_pile.xml

@ -0,0 +1,188 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout 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/rootView"
6
    android:clickable="true"
7
    android:layout_width="match_parent"
8
    android:layout_height="match_parent"
9
    android:background="#F6F6F6"
10
    android:orientation="vertical">
11
12
    <RelativeLayout
13
        android:id="@+id/rl_title"
14
        android:layout_width="fill_parent"
15
        android:layout_height="44dp"
16
        android:background="@color/white"
17
        app:layout_constraintEnd_toEndOf="parent"
18
        app:layout_constraintStart_toStartOf="parent"
19
        app:layout_constraintTop_toTopOf="parent">
20
21
        <ImageView
22
            android:id="@+id/iv_back"
23
            android:layout_width="wrap_content"
24
            android:layout_height="match_parent"
25
            android:layout_alignParentStart="true"
26
            android:layout_centerVertical="true"
27
            android:contentDescription="@null"
28
            android:paddingLeft="15dp"
29
            android:paddingRight="15dp"
30
            android:src="@drawable/icon_lvback1119" />
31
32
        <TextView
33
            android:id="@+id/textview"
34
            android:layout_width="wrap_content"
35
            android:layout_height="wrap_content"
36
            android:layout_centerInParent="true"
37
            android:text="充电桩详情"
38
            android:textColor="#1A1B1F"
39
            android:textSize="18sp"
40
            android:textStyle="bold" />
41
    </RelativeLayout>
42
43
    <androidx.constraintlayout.widget.ConstraintLayout
44
        android:layout_width="match_parent"
45
        android:layout_height="wrap_content"
46
        android:layout_marginStart="12dp"
47
        android:layout_marginTop="12dp"
48
        android:layout_marginEnd="12dp"
49
        android:background="@drawable/bg_chargin"
50
        android:paddingStart="14dp"
51
        android:paddingTop="20dp"
52
        android:paddingEnd="14dp"
53
        android:paddingBottom="20dp"
54
        app:layout_constraintEnd_toEndOf="parent"
55
        app:layout_constraintStart_toStartOf="parent"
56
        app:layout_constraintTop_toBottomOf="@id/rl_title">
57
58
        <ImageView
59
            android:id="@+id/imgCover"
60
            android:layout_width="wrap_content"
61
            android:layout_height="wrap_content"
62
            android:src="@drawable/ic_charging_pile"
63
            app:layout_constraintStart_toStartOf="parent"
64
            app:layout_constraintTop_toTopOf="parent" />
65
66
        <TextView
67
            android:id="@+id/tvCoding"
68
            android:layout_width="wrap_content"
69
            android:layout_height="wrap_content"
70
            android:layout_marginTop="14dp"
71
            android:textColor="@color/white"
72
            android:textSize="14sp"
73
            app:layout_constraintStart_toStartOf="parent"
74
            app:layout_constraintTop_toBottomOf="@+id/imgCover"
75
            tools:text="充电桩编码:1076C004" />
76
77
        <TextView
78
            android:layout_width="wrap_content"
79
            android:layout_height="wrap_content"
80
            android:layout_marginTop="8dp"
81
            android:textColor="@color/white"
82
            android:textSize="14sp"
83
            app:layout_constraintStart_toStartOf="parent"
84
            app:layout_constraintTop_toBottomOf="@+id/tvCoding"
85
            tools:text="当前电价(元/度):1.50(含服务费)" />
86
    </androidx.constraintlayout.widget.ConstraintLayout>
87
88
    <androidx.constraintlayout.widget.ConstraintLayout
89
        android:layout_width="match_parent"
90
        android:layout_height="wrap_content"
91
        android:layout_marginStart="12dp"
92
        android:layout_marginTop="12dp"
93
        android:layout_marginEnd="12dp"
94
        android:background="@drawable/bg_white_radius8"
95
        android:paddingStart="14dp"
96
        android:paddingTop="20dp"
97
        android:paddingEnd="14dp"
98
        android:paddingBottom="20dp">
99
100
        <TextView
101
            android:id="@+id/tvNumberPlate"
102
            android:layout_width="wrap_content"
103
            android:layout_height="wrap_content"
104
            android:text="车牌号:"
105
            android:textColor="@color/color_0e0e0e"
106
            android:textSize="14sp"
107
            android:textStyle="bold"
108
            app:layout_constraintBottom_toBottomOf="@+id/et_carPlate"
109
            app:layout_constraintStart_toStartOf="parent"
110
            app:layout_constraintTop_toTopOf="@+id/et_carPlate" />
111
112
        <EditText
113
            android:id="@+id/et_carPlate"
114
            android:layout_width="0dp"
115
            android:layout_height="34dp"
116
            android:layout_marginStart="16dp"
117
            android:background="@drawable/bg_edit_radius4"
118
            android:hint="请输入车牌号"
119
            android:maxLength="8"
120
            android:maxLines="1"
121
            android:paddingStart="10dp"
122
            android:paddingEnd="10dp"
123
            android:textColor="@color/black"
124
            android:textSize="14sp"
125
            app:layout_constraintEnd_toEndOf="parent"
126
            app:layout_constraintStart_toEndOf="@+id/tvNumberPlate"
127
            app:layout_constraintTop_toTopOf="parent" />
128
129
        <TextView
130
            android:id="@+id/tvHint"
131
            android:layout_width="wrap_content"
132
            android:layout_height="wrap_content"
133
            android:layout_marginTop="12dp"
134
            android:text="*输入正确车牌号充电结束可获取停车优惠(注意大写)"
135
            android:textColor="#ff3ec34c"
136
            android:textSize="12sp"
137
            app:layout_constraintStart_toStartOf="parent"
138
            app:layout_constraintTop_toBottomOf="@+id/et_carPlate" />
139
140
        <TextView
141
            android:id="@+id/tvHistory"
142
            android:layout_width="wrap_content"
143
            android:layout_height="wrap_content"
144
            android:paddingTop="12dp"
145
            android:paddingBottom="12dp"
146
            android:text="历史记录"
147
            android:textColor="@color/color_0e0e0e"
148
            android:textSize="14sp"
149
            app:layout_constraintStart_toStartOf="parent"
150
            app:layout_constraintTop_toBottomOf="@+id/tvHint" />
151
152
        <androidx.recyclerview.widget.RecyclerView
153
            android:id="@+id/rvHistory"
154
            android:layout_width="match_parent"
155
            android:layout_height="wrap_content"
156
            app:layout_constraintTop_toBottomOf="@+id/tvHistory" />
157
158
159
    </androidx.constraintlayout.widget.ConstraintLayout>
160
161
    <View
162
        android:layout_width="1dp"
163
        android:layout_height="0dp"
164
        android:layout_weight="1" />
165
166
    <TextView
167
        android:id="@+id/tvStartCharge"
168
        android:layout_width="match_parent"
169
        android:layout_height="42dp"
170
        android:layout_marginStart="12dp"
171
        android:layout_marginEnd="12dp"
172
        android:background="@drawable/bg_start_charging"
173
        android:gravity="center"
174
        android:text="启动充电"
175
        android:layout_marginBottom="12dp"
176
        android:textColor="@color/white"
177
        android:textSize="16sp" />
178
179
180
    <LinearLayout
181
        android:id="@+id/keyboardParent"
182
        android:layout_width="match_parent"
183
        android:layout_height="wrap_content"
184
        android:orientation="vertical"
185
        app:layout_constraintBottom_toBottomOf="parent"
186
        app:layout_constraintLeft_toLeftOf="parent"
187
        app:layout_constraintRight_toRightOf="parent" />
188
</LinearLayout>

+ 60 - 0
app/src/main/res/layout/dialog_confirm_charging.xml

@ -0,0 +1,60 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:layout_width="match_parent"
4
    xmlns:tools="http://schemas.android.com/tools"
5
    xmlns:app="http://schemas.android.com/apk/res-auto"
6
    tools:background="#f1f1"
7
    android:layout_height="match_parent">
8
9
    <androidx.constraintlayout.widget.ConstraintLayout
10
        android:padding="20dp"
11
        android:layout_marginStart="50dp"
12
        android:background="@drawable/bg_while_radius16"
13
        android:layout_gravity="center"
14
        android:layout_marginEnd="50dp"
15
        android:layout_width="match_parent"
16
        android:layout_height="wrap_content">
17
18
        <TextView
19
            android:id="@+id/tvTitle"
20
            android:gravity="center"
21
            app:layout_constraintEnd_toEndOf="parent"
22
            app:layout_constraintStart_toStartOf="parent"
23
            app:layout_constraintTop_toTopOf="parent"
24
            android:layout_width="match_parent"
25
            android:layout_height="wrap_content"
26
            tools:text="请确认是否是给\n车牌号京AAL0207充电"
27
            android:textColor="#ff0e0e0e"
28
            android:textSize="18sp"
29
            />
30
31
        <TextView
32
            app:layout_constraintEnd_toStartOf="@+id/tvCorrect"
33
            android:id="@+id/tvRetransmit"
34
            android:layout_width="0dp"
35
            android:layout_height="40dp"
36
            android:layout_marginTop="16dp"
37
            android:gravity="center"
38
            android:text="重输"
39
            android:background="@drawable/bg_ececec_radius20"
40
            android:textColor="@color/black"
41
            android:textSize="16sp"
42
            app:layout_constraintStart_toStartOf="parent"
43
            app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
44
45
        <TextView
46
            android:background="@drawable/bg_3ec34c_radius20"
47
            android:layout_marginStart="16dp"
48
            android:id="@+id/tvCorrect"
49
            android:layout_width="0dp"
50
            android:layout_height="40dp"
51
            android:gravity="center"
52
            android:text="正确"
53
            android:textColor="@color/white"
54
            android:textSize="16sp"
55
            app:layout_constraintEnd_toEndOf="parent"
56
            app:layout_constraintStart_toEndOf="@+id/tvRetransmit"
57
            app:layout_constraintTop_toTopOf="@+id/tvRetransmit" />
58
    </androidx.constraintlayout.widget.ConstraintLayout>
59
60
</LinearLayout>

+ 18 - 0
app/src/main/res/layout/layout_license_plate_history.xml

@ -0,0 +1,18 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:layout_width="match_parent"
4
    android:layout_height="wrap_content"
5
    xmlns:tools="http://schemas.android.com/tools">
6
    <TextView
7
        android:id="@+id/tvLicensePlate"
8
        android:layout_marginBottom="8dp"
9
        android:background="@drawable/bg_white_radius4"
10
        android:padding="10dp"
11
        android:layout_width="wrap_content"
12
        android:layout_height="wrap_content"
13
        tools:text="京AAL0207"
14
        android:textColor="#ff9b9b9b"
15
        android:textSize="14sp"
16
        />
17
18
</LinearLayout>

+ 16 - 0
zxing/src/main/java/com/google/zxing/client/android/CaptureActivity.java

@ -1279,6 +1279,18 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
1279 1279
                intent1800.putExtra(ChargingConstants.ORDERID, pileId);
1280 1280
                startActivity(intent1800);
1281 1281
                break;
1282
1283
            case "1000":
1284
1285
                String data1000 = JsonUtils.getKeyResult(response, "data");
1286
                String pileId0 = JsonUtils.getKeyResult(data1000, "pileId");
1287
                Intent intent1000 = new Intent();
1288
1289
                intent1000.setClassName("com.electric.chargingpile",
1290
                        "com.electric.chargingpile.activity.ChargingPileActivity");
1291
                intent1000.putExtra(ChargingConstants.ORDERID, pileId0);
1292
                startActivity(intent1000);
1293
                break;
1282 1294
            default:
1283 1295
                new Handler().postDelayed(new Runnable() {
1284 1296
                    public void run() {
@ -1311,6 +1323,10 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
1311 1323
    }
1312 1324
1313 1325
    private void startCharging(String result) {
1326
        //http://h5.towatt.com/weixin/pro/pay/help.html?P00000178
1327
        String[] resultSplit = result.split("\\?");
1328
        String chargingPile = resultSplit[resultSplit.length - 1];
1329
1314 1330
        OkHttpUtils.get().url(UrlConstants.START_CHARGING_URL)
1315 1331
                .addParams(ChargingConstants.FLAG, numType)
1316 1332
                .addParams(ChargingConstants.URL, URLEncoder.encode(result))

+ 2 - 2
zxing/src/main/java/com/google/zxing/client/android/constant/UrlConstants.java

@ -1,8 +1,8 @@
1 1
package com.google.zxing.client.android.constant;
2 2
3 3
public interface UrlConstants {
4
    String HOST_URL = "http://cdz.evcharge.cc/zhannew/basic/web/index.php/";
5
//    String HOST_URL = "http://59.110.68.162/zhannew/basic/web/index.php/"; //测试链接
4
//    String HOST_URL = "http://cdz.evcharge.cc/zhannew/basic/web/index.php/";
5
    String HOST_URL = "http://59.110.68.162/zhannew/basic/web/index.php/"; //测试链接
6 6
7 7
    String USER_CHARGING_CHECK_URL = HOST_URL + "api/charge/check-user";
8 8
    String START_CHARGING_URL = HOST_URL + "api/charge/start";