Quellcode durchsuchen

回答及回复详情修改完成

huyuguo vor 4 Jahren
Ursprung
Commit
a6818ce9ae

+ 0 - 394
app/src/main/java/com/electric/chargingpile/activity/AlterOneActivity.java

669
            int currentapiVersion = Build.VERSION.SDK_INT;
669
            int currentapiVersion = Build.VERSION.SDK_INT;
670
            Log.e("currentapiVersion", "currentapiVersion====>" + currentapiVersion);
670
            Log.e("currentapiVersion", "currentapiVersion====>" + currentapiVersion);
671
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//���������
671
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//���������
672
//            if (currentapiVersion<24){
673
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));
672
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));
674
//            intent.putExtra(MediaStore.EXTRA_OUTPUT, cutImgUri);
675
            startActivityForResult(intent, PHOTO_REQUEST_CAMERA);
673
            startActivityForResult(intent, PHOTO_REQUEST_CAMERA);
676
//            }else {
677
//                ContentValues contentValues = new ContentValues(1);
678
//                contentValues.put(MediaStore.Images.Media.DATA, tempFile.getAbsolutePath());
679
//                Uri uri = getApplicationContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);
680
//                intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
681
//                startActivityForResult(intent, PHOTO_REQUEST_CAMERA);
682
//            }
683

684
        }
674
        }
685
//        }
686
    }
675
    }
687

676

688
//    public void photo() {
689
////        File photoFile = null;
690
////        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
691
////        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
692
////        startActivityForResult(intent, 0);
693
//        Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
694
//        startActivityForResult(openCameraIntent, TAKE_PICTURE);
695
////        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
696
////                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
697
////                                Environment.getExternalStorageDirectory(), "alterandroidapp.jpg")));
698
////                        ((Activity) mContext).startActivityForResult(intent, TAKE_PICTURE);
699
////        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
700
////        File file = new File(Environment.getExternalStorageDirectory() + "/myimage/", String.valueOf(System
701
////                .currentTimeMillis()) + ".jpg");
702
////        camePath = file.getPath();
703
////        Uri imageUri = Uri.fromFile(file);
704
////        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
705
////        startActivityForResult(intent, TAKE_PICTURE);
706
//    }
707

708
//    private void setPic() {
709
//        // Get the dimensions of the View
710
//        int targetW = mImageView.getWidth();
711
//        int targetH = mImageView.getHeight();
712
//
713
//        // Get the dimensions of the bitmap
714
//        BitmapFactory.Options bmOptions = new BitmapFactory.Options();
715
//        bmOptions.inJustDecodeBounds = true;
716
//        BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
717
//        int photoW = bmOptions.outWidth;
718
//        int photoH = bmOptions.outHeight;
719
//
720
//        // Determine how much to scale down the image
721
//        int scaleFactor = Math.min(photoW/targetW, photoH/targetH);
722
//
723
//        // Decode the image file into a Bitmap sized to fill the View
724
//        bmOptions.inJustDecodeBounds = false;
725
//        bmOptions.inSampleSize = scaleFactor;
726
//        bmOptions.inPurgeable = true;
727
//
728
//        Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
729
//        mImageView.setImageBitmap(bitmap);
730
//
731
//    }
732

733

734
    @Override
677
    @Override
735
    public void onClick(View v) {
678
    public void onClick(View v) {
736
        if (imm.isActive()) {
679
        if (imm.isActive()) {
749
                if (s.equals("") && s.trim().isEmpty() && Bimp.tempSelectBitmap.size() == 0) {
692
                if (s.equals("") && s.trim().isEmpty() && Bimp.tempSelectBitmap.size() == 0) {
750
                    Log.e("@@@", "@@@");
693
                    Log.e("@@@", "@@@");
751
                    showTextToast("请填写纠错信息");
694
                    showTextToast("请填写纠错信息");
752
//                    Toast.makeText(AlterOneActivity.this,"请填写纠错内容",Toast.LENGTH_SHORT).show();
753
                } else {
695
                } else {
754
                    Log.e("!!!", "!!!");
696
                    Log.e("!!!", "!!!");
755
                    createDialog();
697
                    createDialog();
756
                    new Thread(new Runnable() {
698
                    new Thread(new Runnable() {
757
                        @Override
699
                        @Override
758
                        public void run() {
700
                        public void run() {
759
//                            submit();
760
                            try {
701
                            try {
761
                                shite("");
702
                                shite("");
762
                            } catch (Exception e) {
703
                            } catch (Exception e) {
767
                        }
708
                        }
768
                    }).start();
709
                    }).start();
769
                }
710
                }
770

771
                break;
711
                break;
772
//            case R.id.tv_work_start_time:
773
//                if (tpd_open == null) {
774
//                    TimePickerDialog.OnTimeSetListener otsl = new TimePickerDialog.OnTimeSetListener() {
775
//                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
776
//                            open_time.setText(((hourOfDay < 10 ? 0 + " " + hourOfDay : hourOfDay) + " : " + (minute < 10 ? 0 + " " + minute : minute)).toString());
777
//                            //close_time.setText(((hourOfDay < 10 ? 0 +""+ hourOfDay : hourOfDay)+":"+(minute<10?0+""+minute:minute)).toString());
778
//                            tpd_open.dismiss();
779
//                        }
780
//                    };
781
//                    Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
782
//                    int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
783
//                    int minute = calendar.get(Calendar.MINUTE);
784
//                    tpd_open = new TimePickerDialog(this, otsl, hourOfDay, minute, true);
785
//                }
786
//                tpd_open.show();
787
//                break;
788
//
789
//            case R.id.tv_work_stop_time:
790
//                if (tpd_close == null) {
791
//                    TimePickerDialog.OnTimeSetListener otsl = new TimePickerDialog.OnTimeSetListener() {
792
//                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
793
//                            //open_time.setText(((hourOfDay < 10 ? 0 +""+ hourOfDay : hourOfDay)+":"+(minute<10?0+""+minute:minute)).toString());
794
//                            close_time.setText(((hourOfDay < 10 ? 0 + " " + hourOfDay : hourOfDay) + " : " + (minute < 10 ? 0 + " " + minute : minute)).toString());
795
//                            tpd_close.dismiss();
796
//                        }
797
//                    };
798
//                    Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
799
//                    int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
800
//                    int minute = calendar.get(Calendar.MINUTE);
801
//                    tpd_close = new TimePickerDialog(this, otsl, hourOfDay, minute, true);
802
//                }
803
//                tpd_close.show();
804
//                break;
805
//
806
//            case R.id.tv_relax_start_time:
807
//                if (tpd_holiday_open == null) {
808
//                    TimePickerDialog.OnTimeSetListener otsl = new TimePickerDialog.OnTimeSetListener() {
809
//                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
810
//                            holiday_open.setText(((hourOfDay < 10 ? 0 + " " + hourOfDay : hourOfDay) + " : " + (minute < 10 ? 0 + " " + minute : minute)).toString());
811
//                            //close_time.setText(((hourOfDay < 10 ? 0 +""+ hourOfDay : hourOfDay)+":"+(minute<10?0+""+minute:minute)).toString());
812
//                            tpd_holiday_open.dismiss();
813
//                        }
814
//                    };
815
//                    Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
816
//                    int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
817
//                    int minute = calendar.get(Calendar.MINUTE);
818
//                    tpd_holiday_open = new TimePickerDialog(this, otsl, hourOfDay, minute, true);
819
//                }
820
//                tpd_holiday_open.show();
821
//                break;
822
//
823
//            case R.id.tv_relax_stop_time:
824
//                if (tpd_holiday_close == null) {
825
//                    TimePickerDialog.OnTimeSetListener otsl = new TimePickerDialog.OnTimeSetListener() {
826
//                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
827
//                            holiday_close.setText(((hourOfDay < 10 ? 0 + " " + hourOfDay : hourOfDay) + " : " + (minute < 10 ? 0 + " " + minute : minute)).toString());
828
//                            //close_time.setText(((hourOfDay < 10 ? 0 +""+ hourOfDay : hourOfDay)+":"+(minute<10?0+""+minute:minute)).toString());
829
//                            tpd_holiday_close.dismiss();
830
//                        }
831
//                    };
832
//                    Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
833
//                    int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
834
//                    int minute = calendar.get(Calendar.MINUTE);
835
//                    tpd_holiday_close = new TimePickerDialog(this, otsl, hourOfDay, minute, true);
836
//                }
837
//                tpd_holiday_close.show();
838
//                break;
839
            case R.id.iv_detail:
712
            case R.id.iv_detail:
840
                startActivity(new Intent());
713
                startActivity(new Intent());
841
                break;
714
                break;
842

843
//                if (checkText()) {
844
//                    fast_num,slow_num,open_object,charge_cost,park_cost,other_cost,
845
//                            charge_style,park_style,other_style;
846
//                    intent.putExtra("et_name", et_name.getText().toString());
847
//                    intent.putExtra("et_phone", et_phone.getText().toString());
848
//                    intent.putExtra("fast_num", fast_num.getText().toString());
849
//                    intent.putExtra("slow_num", slow_num.getText().toString());
850
//                    intent.putExtra("open_object", open_object.getText().toString());
851
//                    intent.putExtra("charge_cost", charge_cost.getText().toString());
852
//                    intent.putExtra("park_cost", park_cost.getText().toString());
853
//                    intent.putExtra("other_cost", other_cost.getText().toString());
854
//                    intent.putExtra("charge_style", charge_style.getText().toString());
855
//                    intent.putExtra("park_style", park_style.getText().toString());
856
//                    intent.putExtra("other_style", other_style.getText().toString());
857
//                    intent.putExtra("tv_operation_state", tv_operation_state.getText().toString());
858
//                    intent.putExtra("tv_suit_detail", tv_suit_detail.getText().toString());
859
//                    intent.putExtra("tv_belong_detail", tv_belong_detail.getText().toString());
860
//                    intent.putExtra("open_time", open_time.getText().toString());
861
//                    intent.putExtra("close_time", close_time.getText().toString());
862
//                    intent.putExtra("holiday_open", holiday_open.getText().toString());
863
//                    intent.putExtra("holiday_close", holiday_close.getText().toString());
864

865
//                    this.finish();
866
//                }
867
            case R.id.iv_back:
715
            case R.id.iv_back:
868
                finish();
716
                finish();
869
                break;
717
                break;
870
//            case R.id.rl_suit_car:
871
//                String[] changeSelect = {"国标充电", "特斯拉", "德系"};
872
//                new AlertDialog.Builder(AlterOneActivity.this)
873
//                        .setTitle("请选择")
874
//                        .setItems(changeSelect, new DialogInterface.OnClickListener() {
875
//                            @Override
876
//                            public void onClick(DialogInterface dialog, int which) {
877
//                                switch (which) {
878
//                                    case 0:
879
//                                        tv_suit_detail.setText("国标充电");
880
//                                        break;
881
//                                    case 1:
882
//                                        tv_suit_detail.setText("特斯拉");
883
//                                        break;
884
//                                    case 2:
885
//                                        tv_suit_detail.setText("德系");
886
//                                        break;
887
//                                    default:
888
//                                        break;
889
//                                }
890
//                            }
891
//                        })
892
//                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
893
//                            @Override
894
//                            public void onClick(DialogInterface dialog, int which) {
895
//                                dialog.cancel();
896
//                            }
897
//                        }).show();
898
//                break;
899
//            case R.id.rl_state:
900
//                final String[] operationSelect = {"正常", "故障", "废弃", "调试"};
901
//                new AlertDialog.Builder(AlterOneActivity.this)
902
//                        .setTitle("请选择")
903
//                        .setItems(operationSelect, new DialogInterface.OnClickListener() {
904
//                            @Override
905
//                            public void onClick(DialogInterface dialog, int which) {
906
//                                switch (which) {
907
//                                    case 0:
908
//                                        tv_operation_state.setText(operationSelect[0]);
909
//                                        break;
910
//                                    case 1:
911
//                                        tv_operation_state.setText(operationSelect[1]);
912
//                                        break;
913
//                                    case 2:
914
//                                        tv_operation_state.setText(operationSelect[2]);
915
//                                        break;
916
//                                    case 3:
917
//                                        tv_operation_state.setText(operationSelect[3]);
918
//                                    default:
919
//                                        break;
920
//                                }
921
//                            }
922
//                        })
923
//                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
924
//                            @Override
925
//                            public void onClick(DialogInterface dialog, int which) {
926
//                                dialog.cancel();
927
//                            }
928
//                        }).show();
929
//                break;
930
//            case R.id.rl_belong:
931
//                final String[] belongSelect = {"企业", "私人"};
932
//                new AlertDialog.Builder(AlterOneActivity.this)
933
//                        .setTitle("请选择")
934
//                        .setItems(belongSelect, new DialogInterface.OnClickListener() {
935
//                            @Override
936
//                            public void onClick(DialogInterface dialog, int which) {
937
//                                switch (which) {
938
//                                    case 0:
939
//                                        tv_belong_detail.setText(belongSelect[0]);
940
//                                        break;
941
//                                    case 1:
942
//                                        tv_belong_detail.setText(belongSelect[1]);
943
////                                        tv_work_style.setText("联系人");
944
////                                        et_name.setText("王先生");
945
//                                        break;
946
//                                    default:
947
//                                        break;
948
//                                }
949
//                            }
950
//                        })
951
//                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
952
//                            @Override
953
//                            public void onClick(DialogInterface dialog, int which) {
954
//                                dialog.cancel();
955
//                            }
956
//                        }).show();
957
//                break;
958

959
//            case R.id.iv_photo1:
960
//                LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
961
//                popupWindowView = inflater.inflate(R.layout.popupwindow_upload, null);
962
//                popupWindow = new PopupWindow(popupWindowView,
963
//                        ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
964
//                        true);
965
//                popupWindow.setBackgroundDrawable(new BitmapDrawable());
966
//                // 设置PopupWindow的弹出和消失效果
967
//                popupWindow.setAnimationStyle(R.style.popupAnimation);
968
////                confirmButton = (Button) popupWindowView
969
////                        .findViewById(R.id.confirmButton);
970
////                confirmButton.setOnClickListener(new OnClickListener() {
971
////                    @Override
972
////                    public void onClick(View view) {
973
////                        popupWindow.dismiss();
974
////                    }
975
////                });
976
//                cancleButton = (Button) popupWindowView
977
//                        .findViewById(R.id.cancleButton);
978
//                cancleButton.setOnClickListener(new View.OnClickListener() {
979
//                    @Override
980
//                    public void onClick(View view) {
981
//                        popupWindow.dismiss();
982
//                    }
983
//                });
984
//                btn_one = (Button) popupWindowView.findViewById(R.id.tvTwo);
985
//                btn_one.setOnClickListener(new View.OnClickListener() {
986
//                    @Override
987
//                    public void onClick(View view) {
988
//                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
989
//                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
990
//                                Environment.getExternalStorageDirectory(), "alterandroidapp.jpg")));
991
//                        ((Activity) mContext).startActivityForResult(intent, 2);
992
//                        popupWindow.dismiss();
993
//                    }
994
//                });
995
//                btn_two = (Button) popupWindowView.findViewById(R.id.tvThree);
996
//                btn_two.setOnClickListener(new View.OnClickListener() {
997
//                    @Override
998
//                    public void onClick(View view) {
999
//                        Intent intent = new Intent(Intent.ACTION_PICK, null);
1000
//                        intent.setDataAndType(
1001
//                                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
1002
//                                "image/*");
1003
//                        startActivityForResult(intent, 1);
1004
//                        popupWindow.dismiss();
1005
//                    }
1006
//                });
1007
//                popupWindow.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
1008
//
1009
//
1010
//                break;
1011

1012
//            case R.id.iv_photo2:
1013
//                LayoutInflater inflater2 = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
1014
//                popupWindowView = inflater2.inflate(R.layout.popupwindow_upload, null);
1015
//                popupWindow = new PopupWindow(popupWindowView,
1016
//                        ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
1017
//                        true);
1018
//                popupWindow.setBackgroundDrawable(new BitmapDrawable());
1019
//                // 设置PopupWindow的弹出和消失效果
1020
//                popupWindow.setAnimationStyle(R.style.popupAnimation);
1021
////                confirmButton = (Button) popupWindowView
1022
////                        .findViewById(R.id.confirmButton);
1023
////                confirmButton.setOnClickListener(new OnClickListener() {
1024
////                    @Override
1025
////                    public void onClick(View view) {
1026
////                        popupWindow.dismiss();
1027
////                    }
1028
////                });
1029
//                Button cancleButton2 = (Button) popupWindowView
1030
//                        .findViewById(R.id.cancleButton);
1031
//                cancleButton2.setOnClickListener(new View.OnClickListener() {
1032
//                    @Override
1033
//                    public void onClick(View view) {
1034
//                        popupWindow.dismiss();
1035
//                    }
1036
//                });
1037
//                Button btn_one2 = (Button) popupWindowView.findViewById(R.id.tvTwo);
1038
//                btn_one2.setOnClickListener(new View.OnClickListener() {
1039
//                    @Override
1040
//                    public void onClick(View view) {
1041
//                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
1042
//                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
1043
//                                Environment.getExternalStorageDirectory(), "androidapp.jpg")));
1044
//                        ((Activity) mContext).startActivityForResult(intent, 5);
1045
//                        popupWindow.dismiss();
1046
//                    }
1047
//                });
1048
//                Button btn_two2 = (Button) popupWindowView.findViewById(R.id.tvThree);
1049
//                btn_two2.setOnClickListener(new View.OnClickListener() {
1050
//                    @Override
1051
//                    public void onClick(View view) {
1052
//                        Intent intent = new Intent(Intent.ACTION_PICK, null);
1053
//                        intent.setDataAndType(
1054
//                                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
1055
//                                "image/*");
1056
//                        startActivityForResult(intent, 4);
1057
//                        popupWindow.dismiss();
1058
//                    }
1059
//                });
1060
//                popupWindow.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
1061
//                break;
1062
//            case R.id.iv_photo3:
1063
//                LayoutInflater inflater3 = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
1064
//                popupWindowView = inflater3.inflate(R.layout.popupwindow_upload, null);
1065
//                popupWindow = new PopupWindow(popupWindowView,
1066
//                        ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
1067
//                        true);
1068
//                popupWindow.setBackgroundDrawable(new BitmapDrawable());
1069
//                // 设置PopupWindow的弹出和消失效果
1070
//                popupWindow.setAnimationStyle(R.style.popupAnimation);
1071
////                confirmButton = (Button) popupWindowView
1072
////                        .findViewById(R.id.confirmButton);
1073
////                confirmButton.setOnClickListener(new OnClickListener() {
1074
////                    @Override
1075
////                    public void onClick(View view) {
1076
////                        popupWindow.dismiss();
1077
////                    }
1078
////                });
1079
//                Button cancleButton3 = (Button) popupWindowView
1080
//                        .findViewById(R.id.cancleButton);
1081
//                cancleButton3.setOnClickListener(new View.OnClickListener() {
1082
//                    @Override
1083
//                    public void onClick(View view) {
1084
//                        popupWindow.dismiss();
1085
//                    }
1086
//                });
1087
//                Button btn_one3 = (Button) popupWindowView.findViewById(R.id.tvTwo);
1088
//                btn_one3.setOnClickListener(new View.OnClickListener() {
1089
//                    @Override
1090
//                    public void onClick(View view) {
1091
//                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
1092
//                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
1093
//                                Environment.getExternalStorageDirectory(), "androidapp.jpg")));
1094
//                        ((Activity) mContext).startActivityForResult(intent, 8);
1095
//                        popupWindow.dismiss();
1096
//                    }
1097
//                });
1098
//                Button btn_two3 = (Button) popupWindowView.findViewById(R.id.tvThree);
1099
//                btn_two3.setOnClickListener(new View.OnClickListener() {
1100
//                    @Override
1101
//                    public void onClick(View view) {
1102
//                        Intent intent = new Intent(Intent.ACTION_PICK, null);
1103
//                        intent.setDataAndType(
1104
//                                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
1105
//                                "image/*");
1106
//                        startActivityForResult(intent, 7);
1107
//                        popupWindow.dismiss();
1108
//                    }
1109
//                });
1110
//                popupWindow.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
1111
//                break;
1112
        }
718
        }
1113

719

1114

720


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

91
    private void getIntentData() {
91
    private void getIntentData() {
92
        id = getIntent().getStringExtra("id");
92
        id = getIntent().getStringExtra("id");
93
        tag = getIntent().getStringExtra("tag");
93
        tag = getIntent().getStringExtra("tag");
94
//        Log.e(TAG, "getIntentData: id=" + id);
95
    }
94
    }
96
95
97
    private void initViews() {
96
    private void initViews() {
144
        } else {
143
        } else {
145
            url = MainApplication.url + "/zhannew/basic/web/index.php/question/answer-detail?id=" + id;
144
            url = MainApplication.url + "/zhannew/basic/web/index.php/question/answer-detail?id=" + id;
146
        }
145
        }
147
//        Log.e(TAG, "getAnswerDetails: url="+url );
148
        OkHttpUtils.get().url(url).build().readTimeOut(10000).connTimeOut(10000).execute(new StringCallback() {
146
        OkHttpUtils.get().url(url).build().readTimeOut(10000).connTimeOut(10000).execute(new StringCallback() {
149
            @Override
147
            @Override
150
            public void onError(Call call, Exception e) {
148
            public void onError(Call call, Exception e) {
154
152
155
            @Override
153
            @Override
156
            public void onResponse(String response) {
154
            public void onResponse(String response) {
157
//                Log.e(TAG, "onResponse: " + response);
158
                loadingDialog.dismiss();
155
                loadingDialog.dismiss();
159
                try {
156
                try {
160
                    String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
157
                    String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
228
            for (int i = 0; i < textList.size(); i++) {
225
            for (int i = 0; i < textList.size(); i++) {
229
                String text = textList.get(i);
226
                String text = textList.get(i);
230
                if (text.contains("<cdz img") && text.contains("src=") && text.contains("width=") && text.contains("height=")) {
227
                if (text.contains("<cdz img") && text.contains("src=") && text.contains("width=") && text.contains("height=")) {
231
                    Log.e(TAG, "showEditData——text: " + text);
232
                    String imagePath = StringUtils.getImgSrc(text);
228
                    String imagePath = StringUtils.getImgSrc(text);
233
                    String width = StringUtils.getImgSrcW(text);
229
                    String width = StringUtils.getImgSrcW(text);
234
                    String height = StringUtils.getImgSrcH(text);
230
                    String height = StringUtils.getImgSrcH(text);
235
                    String new_s = imagePath + "&" + width + "&" + height;
231
                    String new_s = imagePath + "&" + width + "&" + height;
236
                    Log.e(TAG, "showEditData_new_s: " + new_s);
237
                    if (new_s.contains("http") && new_s.contains("//")) {
232
                    if (new_s.contains("http") && new_s.contains("//")) {
238
                        subscriber.onNext(new_s);
233
                        subscriber.onNext(new_s);
239
                    }
234
                    }
271
        tv_a_content.post(new Runnable() {
266
        tv_a_content.post(new Runnable() {
272
            @Override
267
            @Override
273
            public void run() {
268
            public void run() {
274
                //showEditData(myContent);
275
                tv_a_content.clearAllLayout();
269
                tv_a_content.clearAllLayout();
276
                showDataSync(answer);
270
                showDataSync(answer);
277
            }
271
            }

+ 27 - 28
app/src/main/java/com/electric/chargingpile/activity/ChargingCommentActivity.java

53
import com.electric.chargingpile.util.BarColorUtil;
53
import com.electric.chargingpile.util.BarColorUtil;
54
import com.electric.chargingpile.util.Bimp;
54
import com.electric.chargingpile.util.Bimp;
55
import com.electric.chargingpile.util.DES3;
55
import com.electric.chargingpile.util.DES3;
56
import com.electric.chargingpile.util.FileUtils;
56
import com.electric.chargingpile.util.ImageItem;
57
import com.electric.chargingpile.util.ImageItem;
57
import com.electric.chargingpile.util.ImageUtils;
58
import com.electric.chargingpile.util.ImageUtils;
58
import com.electric.chargingpile.util.JsonUtils;
59
import com.electric.chargingpile.util.JsonUtils;
68
import com.electric.chargingpile.view.REditText;
69
import com.electric.chargingpile.view.REditText;
69
import com.electric.chargingpile.view.RatingBarView;
70
import com.electric.chargingpile.view.RatingBarView;
70
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
71
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
72
import com.zhihu.matisse.Matisse;
73
import com.zhihu.matisse.MimeType;
74
import com.zhihu.matisse.engine.impl.GlideEngine;
75
import com.zhihu.matisse.internal.entity.CaptureStrategy;
71
import com.zhy.http.okhttp.OkHttpUtils;
76
import com.zhy.http.okhttp.OkHttpUtils;
72
import com.zhy.http.okhttp.callback.StringCallback;
77
import com.zhy.http.okhttp.callback.StringCallback;
73
import com.zhy.view.flowlayout.FlowLayout;
78
import com.zhy.view.flowlayout.FlowLayout;
155
    private String isShow = "0";
160
    private String isShow = "0";
156
    private HongBaoDialog hongBaoDialog;
161
    private HongBaoDialog hongBaoDialog;
157
    private static final int RC_ALBUM_PERM = 123;
162
    private static final int RC_ALBUM_PERM = 123;
163
    public static final int REQUEST_CODE_CHOOSE = 335;
158
    //输入表情前EditText中的文本
164
    //输入表情前EditText中的文本
159
//    private String inputAfterText;
165
//    private String inputAfterText;
160
    Handler handler = new Handler() {
166
    Handler handler = new Handler() {
553
     * 调用图库选择
559
     * 调用图库选择
554
     */
560
     */
555
    private void callGallery() {
561
    private void callGallery() {
556
        Log.e(TAG, "callGallery: " + (Bimp.max - Bimp.tempSelectBitmap.size()));
557
        //调用第三方图库选择
558
        PhotoPicker.builder()
559
                .setPhotoCount(PIC_NUM - Bimp.tempSelectBitmap.size())//可选择图片数量
560
                .setShowCamera(true)//是否显示拍照按钮
561
                .setShowGif(true)//是否显示动态图
562
                .setPreviewEnabled(true)//是否可以预览
563
                .start(this, PhotoPicker.REQUEST_CODE);
562
        Matisse.from(ChargingCommentActivity.this)
563
                .choose(MimeType.of(MimeType.JPEG, MimeType.PNG, MimeType.GIF))
564
                .countable(true)
565
                .maxSelectable(PIC_NUM - Bimp.tempSelectBitmap.size())
566
                .capture(true)
567
                .captureStrategy(new CaptureStrategy(true, "com.electric.chargingpile.provider"))
568
                .imageEngine(new GlideEngine())
569
                .forResult(REQUEST_CODE_CHOOSE);
564
    }
570
    }
565
571
566
    @Override
572
    @Override
570
            if (data != null) {
576
            if (data != null) {
571
                if (requestCode == 1) {
577
                if (requestCode == 1) {
572
                    //处理调用系统图库
578
                    //处理调用系统图库
573
                } else if (requestCode == PhotoPicker.REQUEST_CODE) {
579
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
574
                    //异步方式插入图片
580
                    //异步方式插入图片
575
                    insertImagesSync(data);
581
                    insertImagesSync(data);
576
                }
582
                }
590
            public void subscribe(ObservableEmitter<String> subscriber) throws Exception {
596
            public void subscribe(ObservableEmitter<String> subscriber) throws Exception {
591
597
592
                try {
598
                try {
593
                    ArrayList<String> photos = data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS);
594
                    //可以同时插入多张图片
595
                    for (String imagePath : photos) {
596
597
                        Log.e(TAG, "call: imagePath " + imagePath);
598
                        Bitmap bitmap = BitmapFactory.decodeFile(imagePath);//压缩图片
599
                        if (ImageUtils.readPictureDegree(imagePath) != 0) {
600
                            bitmap = imageZoom(ImageUtils.toturn(bitmap));
601
                        } else {
602
                            bitmap = imageZoom(bitmap);
603
                        }
599
                    List<Uri> uriList = Matisse.obtainResult(data);
600
                    for (Uri uri : uriList) {
601
                        Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
602
                        File file = FileUtils.from(ChargingCommentActivity.this, uri);
603
604
                        bitmap = FileUtils.rotateIfRequired(file, bitmap);
605
                        bitmap = imageZoom(bitmap);
604
                        ImageItem takePhoto = new ImageItem();
606
                        ImageItem takePhoto = new ImageItem();
605
                        takePhoto.setBitmap(bitmap);
607
                        takePhoto.setBitmap(bitmap);
606
                        takePhoto.setImagePath(imagePath);
607
                        Bimp.tempSelectBitmap.add(takePhoto);
608
                        Bimp.tempSelectBitmap.add(takePhoto);
608
                        subscriber.onNext(imagePath);
609
                        subscriber.onNext("");
609
                    }
610
                    }
610
                    subscriber.onComplete();
611
                    subscriber.onComplete();
611
                } catch (Exception e) {
612
                } catch (Exception e) {
1044
    public void permissionTask() {
1045
    public void permissionTask() {
1045
        if (isPermissionOK()) {
1046
        if (isPermissionOK()) {
1046
            callGallery();
1047
            callGallery();
1047
            // Have permission, do the thing!
1048
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
1049
//            ifTimeout();
1050
        } else {
1048
        } else {
1051
            // Ask for one permission
1052
            EasyPermissions.requestPermissions(
1049
            EasyPermissions.requestPermissions(
1053
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
1050
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
1054
                    RC_ALBUM_PERM,
1051
                    RC_ALBUM_PERM,
1055
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
1052
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
1056
                    Manifest.permission.READ_EXTERNAL_STORAGE);
1053
                    Manifest.permission.READ_EXTERNAL_STORAGE,
1054
                    Manifest.permission.CAMERA);
1057
        }
1055
        }
1058
    }
1056
    }
1059
1057
1060
    private boolean isPermissionOK() {
1058
    private boolean isPermissionOK() {
1061
        return EasyPermissions.hasPermissions(this,
1059
        return EasyPermissions.hasPermissions(this,
1062
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
1060
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
1063
                Manifest.permission.READ_EXTERNAL_STORAGE
1061
                Manifest.permission.READ_EXTERNAL_STORAGE,
1062
                Manifest.permission.CAMERA
1064
        );
1063
        );
1065
    }
1064
    }
1066
1065

+ 0 - 172
app/src/main/java/com/electric/chargingpile/activity/ClaimDataActivity.java

581
        }
581
        }
582
    }
582
    }
583
583
584
//    @Override
585
//    public void onClick(View view) {
586
//        switch (view.getId()){
587
//            case R.id.ll_addPhoto:
588
////                CharSequence[] items = { "手机相册","拍照" };
589
////                // CharSequence[] items = { "手机相册", "手机拍照" };
590
////                imageChooseItem(items);
591
//                LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
592
//                popupWindowView = inflater.inflate(R.layout.popupwindow_upload, null);
593
//                popupWindow = new PopupWindow(popupWindowView,
594
//                        ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
595
//                        true);
596
//                popupWindow.setBackgroundDrawable(new BitmapDrawable());
597
//                // 设置PopupWindow的弹出和消失效果
598
//                popupWindow.setAnimationStyle(R.style.popupAnimation);
599
////                confirmButton = (Button) popupWindowView
600
////                        .findViewById(R.id.confirmButton);
601
////                confirmButton.setOnClickListener(new OnClickListener() {
602
////                    @Override
603
////                    public void onClick(View view) {
604
////                        popupWindow.dismiss();
605
////                    }
606
////                });
607
//                cancleButton = (Button) popupWindowView
608
//                        .findViewById(R.id.cancleButton);
609
//                cancleButton.setOnClickListener(new View.OnClickListener() {
610
//                    @Override
611
//                    public void onClick(View view) {
612
//                        popupWindow.dismiss();
613
//                    }
614
//                });
615
//                btn_one = (Button) popupWindowView.findViewById(R.id.tvTwo);
616
//                btn_one.setOnClickListener(new View.OnClickListener() {
617
//                    @Override
618
//                    public void onClick(View view) {
619
//                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
620
//                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
621
//                                Environment.getExternalStorageDirectory(), "androidapp.jpg")));
622
//                        ((Activity) mContext).startActivityForResult(intent, 2);
623
//                        popupWindow.dismiss();
624
//                    }
625
//                });
626
//                btn_two = (Button) popupWindowView.findViewById(R.id.tvThree);
627
//                btn_two.setOnClickListener(new View.OnClickListener() {
628
//                    @Override
629
//                    public void onClick(View view) {
630
//                        Intent intent = new Intent(Intent.ACTION_PICK, null);
631
//                        intent.setDataAndType(
632
//                                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
633
//                                "image/*");
634
//                        startActivityForResult(intent, 1);
635
//                        popupWindow.dismiss();
636
//                    }
637
//                });
638
//                popupWindow.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
639
//                break;
640
//            case R.id.ll_uploadPhoto:
641
////                CharSequence[] itemss = { "手机相册","拍照" };
642
////                // CharSequence[] items = { "手机相册", "手机拍照" };
643
////                imageChooseItems(itemss);
644
//                LayoutInflater inflater1 = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
645
//                popupWindowView = inflater1.inflate(R.layout.popupwindow_upload, null);
646
//                popupWindow = new PopupWindow(popupWindowView,
647
//                        ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
648
//                        true);
649
//                popupWindow.setBackgroundDrawable(new BitmapDrawable());
650
//                // 设置PopupWindow的弹出和消失效果
651
//                popupWindow.setAnimationStyle(R.style.popupAnimation);
652
////                confirmButton = (Button) popupWindowView
653
////                        .findViewById(R.id.confirmButton);
654
////                confirmButton.setOnClickListener(new OnClickListener() {
655
////                    @Override
656
////                    public void onClick(View view) {
657
////                        popupWindow.dismiss();
658
////                    }
659
////                });
660
//                cancleButton = (Button) popupWindowView
661
//                        .findViewById(R.id.cancleButton);
662
//                cancleButton.setOnClickListener(new View.OnClickListener() {
663
//                    @Override
664
//                    public void onClick(View view) {
665
//                        popupWindow.dismiss();
666
//                    }
667
//                });
668
//                btn_one = (Button) popupWindowView.findViewById(R.id.tvTwo);
669
//                btn_one.setOnClickListener(new View.OnClickListener() {
670
//                    @Override
671
//                    public void onClick(View view) {
672
//                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
673
//                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
674
//                                Environment.getExternalStorageDirectory(), "androidapp.jpg")));
675
//                        ((Activity) mContext).startActivityForResult(intent, 2);
676
//                        popupWindow.dismiss();
677
//                    }
678
//                });
679
//                btn_two = (Button) popupWindowView.findViewById(R.id.tvThree);
680
//                btn_two.setOnClickListener(new View.OnClickListener() {
681
//                    @Override
682
//                    public void onClick(View view) {
683
//                        Intent intent = new Intent(Intent.ACTION_PICK, null);
684
//                        intent.setDataAndType(
685
//                                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
686
//                                "image/*");
687
//                        startActivityForResult(intent, 1);
688
//                        popupWindow.dismiss();
689
//                    }
690
//                });
691
//                popupWindow.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
692
//                break;
693
//        }
694
//    }
695
696
    /**
697
     * 操作选择
698
     *
699
     * @param items
700
     */
701
//    protected void imageChooseItem(CharSequence[] items) {
702
//        AlertDialog imageDialog = new AlertDialog.Builder(mContext)
703
//                .setTitle("请选择")
704
//                .setItems(items, new DialogInterface.OnClickListener() {
705
//                    public void onClick(DialogInterface dialog, int item) {
706
//                        // 手机选图
707
//                        if (item == 0) {
708
//
709
//                            Intent intent = new Intent(Intent.ACTION_PICK, null);
710
//                            intent.setDataAndType(
711
//                                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
712
//                                    "image/*");
713
//                            startActivityForResult(intent, 1);
714
//                        }
715
//                        // 拍照
716
//                        else if (item == 1) {
717
//                            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
718
//                            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
719
//                                    Environment.getExternalStorageDirectory(), "androidapp.jpg")));
720
//                            ((Activity) mContext).startActivityForResult(intent, 2);
721
//                        }
722
//                    }
723
//                }).create();
724
//
725
//        imageDialog.show();
726
//    }
727
//
728
//    protected void imageChooseItems(CharSequence[] itemss) {
729
//        AlertDialog imageDialog = new AlertDialog.Builder(mContext)
730
//                .setTitle("请选择")
731
//                .setItems(itemss, new DialogInterface.OnClickListener() {
732
//                    public void onClick(DialogInterface dialog, int item) {
733
//                        // 手机选图
734
//                        if (item == 0) {
735
//
736
//                            Intent intent = new Intent(Intent.ACTION_PICK, null);
737
//                            intent.setDataAndType(
738
//                                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
739
//                                    "image/*");
740
//                            startActivityForResult(intent, 1);
741
//                        }
742
//                        // 拍照
743
//                        else if (item == 1) {
744
//                            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
745
//                            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
746
//                                    Environment.getExternalStorageDirectory(), "androidapp.jpg")));
747
//                            ((Activity) mContext).startActivityForResult(intent, 2);
748
//                        }
749
//                    }
750
//                }).create();
751
//
752
//        imageDialog.show();
753
//    }
754
//
755
756
    /**
584
    /**
757
     * 裁剪图片方法实现 @param uri
585
     * 裁剪图片方法实现 @param uri
758
     */
586
     */

+ 68 - 79
app/src/main/java/com/electric/chargingpile/activity/EditAnswerActivity.java

7
import android.graphics.Bitmap;
7
import android.graphics.Bitmap;
8
import android.graphics.BitmapFactory;
8
import android.graphics.BitmapFactory;
9
import android.graphics.Matrix;
9
import android.graphics.Matrix;
10
import android.net.Uri;
10
import android.os.Bundle;
11
import android.os.Bundle;
11
import android.os.Handler;
12
import android.os.Handler;
13
12
import androidx.appcompat.app.AppCompatActivity;
14
import androidx.appcompat.app.AppCompatActivity;
15
13
import android.util.DisplayMetrics;
16
import android.util.DisplayMetrics;
14
import android.util.Log;
17
import android.util.Log;
15
import android.util.TypedValue;
18
import android.util.TypedValue;
28
import com.electric.chargingpile.application.MainApplication;
31
import com.electric.chargingpile.application.MainApplication;
29
import com.electric.chargingpile.util.AndroidBug5497Workaround;
32
import com.electric.chargingpile.util.AndroidBug5497Workaround;
30
import com.electric.chargingpile.util.BarColorUtil;
33
import com.electric.chargingpile.util.BarColorUtil;
34
import com.electric.chargingpile.util.FileUtils;
35
import com.electric.chargingpile.util.ImageItem;
31
import com.electric.chargingpile.util.ImageUitl;
36
import com.electric.chargingpile.util.ImageUitl;
32
import com.electric.chargingpile.util.ImageUtils;
37
import com.electric.chargingpile.util.ImageUtils;
33
import com.electric.chargingpile.util.JsonUtils;
38
import com.electric.chargingpile.util.JsonUtils;
37
import com.electric.chargingpile.view.CarTypeDialog;
42
import com.electric.chargingpile.view.CarTypeDialog;
38
import com.electric.chargingpile.view.xrichtext.RichTextEditorForA;
43
import com.electric.chargingpile.view.xrichtext.RichTextEditorForA;
39
import com.electric.chargingpile.view.xrichtext.SDCardUtil;
44
import com.electric.chargingpile.view.xrichtext.SDCardUtil;
45
import com.zhihu.matisse.Matisse;
46
import com.zhihu.matisse.MimeType;
47
import com.zhihu.matisse.engine.impl.GlideEngine;
48
import com.zhihu.matisse.internal.entity.CaptureStrategy;
40
import com.zhy.http.okhttp.OkHttpUtils;
49
import com.zhy.http.okhttp.OkHttpUtils;
41
import com.zhy.http.okhttp.callback.StringCallback;
50
import com.zhy.http.okhttp.callback.StringCallback;
42
51
78
    private RelativeLayout rl_root, rl_point;
87
    private RelativeLayout rl_root, rl_point;
79
    public static android.view.animation.Animation animation;
88
    public static android.view.animation.Animation animation;
80
    private LinearLayout ll;
89
    private LinearLayout ll;
90
    private Bitmap insertBitmap;
81
    private static final int RC_ALBUM_PERM = 123;
91
    private static final int RC_ALBUM_PERM = 123;
82
92
    public static final int REQUEST_CODE_CHOOSE = 338;
83
93
84
    @Override
94
    @Override
85
    protected void onCreate(Bundle savedInstanceState) {
95
    protected void onCreate(Bundle savedInstanceState) {
177
                    @Override
187
                    @Override
178
                    public void onError(Throwable e) {
188
                    public void onError(Throwable e) {
179
                        loadingDialog.dismiss();
189
                        loadingDialog.dismiss();
180
//                        ToastUtil.showToast(getApplicationContext(),"解析错误:图片不存在或已损坏",Toast.LENGTH_SHORT);
181
                    }
190
                    }
182
191
183
192
206
215
207
            for (int i = 0; i < textList.size(); i++) {
216
            for (int i = 0; i < textList.size(); i++) {
208
                String text = textList.get(i);
217
                String text = textList.get(i);
209
//                Log.e(TAG, "showEditData: "+text );
210
                if (text.contains("<cdz img")) {
218
                if (text.contains("<cdz img")) {
211
                    String imagePath = StringUtils.getImgSrc(text);
219
                    String imagePath = StringUtils.getImgSrc(text);
212
//                    Log.e(TAG, "showEditData: imagePath= "+imagePath );
213
                    if (new File(imagePath).exists()) {
220
                    if (new File(imagePath).exists()) {
214
                        subscriber.onNext(imagePath);
221
                        subscriber.onNext(imagePath);
215
                    } else {
222
                    } else {
255
     */
262
     */
256
    private String getEditData() {
263
    private String getEditData() {
257
        List<RichTextEditorForA.EditData> editList = et_new_content.buildEditData();
264
        List<RichTextEditorForA.EditData> editList = et_new_content.buildEditData();
258
//        for (int i=0;i<editList.size();i++){
259
////            Log.e(TAG, "getEditData"+i+": "+editList.get(i).imagePath );
260
//        }
261
        StringBuffer content = new StringBuffer();
265
        StringBuffer content = new StringBuffer();
262
//        StringBuffer contentt = new StringBuffer();
263
        for (RichTextEditorForA.EditData itemData : editList) {
266
        for (RichTextEditorForA.EditData itemData : editList) {
264
            if (itemData.inputStr != null) {
267
            if (itemData.inputStr != null) {
265
                content.append(itemData.inputStr);
268
                content.append(itemData.inputStr);
266
//                contentt.append(itemData.inputStr);
267
                //Log.d("RichEditor", "commit inputStr=" + itemData.inputStr);
268
            } else if (itemData.imagePath != null) {
269
            } else if (itemData.imagePath != null) {
269
                Bitmap bitmap = BitmapFactory.decodeFile(itemData.imagePath);
270
                Bitmap bitmap = BitmapFactory.decodeFile(itemData.imagePath);
270
                int width = bitmap.getWidth();
271
                int width = bitmap.getWidth();
274
                    String key = (String) keys.next();
275
                    String key = (String) keys.next();
275
                    if (itemData.imagePath.equals(key)) {
276
                    if (itemData.imagePath.equals(key)) {
276
                        content.append("<cdz img src=\"").append(map.get(itemData.imagePath)).append("\" width=" + "\"" + width + "\"" + " height=" + "\"" + height + "\" /cdz>");
277
                        content.append("<cdz img src=\"").append(map.get(itemData.imagePath)).append("\" width=" + "\"" + width + "\"" + " height=" + "\"" + height + "\" /cdz>");
277
//                        contentt.append("<cdz img src=\"").append(itemData.imagePath).append("\" width="+"\""+width+"\""+" height="+"\""+height+"\" /cdz>");
278
                    }
278
                    }
279
                }
279
                }
280
280
281
                //Log.d("RichEditor", "commit imgePath=" + itemData.imagePath);
282
                //imageList.add(itemData.imagePath);
283
            }
281
            }
284
        }
282
        }
285
//        MainApplication.q_content = contentt.toString();
286
//        MainApplication.q_map.putAll(map);
287
//        Log.e(TAG, "getEditData_content: "+content.toString() );
288
//        Log.e(TAG, "getEditData_contentt: "+contentt.toString() );
289
        return content.toString();
283
        return content.toString();
290
    }
284
    }
291
285
304
            double i = mid / maxSize;
298
            double i = mid / maxSize;
305
            // 开始压缩 此处用到平方根 将宽带和高度压缩掉对应的平方根倍
299
            // 开始压缩 此处用到平方根 将宽带和高度压缩掉对应的平方根倍
306
            // (1.保持刻度和高度和原bitmap比率一致,压缩后也达到了最大大小占用空间的大小)
300
            // (1.保持刻度和高度和原bitmap比率一致,压缩后也达到了最大大小占用空间的大小)
307
            bm = zoomImage(bm, bm.getWidth() / Math.sqrt(i), bm.getHeight()
308
                    / Math.sqrt(i));
301
            bm = zoomImage(bm, bm.getWidth() / Math.sqrt(i), bm.getHeight() / Math.sqrt(i));
309
        }
302
        }
310
303
311
304
323
        float scaleHeight = ((float) newHeight) / height;
316
        float scaleHeight = ((float) newHeight) / height;
324
        // 缩放图片动作
317
        // 缩放图片动作
325
        matrix.postScale(scaleWidth, scaleHeight);
318
        matrix.postScale(scaleWidth, scaleHeight);
326
        Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
327
                (int) height, matrix, true);
328
//        iv_2.setImageBitmap(bitmap);
329
//        tv_2.setText(bitmap.getRowBytes() * bitmap.getHeight() + "");
319
        Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width, (int) height, matrix, true);
330
        return bitmap;
320
        return bitmap;
331
    }
321
    }
332
322
344
334
345
                try {
335
                try {
346
                    et_new_content.measure(0, 0);
336
                    et_new_content.measure(0, 0);
347
                    int width = ScreenUtils.getScreenWidth(EditAnswerActivity.this);
348
                    int height = ScreenUtils.getScreenHeight(EditAnswerActivity.this);
349
                    ArrayList<String> photos = data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS);
350
                    //可以同时插入多张图片
351
                    for (String imagePath : photos) {
352
                        //Log.i("NewActivity", "###path=" + imagePath);
353
                        Bitmap bitmap = ImageUitl.getSmallBitmap(imagePath, width, height);//压缩图片
354
                        if (ImageUtils.readPictureDegree(imagePath) != 0) {
355
                            bitmap = imageZoom(ImageUtils.toturn(bitmap));
356
                        } else {
357
                            bitmap = imageZoom(bitmap);
358
                        }
359
//                        Log.e(TAG, "call: "+imagePath );
360
                        c_path = imagePath;
361
                        //bitmap = BitmapFactory.decodeFile(imagePath);
362
                        imagePath = SDCardUtil.saveToSdCard(bitmap);
363
                        u_path = imagePath;
364
//                        Log.e(TAG, "call: "+imagePath );
365
                        //Log.i("NewActivity", "###imagePath="+imagePath);
366
                        subscriber.onNext(imagePath);
367
                    }
337
                    List<Uri> uriList = Matisse.obtainResult(data);
338
                    Uri uri = uriList.get(0);
339
                    Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
340
                    File file = FileUtils.from(EditAnswerActivity.this, uri);
341
342
                    bitmap = FileUtils.rotateIfRequired(file, bitmap);
343
                    bitmap = imageZoom(bitmap);
344
                    insertBitmap = bitmap;
345
346
                    u_path = SDCardUtil.saveToSdCard(bitmap);
347
348
                    subscriber.onNext(u_path);
368
                    subscriber.onComplete();
349
                    subscriber.onComplete();
369
                } catch (Exception e) {
350
                } catch (Exception e) {
370
                    e.printStackTrace();
351
                    e.printStackTrace();
378
                    @Override
359
                    @Override
379
                    public void onComplete() {
360
                    public void onComplete() {
380
                        insertDialog.dismiss();
361
                        insertDialog.dismiss();
381
                        compressAndUpload(c_path, u_path);
362
                        //compressAndUpload(c_path, u_path);
363
                        uploadPic(insertBitmap, u_path);
382
                    }
364
                    }
383
365
384
                    @Override
366
                    @Override
385
                    public void onError(Throwable e) {
367
                    public void onError(Throwable e) {
386
                        insertDialog.dismiss();
368
                        insertDialog.dismiss();
387
//                        Log.e(TAG, "onError: "+ "图片插入失败:"+e.getMessage());
388
                        ToastUtil.showToast(getApplicationContext(), "图片插入失败", Toast.LENGTH_SHORT);
369
                        ToastUtil.showToast(getApplicationContext(), "图片插入失败", Toast.LENGTH_SHORT);
389
                    }
370
                    }
390
371
402
383
403
    private void compressAndUpload(String path, final String u_path) {
384
    private void compressAndUpload(String path, final String u_path) {
404
        loadingDialog.show();
385
        loadingDialog.show();
405
//        Log.e(TAG, "compressAndUpload: path= "+path );
406
        File file = new File(path);
386
        File file = new File(path);
407
//        Log.e(TAG, "compressAndUpload: length= "+file.length()/1024+"kb" );
408
        Luban.with(EditAnswerActivity.this).load(file).setCompressListener(new OnCompressListener() {
387
        Luban.with(EditAnswerActivity.this).load(file).setCompressListener(new OnCompressListener() {
409
            @Override
388
            @Override
410
            public void onStart() {
389
            public void onStart() {
411
412
            }
390
            }
413
391
414
            @Override
392
            @Override
415
            public void onSuccess(File file) {
393
            public void onSuccess(File file) {
416
//                Log.e(TAG, "onSuccess: path= "+file.getPath() );
417
//                Log.e(TAG, "onSuccess: length= "+file.length()/1024+"kb" );
418
                uploadPic(file.getPath(), u_path);
394
                uploadPic(file.getPath(), u_path);
419
            }
395
            }
420
396
426
    }
402
    }
427
403
428
    private void uploadPic(String picPath, final String path) {
404
    private void uploadPic(String picPath, final String path) {
429
//        Log.e(TAG, "uploadPic: path= "+picPath );
430
//        Log.e(TAG, "uploadPic: length= "+new File(picPath).length()/1024+"kb" );
431
        Bitmap bitmap = BitmapFactory.decodeFile(picPath);
405
        Bitmap bitmap = BitmapFactory.decodeFile(picPath);
432
//        Log.e(TAG, "uploadPic: bit= "+bitmap.ge()/1024+"kb" );
433
434
        String url = MainApplication.url + "/zhannew/basic/web/index.php/fileupload/uploadone";
406
        String url = MainApplication.url + "/zhannew/basic/web/index.php/fileupload/uploadone";
435
        OkHttpUtils.post().url(url).
407
        OkHttpUtils.post().url(url).
436
                addParams("file", ImageUitl.bitmapToString(picPath)).
408
                addParams("file", ImageUitl.bitmapToString(picPath)).
439
                .build().execute(new StringCallback() {
411
                .build().execute(new StringCallback() {
440
            @Override
412
            @Override
441
            public void onError(Call call, Exception e) {
413
            public void onError(Call call, Exception e) {
442
414
                e.printStackTrace();
443
            }
415
            }
444
416
445
            @Override
417
            @Override
446
            public void onResponse(String response) {
418
            public void onResponse(String response) {
447
                loadingDialog.dismiss();
419
                loadingDialog.dismiss();
448
//                Log.e(TAG, "onResponse: "+response );
449
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
420
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
450
                if ("01".equals(rtnCode)) {
421
                if ("01".equals(rtnCode)) {
451
                    String fileUrl = JsonUtils.getKeyResult(response, "fileUrl");
422
                    String fileUrl = JsonUtils.getKeyResult(response, "fileUrl");
452
                    map.put(path, fileUrl);
423
                    map.put(path, fileUrl);
453
                    et_new_content.addEditTextAtIndex(et_new_content.getLastIndex(), " ");
424
                    et_new_content.addEditTextAtIndex(et_new_content.getLastIndex(), " ");
454
                    ToastUtil.showToast(getApplicationContext(), "图片插入成功", Toast.LENGTH_SHORT);
425
                    ToastUtil.showToast(getApplicationContext(), "图片插入成功", Toast.LENGTH_SHORT);
455
//                    Log.e(TAG, "onResponse: map的key="+path+"的value="+map.get(path) );
456
                } else {
426
                } else {
457
                    ToastUtil.showToast(getApplicationContext(), "图片插入失败", Toast.LENGTH_SHORT);
427
                    ToastUtil.showToast(getApplicationContext(), "图片插入失败", Toast.LENGTH_SHORT);
458
                }
428
                }
459
            }
429
            }
460
        });
430
        });
431
    }
432
433
    private void uploadPic(Bitmap bitmap, final String path) {
434
        String url = MainApplication.url + "/zhannew/basic/web/index.php/fileupload/uploadone";
435
        OkHttpUtils.post().url(url).
436
                addParams("file", FileUtils.bitmapToString(bitmap)).
437
                addParams("filename", "android.jpg").
438
                addParams("id", creat_id)
439
                .build().execute(new StringCallback() {
440
            @Override
441
            public void onError(Call call, Exception e) {
442
                e.printStackTrace();
443
            }
461
444
445
            @Override
446
            public void onResponse(String response) {
447
                loadingDialog.dismiss();
448
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
449
                if ("01".equals(rtnCode)) {
450
                    String fileUrl = JsonUtils.getKeyResult(response, "fileUrl");
451
                    map.put(path, fileUrl);
452
                    et_new_content.addEditTextAtIndex(et_new_content.getLastIndex(), " ");
453
                    ToastUtil.showToast(getApplicationContext(), "图片插入成功", Toast.LENGTH_SHORT);
454
                } else {
455
                    ToastUtil.showToast(getApplicationContext(), "图片插入失败", Toast.LENGTH_SHORT);
456
                }
457
            }
458
        });
462
    }
459
    }
463
460
464
    @Override
461
    @Override
506
     * 调用图库选择
503
     * 调用图库选择
507
     */
504
     */
508
    private void callGallery() {
505
    private void callGallery() {
509
        //调用第三方图库选择
510
        PhotoPicker.builder()
511
                .setPhotoCount(1)//可选择图片数量
512
                .setShowCamera(true)//是否显示拍照按钮
513
                .setShowGif(true)//是否显示动态图
514
                .setPreviewEnabled(true)//是否可以预览
515
                .start(this, PhotoPicker.REQUEST_CODE);
506
        Matisse.from(EditAnswerActivity.this)
507
                .choose(MimeType.of(MimeType.JPEG, MimeType.PNG, MimeType.GIF))
508
                .countable(true)
509
                .maxSelectable(1)
510
                .capture(true)
511
                .captureStrategy(new CaptureStrategy(true, "com.electric.chargingpile.provider"))
512
                .imageEngine(new GlideEngine())
513
                .forResult(REQUEST_CODE_CHOOSE);
516
    }
514
    }
517
515
518
    @Override
516
    @Override
522
            if (data != null) {
520
            if (data != null) {
523
                if (requestCode == 1) {
521
                if (requestCode == 1) {
524
                    //处理调用系统图库
522
                    //处理调用系统图库
525
                } else if (requestCode == PhotoPicker.REQUEST_CODE) {
523
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
526
                    //异步方式插入图片
524
                    //异步方式插入图片
527
                    insertImagesSync(data);
525
                    insertImagesSync(data);
528
                }
526
                }
543
541
544
            @Override
542
            @Override
545
            public void onResponse(String response) {
543
            public void onResponse(String response) {
546
//                Log.e(TAG, "onResponse: id"+response );
547
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
544
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
548
                if ("01".equals(rtnCode)) {
545
                if ("01".equals(rtnCode)) {
549
                    String rtnMsg = JsonUtils.getKeyResult(response, "rtnMsg");
546
                    String rtnMsg = JsonUtils.getKeyResult(response, "rtnMsg");
577
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
574
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
578
                String rtnMsg = JsonUtils.getKeyResult(response, "rtnMsg");
575
                String rtnMsg = JsonUtils.getKeyResult(response, "rtnMsg");
579
                if ("01".equals(rtnCode)) {
576
                if ("01".equals(rtnCode)) {
580
//                    QaActivity.isRefresh = true;
581
                    QuestionActivity.isRefresh = true;
577
                    QuestionActivity.isRefresh = true;
582
578
583
                    String plusScore = JsonUtils.getKeyResult(rtnMsg, "plusScore");
579
                    String plusScore = JsonUtils.getKeyResult(rtnMsg, "plusScore");
622
                                }
618
                                }
623
                            }
619
                            }
624
                        }, 1500);
620
                        }, 1500);
625
626
                    }
621
                    }
627
628
629
                } else {
622
                } else {
630
                    ToastUtil.showToast(getApplicationContext(), rtnMsg, Toast.LENGTH_SHORT);
623
                    ToastUtil.showToast(getApplicationContext(), rtnMsg, Toast.LENGTH_SHORT);
631
                }
624
                }
645
638
646
    @Override
639
    @Override
647
    public void onPermissionsGranted(int requestCode, List<String> perms) {
640
    public void onPermissionsGranted(int requestCode, List<String> perms) {
648
649
    }
641
    }
650
642
651
    @Override
643
    @Override
652
    public void onPermissionsDenied(int requestCode, List<String> perms) {
644
    public void onPermissionsDenied(int requestCode, List<String> perms) {
653
654
    }
645
    }
655
646
656
    @AfterPermissionGranted(RC_ALBUM_PERM)
647
    @AfterPermissionGranted(RC_ALBUM_PERM)
657
    public void permissionTask() {
648
    public void permissionTask() {
658
        if (isPermissionOK()) {
649
        if (isPermissionOK()) {
659
            callGallery();
650
            callGallery();
660
            // Have permission, do the thing!
661
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
662
//            ifTimeout();
663
        } else {
651
        } else {
664
            // Ask for one permission
665
            EasyPermissions.requestPermissions(
652
            EasyPermissions.requestPermissions(
666
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
653
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
667
                    RC_ALBUM_PERM,
654
                    RC_ALBUM_PERM,
668
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
655
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
669
                    Manifest.permission.READ_EXTERNAL_STORAGE);
656
                    Manifest.permission.READ_EXTERNAL_STORAGE,
657
                    Manifest.permission.CAMERA);
670
        }
658
        }
671
    }
659
    }
672
660
673
    private boolean isPermissionOK() {
661
    private boolean isPermissionOK() {
674
        return EasyPermissions.hasPermissions(this,
662
        return EasyPermissions.hasPermissions(this,
675
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
663
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
676
                Manifest.permission.READ_EXTERNAL_STORAGE
664
                Manifest.permission.READ_EXTERNAL_STORAGE,
665
                Manifest.permission.CAMERA
677
        );
666
        );
678
    }
667
    }
679
}
668
}

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

115
    LoadingDialog dialog;
115
    LoadingDialog dialog;
116
    private ProgressDialog insertDialog;
116
    private ProgressDialog insertDialog;
117
    private static final int RC_ALBUM_PERM = 123;
117
    private static final int RC_ALBUM_PERM = 123;
118
    public static final int REQUEST_CODE_CHOOSE = 333;
118
    public static final int REQUEST_CODE_CHOOSE = 337;
119
    private Handler handler = new Handler() {
119
    private Handler handler = new Handler() {
120
        // 主线程通过这个方法处理消息
120
        // 主线程通过这个方法处理消息
121
        @Override
121
        @Override

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

1928
1928
1929
            @Override
1929
            @Override
1930
            public void onResponse(String response) {
1930
            public void onResponse(String response) {
1931
//                LogUtils.e(response);
1932
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
1931
                String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
1933
                if ("0".equals(rtnCode)) {
1932
                if ("0".equals(rtnCode)) {
1934
                    String data = JsonUtils.getKeyResult(response, "data");
1933
                    String data = JsonUtils.getKeyResult(response, "data");
1949
    }
1948
    }
1950
1949
1951
    private void dealUpdateData(List<UpdateZhanDataBean> list) {
1950
    private void dealUpdateData(List<UpdateZhanDataBean> list) {
1952
//        LogUtils.e(list.size());
1953
        String dbPath = "/data/user/0/com.electric.chargingpile/databases/zhan_list";
1951
        String dbPath = "/data/user/0/com.electric.chargingpile/databases/zhan_list";
1954
        try {
1952
        try {
1955
            SQLiteDatabase db = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);
1953
            SQLiteDatabase db = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);

+ 4 - 2
app/src/main/java/com/electric/chargingpile/activity/ShareTwoEditActivity.java

971
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
971
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
972
                    RC_ALBUM_PERM,
972
                    RC_ALBUM_PERM,
973
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
973
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
974
                    Manifest.permission.READ_EXTERNAL_STORAGE);
974
                    Manifest.permission.READ_EXTERNAL_STORAGE,
975
                    Manifest.permission.CAMERA);
975
        }
976
        }
976
    }
977
    }
977
978
978
    private boolean isPermissionOK() {
979
    private boolean isPermissionOK() {
979
        return EasyPermissions.hasPermissions(this,
980
        return EasyPermissions.hasPermissions(this,
980
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
981
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
981
                Manifest.permission.READ_EXTERNAL_STORAGE
982
                Manifest.permission.READ_EXTERNAL_STORAGE,
983
                Manifest.permission.CAMERA
982
        );
984
        );
983
    }
985
    }
984
986

+ 0 - 18
app/src/main/java/com/electric/chargingpile/activity/UserInfoActivity.java

553
     * 调用图库选择
553
     * 调用图库选择
554
     */
554
     */
555
    private void callGallery() {
555
    private void callGallery() {
556
//        Log.e(TAG, "callGallery: "+ (Bimp.max - Bimp.tempSelectBitmap.size() ));
557
        //调用第三方图库选择
556
        //调用第三方图库选择
558
        PhotoPicker.builder()
557
        PhotoPicker.builder()
559
                .setPhotoCount(1)//可选择图片数量
558
                .setPhotoCount(1)//可选择图片数量
635
        });
634
        });
636
        // 设置PopupWindow的弹出和消失效果
635
        // 设置PopupWindow的弹出和消失效果
637
        popupWindow.setAnimationStyle(R.style.popupAnimation);
636
        popupWindow.setAnimationStyle(R.style.popupAnimation);
638
//                confirmButton = (Button) popupWindowView
639
//                        .findViewById(R.id.confirmButton);
640
//                confirmButton.setOnClickListener(new OnClickListener() {
641
//                    @Override
642
//                    public void onClick(View view) {
643
//                        popupWindow.dismiss();
644
//                    }
645
//                });
646
        cancleButton = (Button) popupWindowView
637
        cancleButton = (Button) popupWindowView
647
                .findViewById(R.id.cancleButton);
638
                .findViewById(R.id.cancleButton);
648
        cancleButton.setOnClickListener(new View.OnClickListener() {
639
        cancleButton.setOnClickListener(new View.OnClickListener() {
702
                Bitmap bm = imageZoom(photo);
693
                Bitmap bm = imageZoom(photo);
703
                ss = bitmapToBase64(bm);
694
                ss = bitmapToBase64(bm);
704
            }
695
            }
705
//            else{
706
//                ss =bitmapToBase64(selectbm);
707
//            }
708
709
            par.put("file", ss);
696
            par.put("file", ss);
710
            par.put("filename", "androidapp.jpg");
697
            par.put("filename", "androidapp.jpg");
711
        } catch (Exception e) {
698
        } catch (Exception e) {
762
    @AfterPermissionGranted(RC_CAMERA_PERM)
749
    @AfterPermissionGranted(RC_CAMERA_PERM)
763
    public void cameraTask() {
750
    public void cameraTask() {
764
        if (hasCameraPermission()) {
751
        if (hasCameraPermission()) {
765
            // Have permission, do the thing!
766
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
767
            showWindow();
752
            showWindow();
768
        } else {
753
        } else {
769
            // Ask for one permission
754
            // Ask for one permission
804
         */
789
         */
805
        Intent intent = new Intent("com.android.camera.action.CROP");
790
        Intent intent = new Intent("com.android.camera.action.CROP");
806
        intent.setDataAndType(uri, "image/*");
791
        intent.setDataAndType(uri, "image/*");
807
//        Uri cropUri = Uri.fromFile(new File(
808
//                Environment.getExternalStorageDirectory() + "cdz_icon.png"));
809
//        intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
810
        intent.putExtra("crop", "true");
792
        intent.putExtra("crop", "true");
811
        // aspectX aspectY 是宽高的比例
793
        // aspectX aspectY 是宽高的比例
812
        intent.putExtra("aspectX", 1);
794
        intent.putExtra("aspectX", 1);

+ 29 - 32
app/src/main/java/com/electric/chargingpile/activity/ZhanCommentActivity.java

51
import com.electric.chargingpile.util.BarColorUtil;
51
import com.electric.chargingpile.util.BarColorUtil;
52
import com.electric.chargingpile.util.Bimp;
52
import com.electric.chargingpile.util.Bimp;
53
import com.electric.chargingpile.util.DES3;
53
import com.electric.chargingpile.util.DES3;
54
import com.electric.chargingpile.util.FileUtils;
54
import com.electric.chargingpile.util.ImageItem;
55
import com.electric.chargingpile.util.ImageItem;
55
import com.electric.chargingpile.util.ImageUtils;
56
import com.electric.chargingpile.util.ImageUtils;
56
import com.electric.chargingpile.util.JsonUtils;
57
import com.electric.chargingpile.util.JsonUtils;
64
import com.electric.chargingpile.util.UploadUtil;
65
import com.electric.chargingpile.util.UploadUtil;
65
import com.electric.chargingpile.view.REditText;
66
import com.electric.chargingpile.view.REditText;
66
import com.electric.chargingpile.view.RatingBarView;
67
import com.electric.chargingpile.view.RatingBarView;
68
import com.zhihu.matisse.Matisse;
69
import com.zhihu.matisse.MimeType;
70
import com.zhihu.matisse.engine.impl.GlideEngine;
71
import com.zhihu.matisse.internal.entity.CaptureStrategy;
67
import com.zhy.http.okhttp.OkHttpUtils;
72
import com.zhy.http.okhttp.OkHttpUtils;
68
import com.zhy.http.okhttp.callback.StringCallback;
73
import com.zhy.http.okhttp.callback.StringCallback;
69
import com.zhy.view.flowlayout.FlowLayout;
74
import com.zhy.view.flowlayout.FlowLayout;
138
    public static ImageView point;
143
    public static ImageView point;
139
    private InputMethodManager imm = null;
144
    private InputMethodManager imm = null;
140
    private static final int RC_ALBUM_PERM = 123;
145
    private static final int RC_ALBUM_PERM = 123;
146
    public static final int REQUEST_CODE_CHOOSE = 336;
141
    Handler handler = new Handler() {
147
    Handler handler = new Handler() {
142
        public void handleMessage(Message msg) {
148
        public void handleMessage(Message msg) {
143
            switch (msg.what) {
149
            switch (msg.what) {
543
     * 调用图库选择
549
     * 调用图库选择
544
     */
550
     */
545
    private void callGallery() {
551
    private void callGallery() {
546
        Log.e(TAG, "callGallery: " + (Bimp.max - Bimp.tempSelectBitmap.size()));
547
        //调用第三方图库选择
548
        PhotoPicker.builder()
549
                .setPhotoCount(PIC_NUM - Bimp.tempSelectBitmap.size())//可选择图片数量
550
                .setShowCamera(true)//是否显示拍照按钮
551
                .setShowGif(true)//是否显示动态图
552
                .setPreviewEnabled(true)//是否可以预览
553
                .start(this, PhotoPicker.REQUEST_CODE);
554
555
552
        Matisse.from(ZhanCommentActivity.this)
553
                .choose(MimeType.of(MimeType.JPEG, MimeType.PNG, MimeType.GIF))
554
                .countable(true)
555
                .maxSelectable(PIC_NUM - Bimp.tempSelectBitmap.size())
556
                .capture(true)
557
                .captureStrategy(new CaptureStrategy(true, "com.electric.chargingpile.provider"))
558
                .imageEngine(new GlideEngine())
559
                .forResult(REQUEST_CODE_CHOOSE);
556
    }
560
    }
557
561
558
    @Override
562
    @Override
562
            if (data != null) {
566
            if (data != null) {
563
                if (requestCode == 1) {
567
                if (requestCode == 1) {
564
                    //处理调用系统图库
568
                    //处理调用系统图库
565
                } else if (requestCode == PhotoPicker.REQUEST_CODE) {
569
                } else if (requestCode == REQUEST_CODE_CHOOSE) {
566
                    //异步方式插入图片
570
                    //异步方式插入图片
567
                    insertImagesSync(data);
571
                    insertImagesSync(data);
568
                }
572
                }
581
            @Override
585
            @Override
582
            public void subscribe(ObservableEmitter<String> subscriber) throws Exception {
586
            public void subscribe(ObservableEmitter<String> subscriber) throws Exception {
583
                try {
587
                try {
584
                    ArrayList<String> photos = data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS);
585
                    //可以同时插入多张图片
586
                    for (String imagePath : photos) {
587
588
                        Log.e(TAG, "call: imagePath " + imagePath);
589
                        Bitmap bitmap = BitmapFactory.decodeFile(imagePath);//压缩图片
590
                        if (ImageUtils.readPictureDegree(imagePath) != 0) {
591
                            bitmap = imageZoom(ImageUtils.toturn(bitmap));
592
                        } else {
593
                            bitmap = imageZoom(bitmap);
594
                        }
588
                    List<Uri> uriList = Matisse.obtainResult(data);
589
                    for (Uri uri : uriList) {
590
                        Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
591
                        File file = FileUtils.from(ZhanCommentActivity.this, uri);
592
593
                        bitmap = FileUtils.rotateIfRequired(file, bitmap);
594
                        bitmap = imageZoom(bitmap);
595
                        ImageItem takePhoto = new ImageItem();
595
                        ImageItem takePhoto = new ImageItem();
596
                        takePhoto.setBitmap(bitmap);
596
                        takePhoto.setBitmap(bitmap);
597
                        takePhoto.setImagePath(imagePath);
598
                        Bimp.tempSelectBitmap.add(takePhoto);
597
                        Bimp.tempSelectBitmap.add(takePhoto);
599
//
600
//                        Log.e(TAG, "call: "+imagePath );
601
                        subscriber.onNext(imagePath);
598
                        subscriber.onNext("");
602
                    }
599
                    }
603
                    subscriber.onComplete();
600
                    subscriber.onComplete();
604
                } catch (Exception e) {
601
                } catch (Exception e) {
629
                    }
626
                    }
630
627
631
                    @Override
628
                    @Override
632
                    public void onComplete() {   Log.e(TAG, "onCompleted: -------------");
629
                    public void onComplete() {
630
                        Log.e(TAG, "onCompleted: -------------");
633
                        insertDialog.dismiss();
631
                        insertDialog.dismiss();
634
                        adapter.update();
632
                        adapter.update();
635
633
950
    public void permissionTask() {
948
    public void permissionTask() {
951
        if (isPermissionOK()) {
949
        if (isPermissionOK()) {
952
            callGallery();
950
            callGallery();
953
            // Have permission, do the thing!
954
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
955
//            ifTimeout();
956
        } else {
951
        } else {
957
            // Ask for one permission
952
            // Ask for one permission
958
            EasyPermissions.requestPermissions(
953
            EasyPermissions.requestPermissions(
959
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
954
                    this, "充电桩想要获取您的图片读取权限,是否允许?",
960
                    RC_ALBUM_PERM,
955
                    RC_ALBUM_PERM,
961
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
956
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
962
                    Manifest.permission.READ_EXTERNAL_STORAGE);
957
                    Manifest.permission.READ_EXTERNAL_STORAGE,
958
                    Manifest.permission.CAMERA);
963
        }
959
        }
964
    }
960
    }
965
961
966
    private boolean isPermissionOK() {
962
    private boolean isPermissionOK() {
967
        return EasyPermissions.hasPermissions(this,
963
        return EasyPermissions.hasPermissions(this,
968
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
964
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
969
                Manifest.permission.READ_EXTERNAL_STORAGE
965
                Manifest.permission.READ_EXTERNAL_STORAGE,
966
                Manifest.permission.CAMERA
970
        );
967
        );
971
    }
968
    }
972
969

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

140
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
140
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
141
        if (requestCode == ChatContentListActivity.REQUEST_CODE_CHAT_HOME) {
141
        if (requestCode == ChatContentListActivity.REQUEST_CODE_CHAT_HOME) {
142
            Log.d(TAG, "onActivityResult: ");
142
            Log.d(TAG, "onActivityResult: ");
143
//            ToastUtil.showToast(getContext(), "come on ", Toast.LENGTH_SHORT);
144
        }
143
        }
145
//        ToastUtil.showToast(getContext(), "come on 2", Toast.LENGTH_SHORT);
146
    }
144
    }
147
145
148
    private void initListener() {
146
    private void initListener() {

+ 11 - 0
app/src/main/java/com/electric/chargingpile/util/FileUtils.java

9
import android.os.Environment;
9
import android.os.Environment;
10
import android.provider.MediaStore;
10
import android.provider.MediaStore;
11
import android.provider.OpenableColumns;
11
import android.provider.OpenableColumns;
12
import android.util.Base64;
12
import android.util.Log;
13
import android.util.Log;
13

14

14
import androidx.exifinterface.media.ExifInterface;
15
import androidx.exifinterface.media.ExifInterface;
15

16

17
import java.io.ByteArrayOutputStream;
16
import java.io.File;
18
import java.io.File;
17
import java.io.FileNotFoundException;
19
import java.io.FileNotFoundException;
18
import java.io.FileOutputStream;
20
import java.io.FileOutputStream;
209
        return count;
211
        return count;
210
    }
212
    }
211

213

214
    public static String bitmapToString(Bitmap bitmap) {
215
        String str = null;
216
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
217
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
218
        byte[] bytes = outputStream.toByteArray();
219
        str = Base64.encodeToString(bytes, Base64.DEFAULT);
220
        return str;
221
    }
222

212
}
223
}

+ 1 - 1
app/src/main/java/com/electric/chargingpile/view/xrichtext/RichTextView.java

136
        final RelativeLayout imageLayout = createImageLayout();
136
        final RelativeLayout imageLayout = createImageLayout();
137
        DataImageView imageView = (DataImageView) imageLayout.findViewById(R.id.edit_imageView);
137
        DataImageView imageView = (DataImageView) imageLayout.findViewById(R.id.edit_imageView);
138
        RequestOptions options = new RequestOptions().centerCrop();
138
        RequestOptions options = new RequestOptions().centerCrop();
139
        Glide.with(getContext()).load(imagePath).apply(options).into(imageView);
139
        Glide.with(getContext()).load(path).apply(options).into(imageView);
140
        //imageView.setImageBitmap(bmp);//这里改用Glide加载图片
140
        //imageView.setImageBitmap(bmp);//这里改用Glide加载图片
141
        //imageView.setBitmap(bmp);//这句去掉,保留下面的图片地址即可,优化图片占用
141
        //imageView.setBitmap(bmp);//这句去掉,保留下面的图片地址即可,优化图片占用
142
//        imageView.setAbsolutePath(imagePath);//保留这句,后面保存数据会用
142
//        imageView.setAbsolutePath(imagePath);//保留这句,后面保存数据会用