Browse Source

修改云教练部分问题

Pq 3 năm trước cách đây
mục cha
commit
63513fa78c

+ 47 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/FileUtils.java

@@ -11,6 +11,7 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Environment;
 import android.os.StatFs;
+import android.provider.MediaStore;
 import android.provider.OpenableColumns;
 import android.text.TextUtils;
 import android.util.Base64;
@@ -31,10 +32,13 @@ import java.net.URL;
 import java.security.DigestInputStream;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 
 import javax.net.ssl.HttpsURLConnection;
 
@@ -1627,5 +1631,48 @@ public final class FileUtils {
         return file.getPath();
     }
 
+    public static File saveBase64ImgToLocalFile(String base64) throws Exception {
+        byte[] bytes;
+        if (base64.startsWith("data:image/png;base64")) {
+            String[] split = base64.split(",");
+            bytes = Base64.decode(split[1], Base64.DEFAULT);
+        } else {
+            bytes = Base64.decode(base64, Base64.DEFAULT);
+        }
+        Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
+        File parentFile = new File(FileUtils.getCacheDir(Utils.getApp()) + File.separator + "share");
+        if (!parentFile.exists()) {
+            parentFile.mkdirs();
+        }
+        String targetFileName = "IMG_" + new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()) + ".png";
+        File file = new File(parentFile, targetFileName);
+        FileUtils.saveImagToGallery(bitmap, file.getAbsolutePath());
+        if (file != null && file.exists()) {
+            try {
+                MediaStore.Images.Media.insertImage(Utils.getApp().getContentResolver(),
+                        file.getAbsolutePath(), file.getName(), null);
+                // 最后通知图库更新
+                Utils.getApp().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
+                        Uri.fromFile(new File(file.getPath()))));
+            } catch (FileNotFoundException e) {
+                e.printStackTrace();
+            }
+        }
+        return new File(file.getAbsolutePath());
+    }
+
+    /**
+     * 保存图片到图库
+     *
+     * @param bmp
+     */
+    public static void saveImagToGallery(Bitmap bmp, String path) throws Exception {
+        // 首先保存图片
+        File file = new File(path);
+        FileOutputStream fos = new FileOutputStream(file);
+        bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
+        fos.flush();
+        fos.close();
+    }
 
 }

+ 8 - 8
student/src/main/java/com/cooleshow/student/ui/mine/EditAddressActivity.java

@@ -91,7 +91,7 @@ public class EditAddressActivity extends BaseMVPActivity<ActivityEditAddressBind
                     ToastUtils.showShort("请输入收件人电话号码");
                     break;
                 }
-                if (phoneNumber.length()!=11) {
+                if (phoneNumber.length() != 11) {
                     ToastUtils.showShort("请输入正确电话号码");
                     break;
                 }
@@ -136,7 +136,7 @@ public class EditAddressActivity extends BaseMVPActivity<ActivityEditAddressBind
                 if (isAdd) {
                     presenter.createNewAddress(jsonObject.toString());
                 } else {
-                    presenter.updateAddress(id,jsonObject.toString());
+                    presenter.updateAddress(id, jsonObject.toString());
                 }
 
                 break;
@@ -153,7 +153,7 @@ public class EditAddressActivity extends BaseMVPActivity<ActivityEditAddressBind
     @Override
     protected void initView() {
         ARouter.getInstance().inject(this);
-        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "地址列表");
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "编辑地址");
         viewBinding.tvSave.setOnClickListener(this);
         viewBinding.imSetDefault.setOnClickListener(this);
         viewBinding.tvDistrictDetail.setOnClickListener(this);
@@ -163,18 +163,18 @@ public class EditAddressActivity extends BaseMVPActivity<ActivityEditAddressBind
             viewBinding.etName.setText(addressBean.name);
             viewBinding.etPhone.setText(addressBean.phoneNumber);
             if (!TextUtils.isEmpty(addressBean.province)) {
-                province=addressBean.province;
-                city= addressBean.city;
-                region=addressBean.region;
+                province = addressBean.province;
+                city = addressBean.city;
+                region = addressBean.region;
                 viewBinding.tvDistrictDetail.setText(addressBean.province + addressBean.city + addressBean.region);
                 viewBinding.tvDistrictDetail.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a));
             }
             viewBinding.etDetailAddress.setText(addressBean.detailAddress);
             id = addressBean.id;
             isDefaultAddress = addressBean.defaultStatus == 1;//是否是默认地址
-            if (addressBean.defaultStatus==1){
+            if (addressBean.defaultStatus == 1) {
                 viewBinding.imSetDefault.setImageResource(R.drawable.icon_switch_open);
-            }else{
+            } else {
                 viewBinding.imSetDefault.setImageResource(R.drawable.icon_switch_off);
             }
         }

+ 31 - 0
student/src/main/java/com/cooleshow/student/ui/web/AccompanyFragment.java

@@ -11,15 +11,19 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
 import android.media.SoundPool;
+import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.os.SystemClock;
+import android.provider.MediaStore;
 import android.text.TextUtils;
+import android.util.Base64;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.View;
@@ -47,6 +51,7 @@ import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.HeadsetPlugListener;
 import com.cooleshow.base.utils.HeadsetPlugReceiver;
+import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.websocket.JWebSocketClient;
@@ -92,6 +97,7 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.lang.ref.WeakReference;
 import java.net.URI;
 import java.security.MessageDigest;
@@ -412,6 +418,8 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                                     JSONObject jsonObject = new JSONObject();
                                     JSONObject headerObject = new JSONObject();
                                     headerObject.put("commond", "musicXml");
+                                    headerObject.put("type", "SOUND_COMPARE");
+                                    headerObject.put("status", 200);
                                     jsonObject.put("header", headerObject);
                                     jsonObject.put("body", msg.getJSONObject("content"));
                                     webSocketClient.send(jsonObject.toString());
@@ -518,6 +526,8 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                     JSONObject jsonObject = new JSONObject();
                     JSONObject headerObject = new JSONObject();
                     headerObject.put("commond", "musicXml");
+                    headerObject.put("type", "SOUND_COMPARE");
+                    headerObject.put("status", 200);
                     jsonObject.put("header", headerObject);
                     jsonObject.put("body", message.getJSONObject("content"));
                     webSocketClient.send(jsonObject.toString());
@@ -1195,6 +1205,7 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
 
     public void sendMessage(String message) {
+        LogUtils.i("sendMessage:" + message);
         webView.evaluateJavascript("postMessage('" + message + "','*')", new ValueCallback<String>() {
             @Override
             public void onReceiveValue(String s) {
@@ -1851,7 +1862,27 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
     @Override
     public void savePicture(String base64, String uuid) {
+        try {
+            File file = com.cooleshow.base.utils.FileUtils.saveBase64ImgToLocalFile(base64);
+            sendSavePicCallBack("savePicture", "success",uuid);
+        } catch (Exception e) {
+            sendSavePicCallBack("savePicture", "fail",uuid);
+            e.printStackTrace();
+        }
+    }
 
+    private void sendSavePicCallBack(String api, String result,String uuid) {
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", api);
+            contentJson.put("status", result);
+            contentJson.put("uuid", uuid);
+            jsonObject.put("content", contentJson);
+            sendMessage(jsonObject.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     private boolean goPay = false;

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/EditAddressActivity.java

@@ -152,7 +152,7 @@ public class EditAddressActivity extends BaseMVPActivity<ActivityEditAddressBind
     @Override
     protected void initView() {
         ARouter.getInstance().inject(this);
-        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "地址列表");
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "编辑地址");
         viewBinding.tvSave.setOnClickListener(this);
         viewBinding.imSetDefault.setOnClickListener(this);
         viewBinding.tvDistrictDetail.setOnClickListener(this);

+ 24 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/web/AccompanyFragment.java

@@ -417,6 +417,8 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                                     JSONObject jsonObject = new JSONObject();
                                     JSONObject headerObject = new JSONObject();
                                     headerObject.put("commond", "musicXml");
+                                    headerObject.put("type", "SOUND_COMPARE");
+                                    headerObject.put("status", 200);
                                     jsonObject.put("header", headerObject);
                                     jsonObject.put("body", msg.getJSONObject("content"));
                                     webSocketClient.send(jsonObject.toString());
@@ -523,6 +525,8 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                     JSONObject jsonObject = new JSONObject();
                     JSONObject headerObject = new JSONObject();
                     headerObject.put("commond", "musicXml");
+                    headerObject.put("type", "SOUND_COMPARE");
+                    headerObject.put("status", 200);
                     jsonObject.put("header", headerObject);
                     jsonObject.put("body", message.getJSONObject("content"));
                     webSocketClient.send(jsonObject.toString());
@@ -1857,7 +1861,27 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
     @Override
     public void savePicture(String base64, String uuid) {
+        try {
+            com.cooleshow.base.utils.FileUtils.saveBase64ImgToLocalFile(base64);
+            sendSavePicCallBack("savePicture", "success",uuid);
+        } catch (Exception e) {
+            sendSavePicCallBack("savePicture", "fail",uuid);
+            e.printStackTrace();
+        }
+    }
 
+    private void sendSavePicCallBack(String api, String result,String uuid) {
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", api);
+            contentJson.put("status", result);
+            contentJson.put("uuid", uuid);
+            jsonObject.put("content", contentJson);
+            sendMessage(jsonObject.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     private boolean goPay = false;