|
@@ -22,11 +22,14 @@ import com.cooleshow.base.BuildConfig;
|
|
import com.cooleshow.base.common.WebConstants;
|
|
import com.cooleshow.base.common.WebConstants;
|
|
import com.cooleshow.base.router.RouterPath;
|
|
import com.cooleshow.base.router.RouterPath;
|
|
import com.cooleshow.base.ui.activity.BaseActivity;
|
|
import com.cooleshow.base.ui.activity.BaseActivity;
|
|
|
|
+import com.cooleshow.base.utils.FileUtils;
|
|
import com.cooleshow.base.utils.LogUtils;
|
|
import com.cooleshow.base.utils.LogUtils;
|
|
import com.cooleshow.base.utils.PermissionUtils;
|
|
import com.cooleshow.base.utils.PermissionUtils;
|
|
import com.cooleshow.base.utils.ToastUtil;
|
|
import com.cooleshow.base.utils.ToastUtil;
|
|
|
|
+import com.cooleshow.base.utils.UriUtils;
|
|
import com.cooleshow.base.utils.Utils;
|
|
import com.cooleshow.base.utils.Utils;
|
|
import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
|
|
import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
|
|
|
|
+import com.cooleshow.base.utils.helper.upload.UploadHelper;
|
|
import com.cooleshow.teacher.widgets.helper.JsInterfaceHelper;
|
|
import com.cooleshow.teacher.widgets.helper.JsInterfaceHelper;
|
|
import com.cooleshow.base.widgets.WebClient;
|
|
import com.cooleshow.base.widgets.WebClient;
|
|
import com.cooleshow.base.widgets.dialog.CommonDialog;
|
|
import com.cooleshow.base.widgets.dialog.CommonDialog;
|
|
@@ -35,13 +38,13 @@ import com.cooleshow.teacher.databinding.ActivityHtmlBinding;
|
|
import com.cooleshow.base.widgets.LollipopFixedWebView;
|
|
import com.cooleshow.base.widgets.LollipopFixedWebView;
|
|
import com.cooleshow.usercenter.helper.UserHelper;
|
|
import com.cooleshow.usercenter.helper.UserHelper;
|
|
import com.daya.live_teaching.utils.GlideEngine;
|
|
import com.daya.live_teaching.utils.GlideEngine;
|
|
|
|
+import com.ksyun.ks3.services.Ks3Client;
|
|
import com.luck.picture.lib.PictureSelector;
|
|
import com.luck.picture.lib.PictureSelector;
|
|
import com.luck.picture.lib.config.PictureConfig;
|
|
import com.luck.picture.lib.config.PictureConfig;
|
|
import com.luck.picture.lib.config.PictureMimeType;
|
|
import com.luck.picture.lib.config.PictureMimeType;
|
|
import com.luck.picture.lib.entity.LocalMedia;
|
|
import com.luck.picture.lib.entity.LocalMedia;
|
|
import com.luck.picture.lib.tools.PictureFileUtils;
|
|
import com.luck.picture.lib.tools.PictureFileUtils;
|
|
import com.tbruyelle.rxpermissions3.RxPermissions;
|
|
import com.tbruyelle.rxpermissions3.RxPermissions;
|
|
-import com.yalantis.ucrop.util.FileUtils;
|
|
|
|
|
|
|
|
import org.json.JSONObject;
|
|
import org.json.JSONObject;
|
|
|
|
|
|
@@ -204,6 +207,14 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public void chooseFile(JSONObject message) {
|
|
|
|
+ JSONObject content = (JSONObject) message.opt("content");
|
|
|
|
+ String type = (String) content.opt("image/*");
|
|
|
|
+ String[] types = new String[]{type};
|
|
|
|
+ showFileChooser();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取状态栏高度
|
|
* 获取状态栏高度
|
|
*
|
|
*
|
|
@@ -331,22 +342,13 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
|
|
super.onConfigurationChanged(newConfig);
|
|
super.onConfigurationChanged(newConfig);
|
|
}
|
|
}
|
|
|
|
|
|
- private void showFileChooser(String[] contentTypes) {
|
|
|
|
-
|
|
|
|
- Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);
|
|
|
|
- intent1.addCategory(Intent.CATEGORY_OPENABLE);
|
|
|
|
- if (contentTypes.length == 0) {
|
|
|
|
- intent1.setType("*/*");
|
|
|
|
- } else {
|
|
|
|
- for (int i = 0; i < contentTypes.length; i++) {
|
|
|
|
- intent1.setType(contentTypes[i]);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- Intent chooser = new Intent(Intent.ACTION_CHOOSER);
|
|
|
|
- chooser.putExtra(Intent.EXTRA_TITLE, "File Chooser");
|
|
|
|
- chooser.putExtra(Intent.EXTRA_INTENT, intent1);
|
|
|
|
-// chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{intent2});
|
|
|
|
- startActivityForResult(chooser, REQUEST_CODE_FILE_CHOOSER);
|
|
|
|
|
|
+ private void showFileChooser() {
|
|
|
|
+ Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
|
|
|
|
+ intent.setType("*/*");
|
|
|
|
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
|
|
|
|
+ intent.putExtra(Intent.EXTRA_TITLE, "File Chooser");
|
|
|
|
+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
|
|
|
|
+ startActivityForResult(intent, REQUEST_CODE_FILE_CHOOSER);
|
|
}
|
|
}
|
|
|
|
|
|
private void startFileSelect(WebChromeClient.FileChooserParams fileChooserParams) {
|
|
private void startFileSelect(WebChromeClient.FileChooserParams fileChooserParams) {
|
|
@@ -354,7 +356,7 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
|
|
.request(Manifest.permission.READ_EXTERNAL_STORAGE)
|
|
.request(Manifest.permission.READ_EXTERNAL_STORAGE)
|
|
.subscribe(permission -> {
|
|
.subscribe(permission -> {
|
|
if (permission) {
|
|
if (permission) {
|
|
- showFileChooser(fileChooserParams.getAcceptTypes());
|
|
|
|
|
|
+ showFileChooser();
|
|
} else {
|
|
} else {
|
|
String tip = "上传文件需要储存卡读取权限,是否去设置?";
|
|
String tip = "上传文件需要储存卡读取权限,是否去设置?";
|
|
showCommonTipDialog(tip);
|
|
showCommonTipDialog(tip);
|
|
@@ -402,6 +404,8 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
|
|
@Override
|
|
@Override
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
|
+ LogUtils.i("pq", "requestCode" + requestCode);
|
|
|
|
+ LogUtils.i("pq", "resultCode" + resultCode);
|
|
if (requestCode == PictureConfig.CHOOSE_REQUEST && mUploadCallbackAboveL != null) {
|
|
if (requestCode == PictureConfig.CHOOSE_REQUEST && mUploadCallbackAboveL != null) {
|
|
// 图片、视频、音频选择结果回调
|
|
// 图片、视频、音频选择结果回调
|
|
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
|
|
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
|
|
@@ -417,32 +421,25 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
|
|
}
|
|
}
|
|
if (requestCode == REQUEST_CODE_FILE_CHOOSER) {
|
|
if (requestCode == REQUEST_CODE_FILE_CHOOSER) {
|
|
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
|
|
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
|
|
-// if (result == null && !TextUtils.isEmpty(mCameraFilePath)) {
|
|
|
|
-// // 看是否从相机返回
|
|
|
|
-// File cameraFile = new File(mCameraFilePath);
|
|
|
|
-// if (cameraFile.exists()) {
|
|
|
|
-// result = Uri.fromFile(cameraFile);
|
|
|
|
-// sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, result));
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
if (result != null) {
|
|
if (result != null) {
|
|
- String path = FileUtils.getPath(this, result);
|
|
|
|
- if (!TextUtils.isEmpty(path)) {
|
|
|
|
- File f = new File(path);
|
|
|
|
- if (f.exists() && f.isFile()) {
|
|
|
|
- Uri newUri = Uri.fromFile(f);
|
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
- if (mUploadCallbackAboveL != null) {
|
|
|
|
- if (newUri != null) {
|
|
|
|
- mUploadCallbackAboveL.onReceiveValue(new Uri[]{newUri});
|
|
|
|
- mUploadCallbackAboveL = null;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- ToastUtil.getInstance().show(WebActivity.this, "文件损坏或不存在,请重新选择");
|
|
|
|
- }
|
|
|
|
|
|
+ File file = UriUtils.uri2File(result);
|
|
|
|
+ if (file != null && file.exists()) {
|
|
|
|
+ UploadHelper uploadHelper = new UploadHelper(WebActivity.this);
|
|
|
|
+ uploadHelper.uploadFile(file);
|
|
|
|
+// if (f.exists() && f.isFile()) {
|
|
|
|
+// Uri newUri = Uri.fromFile(f);
|
|
|
|
+// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
+// if (mUploadCallbackAboveL != null) {
|
|
|
|
+// if (newUri != null) {
|
|
|
|
+// mUploadCallbackAboveL.onReceiveValue(new Uri[]{newUri});
|
|
|
|
+// mUploadCallbackAboveL = null;
|
|
|
|
+// return;
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// } else {
|
|
|
|
+// ToastUtil.getInstance().show(WebActivity.this, "文件损坏或不存在,请重新选择");
|
|
|
|
+// }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
clearUploadMessage();
|
|
clearUploadMessage();
|