/* eslint-disable */
var pickFile = {
	//调用原生文件系统管理器并选取文件获取文件地址
	PickFile: function(callback, mimeTypes) {
		console.log(plus)
		if (plus.os.name.toLowerCase() != "android") {
			uni.showModal({
				title: "提示",
				content: "仅支持Android平台",
				success: function(res) {},
			});
			return false;
		}
		let that = this;

		let main = plus.android.runtimeMainActivity();
		let Intent = plus.android.importClass("android.content.Intent");

		let fileIntent = new Intent(Intent.ACTION_GET_CONTENT);
		/**
		 * let mimeType = ["image/*", "application/*|text/*","application/vnd.ms-powerpoint",
		 * "application/vnd.openxmlformats-officedocument.presentationml.presentation",];
		 * */
		let mimeType = [
			// "image/png",
			// "image/jpg",
			// "image/jpeg",
			// "application/msword",
			// "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
			// "application/vnd.ms-excel",
			// "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
			"application/pdf",
		];
		fileIntent.setType("*/*"); //无类型限制
		// fileIntent.setType("application/*");
		// fileIntent.setType(mineType);
		fileIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimeType);
		fileIntent.addCategory(Intent.CATEGORY_OPENABLE);
		main.startActivityForResult(fileIntent, 10000);
		let _this = pickFile;
		// 获取回调
		main.onActivityResult = function(requestCode, resultCode, data) {
			let Activity = plus.android.importClass("android.app.Activity");
			let ContentUris = plus.android.importClass("android.content.ContentUris");
			let Cursor = plus.android.importClass("android.database.Cursor");
			let Uri = plus.android.importClass("android.net.Uri");
			let Build = plus.android.importClass("android.os.Build");
			let Environment = plus.android.importClass("android.os.Environment");
			let DocumentsContract = plus.android.importClass(
				"android.provider.DocumentsContract"
			);
			let MediaStore = plus.android.importClass("android.provider.MediaStore");
			// 给系统导入 contentResolver
			let contentResolver = main.getContentResolver();
			plus.android.importClass(contentResolver);
			// 返回路径
			let path = "";
			if (resultCode == Activity.RESULT_OK) {
				let uri = data.getData();
				if ("file" == uri.getScheme().toLowerCase()) {
					//使用第三方应用打开
					path = uri.getPath();
					return;
				}
				if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
					//4.4以后
					path = getPath(this, uri);
				} else {
					//4.4以下下系统调用方法
					path = getRealPathFromURI(uri);
				}
				// 回调
				console.warn("path---------->", path);
				// 获取file:///本地文件大小
				getFileSize(path);
				// that.$emit("result", path);
			}
			// 4.4 以上 从Uri 获取文件绝对路径
			function getPath(context, uri) {
				let isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
				let scheme = uri.getScheme().toLowerCase();
				if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
					// ExternalStorageProvider
					if (isExternalStorageDocument(uri)) {
						let docId = DocumentsContract.getDocumentId(uri);
						let split = docId.split(":");
						let type = split[0];
						// 如果是手机内部存储
						if ("primary" == type.toLowerCase()) {
							return Environment.getExternalStorageDirectory() + "/" + split[1];
						} else {
							return "/storage/" + type + "/" + split[1];
						}
					}
					// DownloadsProvider
					else if (isDownloadsDocument(uri)) {
						let id = DocumentsContract.getDocumentId(uri);
						let split = id.split(":");
						return split[1];
						// console.log(id)
						// let contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), id);
					}
					// MediaProvider
					else if (isMediaDocument(uri)) {
						let docId = DocumentsContract.getDocumentId(uri);
						let split = docId.split(":");
						let type = split[0];
						let contentUri = null;
						if ("image" == type.toLowerCase()) {
							contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
						} else if ("video" == type.toLowerCase()) {
							contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
						} else if ("audio" == type.toLowerCase()) {
							contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
						}
						let selection = "_id=?";
						let selectionArgs = [split[1]];
						return getDataColumn(context, contentUri, selection, selectionArgs);
					}
				}
				// MediaStore (and general)
				else if ("content" == scheme) {
					return getDataColumn(context, uri, null, null);
				}
				// File
				else if ("file" == scheme) {
					return uri.getPath();
				}
			}
			// 4.4 以下 获取 绝对路径
			function getRealPathFromURI(uri) {
				let res = null;
				let proj = [MediaStore.Images.Media.DATA];
				let cursor = contentResolver.query(uri, proj, null, null, null);
				if (null != cursor && cursor.moveToFirst()) {
					let column_index = cursor.getColumnIndexOrThrow(
						MediaStore.Images.Media.DATA
					);
					res = cursor.getString(column_index);
					cursor.close();
				}
				return res;
			}
			// 通过uri 查找出绝对路径
			function getDataColumn(context, uri, selection, selectionArgs) {
				let cursor = null;
				let column = "_data";
				let projection = [column];
				// let contentResolver = context.getContentResolver()
				// plus.android.importClass(contentResolver);
				cursor = contentResolver.query(
					uri,
					projection,
					selection,
					selectionArgs,
					null
				);
				if (cursor != null && cursor.moveToFirst()) {
					let column_index = cursor.getColumnIndexOrThrow(column);
					return cursor.getString(column_index);
				}
			}

			function isExternalStorageDocument(uri) {
				return "com.android.externalstorage.documents" == uri.getAuthority() ?
					true :
					false;
			}

			function isDownloadsDocument(uri) {
				return "com.android.providers.downloads.documents" == uri.getAuthority() ?
					true :
					false;
			}

			function isMediaDocument(uri) {
				return "com.android.providers.media.documents" == uri.getAuthority() ?
					true :
					false;
			}
			/* 获取文件大小 */
			function getFileSize(filePath) {
				const File = plus.android.importClass("java.io.File");
				let file = new File(filePath);
				// console.warn(file.length());
				// 回调
				callback(filePath, convertfilesize(file.length()));
			}
			/* 文件size转换 */
			function convertfilesize(size) {
				//把字节转换成正常文件大小
				if (!size) return "";
				var num = 1024.0; //byte
				if (size < num) return size + "B";
				if (size < Math.pow(num, 2)) return (size / num).toFixed(2) + "KB"; //kb
				if (size < Math.pow(num, 3))
					return (size / Math.pow(num, 2)).toFixed(2) + "MB"; //M
				if (size < Math.pow(num, 4))
					return (size / Math.pow(num, 3)).toFixed(2) + "G"; //G
				return (size / Math.pow(num, 4)).toFixed(2) + "T"; //T
			}
		};
	},
};

module.exports = {
	pickFile: pickFile,
};
/* eslint-disable no-new */