!94 api 升级12 告警清理

Merge pull request !94 from 郭瑞/new_upgrade
This commit is contained in:
openharmony_ci
2025-01-18 06:15:25 +00:00
committed by Gitee
23 changed files with 517 additions and 466 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
"name": "default",
"signingConfig": "default",
"compileSdkVersion": 12,
"compatibleSdkVersion": 9,
"compatibleSdkVersion": 12,
"runtimeOS": "OpenHarmony"
}
],
@@ -14,29 +14,29 @@
*/
// 缩略图获取尺寸
export const THUMBNAIL_SIZE = {
WIDTH: 98,
HEIGHT: 98
export enum ThumbnailSize {
WIDTH = 98,
HEIGHT = 98
}
export const Z_INDEX = {
TOP: 999,
MIDDLE: 99,
LOW: 9,
LEVEL10: 10,
LEVEL100: 100,
LEVEL101: 101
export enum ZIndex {
TOP = 999,
MIDDLE = 99,
LOW = 9,
LEVEL10 = 10,
LEVEL100 = 100,
LEVEL101 = 101
}
export const TREE_LAYER = 15
export const BOTTOM_BAR_COLOR = {
enabled: 1,
disabled: 0.3
export enum BottomBarColor {
enabled = 1,
disabled = 0.3
}
export const SYSTEM_BAR_COLOR = {
WHITE: '#ffffff',
BLACK: '#000000',
LIGHT_GRAY: '#f0f1f6'
export enum SystemBarColor {
WHITE = '#ffffff',
BLACK = '#000000',
LIGHT_GRAY = '#f0f1f6'
}
+4 -4
View File
@@ -18,6 +18,7 @@ import prompt from '@ohos.prompt';
import { getResourceString } from './Tools';
import { MILLISECOND, FILENAME_REGEXP } from '../constants/Constant';
import Logger from '../log/Logger';
import type { BusinessError } from '@ohos.base';
const TAG = 'commonUtil';
@@ -41,7 +42,7 @@ export const toast = (text: string | Resource, time = MILLISECOND.ONE_SECOND) =>
*/
export const setSystemBar = async (navigationBarColor?: string, statusBarColor?: string,
navigationBarContentColor?: string, statusBarContentColor?: string) => {
let w = await window.getTopWindow(getContext(this));
let w = await window.getTopWindow(getContext());
await w.setSystemBarProperties({
navigationBarColor,
statusBarColor,
@@ -60,12 +61,11 @@ export const setImmersion = (isImmersion: boolean) => {
if (!globalThis.windowClass) {
return;
}
globalThis.windowClass.setFullScreen(isImmersion, (err, data) => {
globalThis.windowClass.setFullScreen(isImmersion, (err: BusinessError) => {
if (err.code) {
Logger.e(TAG, 'Failed to enable the full-screen mode. Cause:' + JSON.stringify(err));
return;
}
Logger.i(TAG, 'Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data));
})
}
@@ -75,7 +75,7 @@ export const setImmersion = (isImmersion: boolean) => {
* @param fileName 文件名
* @return 是否合法
*/
export function isValidFileName(fileName): boolean {
export function isValidFileName(fileName: string): boolean {
return FILENAME_REGEXP.test(fileName);
}
+18 -8
View File
@@ -22,17 +22,27 @@ import LanguageUtil from './LanguageUtil';
const TAG = 'DateTimeUtil';
namespace DateTimeUtil {
export interface DateFormat {
YYYY_MM_DD: string,
MM_DD: string,
DATE_TIME: string,
YYYY_MM_DD_CHINESE: string,
MM_DD_CHINESE: string,
DATE_TIME_CHINESE: string
}
/**
* 日期格式常量
*/
export const DATE_FORMAT = {
let DATE_FORMAT: DateFormat = {
YYYY_MM_DD: 'yyyy/mm/dd',
MM_DD: 'mm/dd',
DATE_TIME: 'yyyy/mm/dd HH:MM:SS',
YYYY_MM_DD_CHINESE: 'yyyy年mm月dd日',
MM_DD_CHINESE: 'm月d日',
DATE_TIME_CHINESE: 'yyyy年mm月dd日 HH:MM'
};
DATE_TIME_CHINESE: 'yyyy年mm月dd日 HH:MM',
}
/**
* @description 获取指定时间戳当天0点的时间戳
@@ -94,11 +104,11 @@ namespace DateTimeUtil {
* @param format 格式(可选)
* @example formatDate(new Date(), "YYYY-mm-dd HH:MM:SS") => 2021-11-02 09:39:59
*/
export function formatDate(timestamp, format = DATE_FORMAT.YYYY_MM_DD) {
export function formatDate(timestamp: number, format:string = DATE_FORMAT.YYYY_MM_DD): string {
let res = '';
try {
const date = new Date(timestamp);
const opt = {
const opt: Record<string, string> = {
'y+': date.getFullYear().toString(), // 年
'm+': (date.getMonth() + 1).toString(), // 月
'd+': date.getDate().toString(), // 日
@@ -106,7 +116,7 @@ namespace DateTimeUtil {
'M+': date.getMinutes().toString(), // 分
'S+': date.getSeconds().toString(), // 秒
};
for (let key in opt) {
Object.keys(opt).forEach((key) => {
const reg = new RegExp(key);
let ret = reg.exec(format);
if (ret) {
@@ -114,7 +124,7 @@ namespace DateTimeUtil {
reg, ret[0].length == 1 ? opt[key] : opt[key].padStart(ret[0].length, '0')
);
}
}
});
res = format;
} catch (error) {
Logger.e(TAG, 'formatDate error: ' + error.toString());
@@ -165,7 +175,7 @@ namespace DateTimeUtil {
* 往年:YYYY/MM/DD
*/
export function getDateStringForRecentCard(timeStamp: number): Resource | string {
let dateString = undefined;
let dateString : Resource | string;
const date = new Date();
const now = date.getTime();
const nowYear = date.getFullYear();
+6 -7
View File
@@ -12,27 +12,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
let eventMap = new Map<string, Function[]>();
let eventMap = {}
export const emit = (event, ...argument) => {
export const emit = (event: string, ...argument: ESObject[]) => {
if (Array.isArray(eventMap[event])) {
eventMap[event].forEach((fn: Function) => {
fn.apply(this, argument)
fn(...argument)
})
}
}
export const on = (event, callback) => {
export const on = (event: string, callback: Function) => {
if (!eventMap[event]) {
eventMap[event] = []
}
eventMap[event].push(callback)
}
export const off = (event, callback, flag = true) => {
export const off = (event: string, callback: Function, flag = true) => {
if (flag) {
const index = eventMap[event].indexOf(item => item === callback)
const index: number = eventMap[event].indexOf((item: Function) => item === callback)
if (index !== -1) {
eventMap[event].splice(index, 1)
}
@@ -25,17 +25,18 @@ import fileExtensionInfo from '@ohos.file.fileExtensionInfo';
import { FileBase } from '../../databases/model/base/FileBase';
import ObjectUtil from './ObjectUtil';
import { FileUtil } from './FileUtil';
import { BusinessError } from '@kit.BasicServicesKit';
const TAG = 'FileAccessExec';
namespace FileAccessExec {
// 创建文件夹
export function createFolder(sourceUri: string, folderName: string): any {
return new Promise((resolve, reject) => {
export function createFolder(sourceUri: string, folderName: string): ESObject {
return new Promise<string>((resolve, reject) => {
try {
globalThis.fileAcsHelper.mkDir(sourceUri, folderName, (ret, data) => {
if (ret && ret.code !== '0') {
globalThis.fileAcsHelper.mkDir(sourceUri, folderName, (ret: BusinessError, data: string) => {
if (ret && ret.code !== 0) {
reject(ret);
Logger.e(TAG, 'createFolder fail:' + JSON.stringify(ret));
} else {
@@ -50,11 +51,11 @@ namespace FileAccessExec {
}
// 创建文件
export function createFile(sourceUri: string, fileName: string): any {
return new Promise((resolve, reject) => {
export function createFile(sourceUri: string, fileName: string): ESObject {
return new Promise<string>((resolve, reject) => {
try {
globalThis.fileAcsHelper.createFile(sourceUri, fileName, (ret, data) => {
if (ret && ret.code !== '0') {
globalThis.fileAcsHelper.createFile(sourceUri, fileName, (ret: BusinessError, data: string) => {
if (ret && ret.code !== 0) {
reject(ret);
Logger.e(TAG, 'createFile fail:' + JSON.stringify(ret));
} else {
@@ -68,19 +69,15 @@ namespace FileAccessExec {
})
}
export function getFileData(): any {
export function getFileData(): ESObject {
let folderList: FilesData[] = [];
let fileList: FilesData[] = [];
const allData = getRootFolder();
allData.forEach((item) => {
if (item.isFolder) {
folderList.push(new FilesData({
...item
}));
folderList.push(new FilesData(item));
} else {
fileList.push(new FilesData({
...item
}));
fileList.push(new FilesData(item));
}
})
@@ -98,18 +95,17 @@ namespace FileAccessExec {
let result = fileIterator.next();
let isDone = result.done;
while (!isDone) {
const {fileName, relativePath,uri, mode, size, mtime, mimeType} = result.value;
let tempFile = new FilesData({
id: randomId(),
fileName,
relativePath,
uri,
mode,
size,
mtime,
mimeType,
fileIterator: result.value
});
const data = result.value;
let tempFile = new FilesData();
tempFile.id = randomId();
tempFile.fileName = data.fileName;
tempFile.relativePath = data.relativePath;
tempFile.uri = data.uri;
tempFile.mode = data.mode.toString();
tempFile.size = data.size;
tempFile.mtime = data.mtime;
tempFile.mimeType = data.mimeType;
tempFile.fileIterator = result.value;
fileList.push(tempFile);
result = fileIterator.next();
isDone = result.done;
+174 -178
View File
@@ -141,13 +141,13 @@ export class FileMimeTypeUtil {
public static FILE_TYPE_UNKNOW: number = 200;
public static SUFFIX_DLP = 'DLP';
private static UNKNOW_MIMETYPE: MimeType = new MimeType(
null,
'',
MimeType.FILE_CATEGORY_UNKNOW,
FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'),
$r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'),
null
''
);
private static fileMimeTypeMap: Map<string, MimeType> = new Map<string, MimeType>();
@@ -158,533 +158,529 @@ export class FileMimeTypeUtil {
FileMimeTypeUtil.fileMimeTypeMap.set(extension, mType);
}
static setFileMimeTypeMap() {
// 图片
this.addFileMimeType('PNG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_PNG,
FileMimeTypeUtil.addFileMimeType('PNG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_PNG,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/png');
this.addFileMimeType('WBMP', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_WBMP,
FileMimeTypeUtil.addFileMimeType('WBMP', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_WBMP,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/vnd.wap.wbmp');
this.addFileMimeType('BMP', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_BMP,
FileMimeTypeUtil.addFileMimeType('BMP', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_BMP,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/bmp');
this.addFileMimeType('GIF', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_GIF,
FileMimeTypeUtil.addFileMimeType('GIF', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_GIF,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/gif');
this.addFileMimeType('JPEG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPEG,
FileMimeTypeUtil.addFileMimeType('JPEG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPEG,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/jpeg');
this.addFileMimeType('JPG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPG,
FileMimeTypeUtil.addFileMimeType('JPG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPG,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/jpeg');
this.addFileMimeType('JPE', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPEG,
FileMimeTypeUtil.addFileMimeType('JPE', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPEG,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/jpeg');
this.addFileMimeType('CR2', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_CR2,
FileMimeTypeUtil.addFileMimeType('CR2', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_CR2,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/cr2');
this.addFileMimeType('PSD', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_PSD,
FileMimeTypeUtil.addFileMimeType('PSD', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_PSD,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/psd');
this.addFileMimeType('HEIC', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_HEIC,
FileMimeTypeUtil.addFileMimeType('HEIC', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_HEIC,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/heif');
this.addFileMimeType('HEIF', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_HEIC,
FileMimeTypeUtil.addFileMimeType('HEIF', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_HEIC,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/heif');
this.addFileMimeType('DNG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_RAW,
FileMimeTypeUtil.addFileMimeType('DNG', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_RAW,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/x-adobe-dng');
this.addFileMimeType('WEBP', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_WEBP,
FileMimeTypeUtil.addFileMimeType('WEBP', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_WEBP,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/webp');
this.addFileMimeType('TIF', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_TIF,
FileMimeTypeUtil.addFileMimeType('TIF', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_TIF,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/tiff');
this.addFileMimeType('ICO', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_ICO,
FileMimeTypeUtil.addFileMimeType('ICO', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_ICO,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/x-icon');
this.addFileMimeType('ARW', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_RAW,
FileMimeTypeUtil.addFileMimeType('ARW', MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_RAW,
$r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'),
$r('app.media.hidisk_icon_picture_grid_local'), 'image/x-sony-arw');
// 视频
this.addFileMimeType('RMVB', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_RMVB,
FileMimeTypeUtil.addFileMimeType('RMVB', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_RMVB,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-pn-realvideo');
this.addFileMimeType('M4U', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_M4U,
FileMimeTypeUtil.addFileMimeType('M4U', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_M4U,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/vnd.mpegurl');
this.addFileMimeType('M4V', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_M4V,
FileMimeTypeUtil.addFileMimeType('M4V', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_M4V,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-m4v');
this.addFileMimeType('MOV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MOV,
FileMimeTypeUtil.addFileMimeType('MOV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MOV,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/quicktime');
this.addFileMimeType('MP4', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
FileMimeTypeUtil.addFileMimeType('MP4', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/mp4');
this.addFileMimeType('MPE', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
FileMimeTypeUtil.addFileMimeType('MPE', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/mpeg');
this.addFileMimeType('MPEG', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2PS,
FileMimeTypeUtil.addFileMimeType('MPEG', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2PS,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/mpeg');
this.addFileMimeType('MPG4', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
FileMimeTypeUtil.addFileMimeType('MPG4', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/mpeg');
this.addFileMimeType('MKV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MKV,
FileMimeTypeUtil.addFileMimeType('MKV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MKV,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-matroska');
this.addFileMimeType('WEBM', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_WEBM,
FileMimeTypeUtil.addFileMimeType('WEBM', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_WEBM,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-matroska');
this.addFileMimeType('3GPP', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP,
FileMimeTypeUtil.addFileMimeType('3GPP', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/3gpp');
this.addFileMimeType('ASF', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_ASF,
FileMimeTypeUtil.addFileMimeType('ASF', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_ASF,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-ms-asf');
this.addFileMimeType('ASX', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_ASF,
FileMimeTypeUtil.addFileMimeType('ASX', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_ASF,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-ms-asf');
this.addFileMimeType('AVI', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_AVI,
FileMimeTypeUtil.addFileMimeType('AVI', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_AVI,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-msvideo');
this.addFileMimeType('FLV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_FLV,
FileMimeTypeUtil.addFileMimeType('FLV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_FLV,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-flv');
this.addFileMimeType('M2TS', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2PS,
FileMimeTypeUtil.addFileMimeType('M2TS', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2PS,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/mpeg');
this.addFileMimeType('3G2', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP2,
FileMimeTypeUtil.addFileMimeType('3G2', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP2,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/3gpp2');
this.addFileMimeType('WMV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_WMV,
FileMimeTypeUtil.addFileMimeType('WMV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_WMV,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-ms-wmv');
this.addFileMimeType('MPG', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
FileMimeTypeUtil.addFileMimeType('MPG', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/video/mp2p');
this.addFileMimeType('3GP', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP,
FileMimeTypeUtil.addFileMimeType('3GP', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/video/3gpp');
this.addFileMimeType('RV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_RV,
FileMimeTypeUtil.addFileMimeType('RV', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_RV,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-pn-realvideo');
this.addFileMimeType('TS', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2TS,
FileMimeTypeUtil.addFileMimeType('TS', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2TS,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/mp2ts');
this.addFileMimeType('DIVX', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_DIVX,
FileMimeTypeUtil.addFileMimeType('DIVX', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_DIVX,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/divx');
this.addFileMimeType('F4V', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_F4V,
FileMimeTypeUtil.addFileMimeType('F4V', MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_F4V,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'video/x-f4v');
// 文档
this.addFileMimeType('DOCX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('DOCX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'),
'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
this.addFileMimeType('DOC', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('DOC', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'), 'application/msword');
this.addFileMimeType('DOCM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('DOCM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'),
'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
this.addFileMimeType('DOTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('DOTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'),
'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
this.addFileMimeType('WPT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('WPT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'), 'application/wpt');
this.addFileMimeType('XLS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('XLS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'application/vnd.ms-excel');
this.addFileMimeType('XLSX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('XLSX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
this.addFileMimeType('XLSM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('XLSM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'application/vnd.ms-excel.sheet.macroEnabled.12');
this.addFileMimeType('XLTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('XLTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'application/vnd.ms-excel.template.macroEnabled.12');
this.addFileMimeType('ET', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('ET', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'application/et');
this.addFileMimeType('PPS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('PPS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/vnd.ms-powerpoint');
this.addFileMimeType('PPT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('PPT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/vnd.ms-powerpoint');
this.addFileMimeType('PPTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('PPTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'),
'application/vnd.openxmlformats-officedocument.presentationml.presentation');
this.addFileMimeType('PPTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('PPTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/vnd.ms-powerpoint.presentation.macroEnabled.12');
this.addFileMimeType('PPSM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('PPSM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12');
this.addFileMimeType('POTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('POTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/vnd.ms-powerpoint.presentation.macroEnabled.12');
this.addFileMimeType('DPS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('DPS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/dps');
this.addFileMimeType('DPT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('DPT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/dpt');
this.addFileMimeType('MSG', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('MSG', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'application/vnd.ms-outlook');
this.addFileMimeType('PDF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_PDF,
FileMimeTypeUtil.addFileMimeType('PDF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_PDF,
$r('app.media.hidisk_icon_pdf'), $r('app.media.hidisk_icon_pdf_grid'),
$r('app.media.hidisk_icon_pdf_grid_local'), 'application/pdf');
this.addFileMimeType('RTF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('RTF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'), 'application/rtf');
this.addFileMimeType('WPS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('WPS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'), 'application/vnd.ms-works');
this.addFileMimeType('XHTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('XHTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_xml'), $r('app.media.hidisk_icon_xml_grid'),
$r('app.media.hidisk_icon_xml_grid_local'), 'application/xhtml+xml');
this.addFileMimeType('MPC', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('MPC', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/vnd.mpohun.certificate');
this.addFileMimeType('JS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('JS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'application/x-javascript');
this.addFileMimeType('C', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('C', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('CONF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('CONF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('CPP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('CPP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('H', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('H', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('HTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
FileMimeTypeUtil.addFileMimeType('HTM', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
$r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'),
$r('app.media.hidisk_icon_html_grid_local'), 'text/html');
this.addFileMimeType('HTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
FileMimeTypeUtil.addFileMimeType('HTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
$r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'),
$r('app.media.hidisk_icon_html_grid_local'), 'text/html');
this.addFileMimeType('JAVA', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('JAVA', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('LOG', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('LOG', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_log'), $r('app.media.hidisk_icon_log_grid'),
$r('app.media.hidisk_icon_log_grid_local'), 'text/plain');
this.addFileMimeType('PROP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('PROP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('RC', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('RC', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('SH', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('SH', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('TXT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_TEXT,
FileMimeTypeUtil.addFileMimeType('TXT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_TEXT,
$r('app.media.hidisk_icon_text'), $r('app.media.hidisk_icon_text_grid'),
$r('app.media.hidisk_icon_text_grid_local'), 'text/plain');
this.addFileMimeType('XML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_XML,
FileMimeTypeUtil.addFileMimeType('XML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_XML,
$r('app.media.hidisk_icon_xml'), $r('app.media.hidisk_icon_xml_grid'),
$r('app.media.hidisk_icon_xml_grid_local'), 'text/plain');
this.addFileMimeType('SUB', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('SUB', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/x-subviewer');
this.addFileMimeType('ASS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('ASS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/x-ssa');
this.addFileMimeType('SSA', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('SSA', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/x-ssa');
this.addFileMimeType('JAD', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/vnd.sun.j2me.app-descriptor');
this.addFileMimeType('DHTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
FileMimeTypeUtil.addFileMimeType('DHTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
$r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'),
$r('app.media.hidisk_icon_html_grid_local'), 'text/html');
this.addFileMimeType('SHTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
FileMimeTypeUtil.addFileMimeType('SHTML', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML,
$r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'),
$r('app.media.hidisk_icon_html_grid_local'), 'text/html');
this.addFileMimeType('TEXT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_TEXT,
FileMimeTypeUtil.addFileMimeType('TEXT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_TEXT,
$r('app.media.hidisk_icon_text'), $r('app.media.hidisk_icon_text_grid'),
$r('app.media.hidisk_icon_text_grid_local'), 'text/plain');
this.addFileMimeType('INI', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('INI', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/plain');
this.addFileMimeType('VCS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('VCS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/x-vcalendar');
this.addFileMimeType('ICS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('ICS', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/calendar');
this.addFileMimeType('JSP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('JSP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/html');
this.addFileMimeType('ASP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('ASP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/html');
this.addFileMimeType('PHP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
FileMimeTypeUtil.addFileMimeType('PHP', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT,
$r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'),
$r('app.media.hidisk_icon_file_grid_local'), 'text/html');
this.addFileMimeType('DOTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('DOTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'),
'application/vnd.openxmlformats-officedocument.wordprocessingml.template');
this.addFileMimeType('DOT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
FileMimeTypeUtil.addFileMimeType('DOT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD,
$r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'),
$r('app.media.hidisk_icon_doc_grid_local'), 'application/msword');
this.addFileMimeType('XLT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('XLT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'application/vnd.ms-excel');
this.addFileMimeType('XLTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('XLTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'),
'application/vnd.openxmlformats-officedocument.spreadsheetml.template');
this.addFileMimeType('CSV', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
FileMimeTypeUtil.addFileMimeType('CSV', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL,
$r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'),
$r('app.media.hidisk_icon_xls_grid_local'), 'text/comma-separated-values');
this.addFileMimeType('POT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('POT', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'), 'application/vnd.ms-powerpoint');
this.addFileMimeType('POTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('POTX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'),
'application/vnd.openxmlformats-officedocument.presentationml.template');
this.addFileMimeType('PPSX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
FileMimeTypeUtil.addFileMimeType('PPSX', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT,
$r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'),
$r('app.media.hidisk_icon_ppt_grid_local'),
'application/vnd.openxmlformats-officedocument.presentationml.slideshow');
this.addFileMimeType('VCF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_VCF,
FileMimeTypeUtil.addFileMimeType('VCF', MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_VCF,
$r('app.media.hidisk_icon_vcard'), $r('app.media.hidisk_icon_vcard_grid'),
$r('app.media.hidisk_icon_vcard_grid_local'), 'text/x-vcard');
// 音频
this.addFileMimeType('3GPP2', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_3GPP2,
FileMimeTypeUtil.addFileMimeType('3GPP2', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_3GPP2,
$r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'),
$r('app.media.hidisk_icon_video_grid_local'), 'audio/3gpp2');
this.addFileMimeType('IMY', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_IMY,
FileMimeTypeUtil.addFileMimeType('IMY', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_IMY,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/imelody');
this.addFileMimeType('AAC', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AAC,
FileMimeTypeUtil.addFileMimeType('AAC', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AAC,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/aac');
this.addFileMimeType('AMR', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AMR,
FileMimeTypeUtil.addFileMimeType('AMR', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AMR,
$r('app.media.hidisk_icon_music_amr'), $r('app.media.hidisk_icon_audio_amr_grid'),
$r('app.media.hidisk_icon_audio_amr_grid_local'), 'audio/amr');
this.addFileMimeType('MID', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
FileMimeTypeUtil.addFileMimeType('MID', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/midi');
this.addFileMimeType('MPGA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MPGA,
FileMimeTypeUtil.addFileMimeType('MPGA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MPGA,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/mpeg');
this.addFileMimeType('MXMF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MXMF,
FileMimeTypeUtil.addFileMimeType('MXMF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MXMF,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/mobile-xmf');
this.addFileMimeType('RTTTL', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
FileMimeTypeUtil.addFileMimeType('RTTTL', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/midi');
this.addFileMimeType('RTX', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
FileMimeTypeUtil.addFileMimeType('RTX', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/midi');
this.addFileMimeType('SMF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_SMF,
FileMimeTypeUtil.addFileMimeType('SMF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_SMF,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/sp-midi');
this.addFileMimeType('WAV', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WAV,
FileMimeTypeUtil.addFileMimeType('WAV', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WAV,
$r('app.media.hidisk_icon_music_wav'), $r('app.media.hidisk_icon_audio_wav_grid'),
$r('app.media.hidisk_icon_audio_wav_grid_local'), 'audio/x-wav');
this.addFileMimeType('WMA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WMA,
FileMimeTypeUtil.addFileMimeType('WMA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WMA,
$r('app.media.hidisk_icon_music_wma'), $r('app.media.hidisk_icon_audio_wma_grid'),
$r('app.media.hidisk_icon_audio_wma_grid_local'), 'audio/x-ms-wma');
this.addFileMimeType('OTA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
FileMimeTypeUtil.addFileMimeType('OTA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/midi');
this.addFileMimeType('XMF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
FileMimeTypeUtil.addFileMimeType('XMF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/midi');
this.addFileMimeType('OGG', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_OGG,
FileMimeTypeUtil.addFileMimeType('OGG', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_OGG,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/ogg');
this.addFileMimeType('PLS', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_PLS,
FileMimeTypeUtil.addFileMimeType('PLS', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_PLS,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-scpls');
this.addFileMimeType('RA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RA,
FileMimeTypeUtil.addFileMimeType('RA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RA,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-pn-realaudio');
this.addFileMimeType('RAM', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RAM,
FileMimeTypeUtil.addFileMimeType('RAM', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RAM,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-pn-realaudio');
this.addFileMimeType('MIDI', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
FileMimeTypeUtil.addFileMimeType('MIDI', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/midi');
this.addFileMimeType('M3U', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_M3U,
FileMimeTypeUtil.addFileMimeType('M3U', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_M3U,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-mpegurl');
this.addFileMimeType('M4A', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_M4A,
FileMimeTypeUtil.addFileMimeType('M4A', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_M4A,
$r('app.media.hidisk_icon_music_m4a'), $r('app.media.hidisk_icon_audio_m4a_grid'),
$r('app.media.hidisk_icon_audio_m4a_grid_local'), 'audio/mp4a-latm');
this.addFileMimeType('M4B', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP4A,
FileMimeTypeUtil.addFileMimeType('M4B', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP4A,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/mp4a-latm');
this.addFileMimeType('M4P', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP4A,
FileMimeTypeUtil.addFileMimeType('M4P', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP4A,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/mp4a-latm');
this.addFileMimeType('AWB', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AWB,
FileMimeTypeUtil.addFileMimeType('AWB', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AWB,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/amr-wb');
this.addFileMimeType('MP2', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP2,
FileMimeTypeUtil.addFileMimeType('MP2', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP2,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-mpeg');
this.addFileMimeType('MP3', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP3,
FileMimeTypeUtil.addFileMimeType('MP3', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP3,
$r('app.media.hidisk_icon_music_mp3'), $r('app.media.hidisk_icon_audio_mp3_grid'),
$r('app.media.hidisk_icon_audio_mp3_grid_local'), 'audio/x-mpeg');
this.addFileMimeType('AU', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AU,
FileMimeTypeUtil.addFileMimeType('AU', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AU,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/basic');
this.addFileMimeType('OGA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_OGG,
FileMimeTypeUtil.addFileMimeType('OGA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_OGG,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'application/ogg');
this.addFileMimeType('WPL', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WPL,
FileMimeTypeUtil.addFileMimeType('WPL', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WPL,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'application/vnd.ms-wpl');
this.addFileMimeType('AC3', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AC3,
FileMimeTypeUtil.addFileMimeType('AC3', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AC3,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/ac3');
this.addFileMimeType('MKA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MKA,
FileMimeTypeUtil.addFileMimeType('MKA', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MKA,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-matroska');
this.addFileMimeType('FLAC', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_FLAC,
FileMimeTypeUtil.addFileMimeType('FLAC', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_FLAC,
$r('app.media.hidisk_icon_music_flac'), $r('app.media.hidisk_icon_audio_flac_grid'),
$r('app.media.hidisk_icon_audio_flac_grid_local'), 'audio/flac');
this.addFileMimeType('AIF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF,
FileMimeTypeUtil.addFileMimeType('AIF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-aiff');
this.addFileMimeType('AIFF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF,
FileMimeTypeUtil.addFileMimeType('AIFF', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-aiff');
this.addFileMimeType('AIFC', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF,
FileMimeTypeUtil.addFileMimeType('AIFC', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-aiff');
this.addFileMimeType('APE', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_APE,
FileMimeTypeUtil.addFileMimeType('APE', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_APE,
$r('app.media.hidisk_icon_music_ape'), $r('app.media.hidisk_icon_audio_ape_grid'),
$r('app.media.hidisk_icon_audio_ape_grid_local'), 'audio/x-ape');
this.addFileMimeType('RM', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RM_AUDIO,
FileMimeTypeUtil.addFileMimeType('RM', MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RM_AUDIO,
$r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'),
$r('app.media.hidisk_icon_audio_grid_local'), 'audio/x-pn-realaudio');
// 压缩包
this.addFileMimeType('GTAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_ZIP,
FileMimeTypeUtil.addFileMimeType('GTAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_ZIP,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-gtar');
this.addFileMimeType('RAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_RAR,
FileMimeTypeUtil.addFileMimeType('RAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_RAR,
$r('app.media.hidisk_icon_rar'), $r('app.media.hidisk_icon_rar_grid'),
$r('app.media.hidisk_icon_rar_grid_local'), 'application/x-rar-compressed');
this.addFileMimeType('TAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_TAR,
FileMimeTypeUtil.addFileMimeType('TAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_TAR,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-tar');
this.addFileMimeType('TGZ', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_TGZ,
FileMimeTypeUtil.addFileMimeType('TGZ', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_TGZ,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-compressed');
this.addFileMimeType('Z', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_Z,
FileMimeTypeUtil.addFileMimeType('Z', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_Z,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-compressed');
this.addFileMimeType('ZIP', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_ZIP,
FileMimeTypeUtil.addFileMimeType('ZIP', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_ZIP,
$r('app.media.hidisk_icon_zip'), $r('app.media.hidisk_icon_zip_grid'),
$r('app.media.hidisk_icon_zip_grid_local'), 'application/zip');
this.addFileMimeType('JAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_JAR,
FileMimeTypeUtil.addFileMimeType('JAR', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_JAR,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'text/vnd.sun.j2me.app-descriptor');
this.addFileMimeType('GZ', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_GZ,
FileMimeTypeUtil.addFileMimeType('GZ', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_GZ,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-gzip');
this.addFileMimeType('BZ', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_BZ,
FileMimeTypeUtil.addFileMimeType('BZ', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_BZ,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-bzip');
this.addFileMimeType('BZ2', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_BZ2,
FileMimeTypeUtil.addFileMimeType('BZ2', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_BZ2,
$r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'),
$r('app.media.hidisk_icon_compress_grid_local'), 'application/x-bzip2');
this.addFileMimeType('7Z', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_7Z,
FileMimeTypeUtil.addFileMimeType('7Z', MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_7Z,
$r('app.media.hidisk_icon_7z'), $r('app.media.hidisk_icon_7z_grid'),
$r('app.media.hidisk_icon_7z_grid_local'), 'application/x-7z-compressed');
// 安装包
this.addFileMimeType('APK', MimeType.FILE_CATEGORY_PKG, FileMimeTypeUtil.FILE_TYPE_APK,
$r('app.media.hidisk_icon_application'), $r('app.media.hidisk_icon_application_grid'),
$r('app.media.hidisk_icon_application_grid_local'), 'application/vnd.android.package-archive');
this.addFileMimeType('HAP', MimeType.FILE_CATEGORY_PKG, FileMimeTypeUtil.FILE_TYPE_HAP,
FileMimeTypeUtil.addFileMimeType('HAP', MimeType.FILE_CATEGORY_PKG, FileMimeTypeUtil.FILE_TYPE_HAP,
$r('app.media.hidisk_icon_application'), $r('app.media.hidisk_icon_application_grid'),
$r('app.media.hidisk_icon_application_grid_local'), 'file/*');
// 未知
this.addFileMimeType('EXE', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('EXE', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
this.addFileMimeType('BIN', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('BIN', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
this.addFileMimeType('CLASS', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('CLASS', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
this.addFileMimeType('RAW', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('RAW', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
this.addFileMimeType('EPUB', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('EPUB', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/epub+zip');
this.addFileMimeType('EBK3', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('EBK3', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/x-expandedbook');
this.addFileMimeType('SAMI', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('SAMI', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/x-sami');
this.addFileMimeType('SMI', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('SMI', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/x-sami');
this.addFileMimeType('STR', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('STR', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/x-subrip');
this.addFileMimeType('SWF', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('SWF', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/x-shockwave-flash');
this.addFileMimeType('CAB', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('CAB', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/x-shockwave-flash');
this.addFileMimeType('CHM', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('CHM', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_chm'), $r('app.media.hidisk_icon_chm_grid'),
$r('app.media.hidisk_icon_chm_grid_local'), 'application/x-chm');
this.addFileMimeType('UMD', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('UMD', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/umd');
this.addFileMimeType('PDB', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('PDB', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/ebook');
this.addFileMimeType('DCF', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('DCF', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/vnd.oma.drm.content');
this.addFileMimeType('K3G', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('K3G', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
this.addFileMimeType('MPO', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
FileMimeTypeUtil.addFileMimeType('MPO', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
this.addFileMimeType('MMF', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_MMF,
FileMimeTypeUtil.addFileMimeType('MMF', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_MMF,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/vnd.smaf');
this.addFileMimeType('QCP', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_QCP,
FileMimeTypeUtil.addFileMimeType('QCP', MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_QCP,
$r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'),
$r('app.media.hidisk_icon_unknown_grid_local'), 'application/octet-stream');
}
@@ -714,8 +710,8 @@ export class FileMimeTypeUtil {
}
suffix = splitList[splitList.length-2].toUpperCase();
}
const fileMiMeTypeMap = this.getFileMiMeTypeMap();
const mimeType: MimeType = fileMiMeTypeMap.get(suffix);
const fileMiMeTypeMap = FileMimeTypeUtil.getFileMiMeTypeMap();
const mimeType: MimeType | undefined = fileMiMeTypeMap.get(suffix);
if (!mimeType) {
return FileMimeTypeUtil.UNKNOW_MIMETYPE;
}
@@ -745,7 +741,7 @@ export class FileMimeTypeUtil {
}
public static getFileTypeOrder(fileName: string): number {
const mimeType = this.getFileMimeType(fileName);
const mimeType = FileMimeTypeUtil.getFileMimeType(fileName);
return mimeType.getFileTypeSort();
}
}
@@ -22,13 +22,20 @@ import Logger from '../log/Logger';
import { PickerWindowType } from '../constants/FilePickerItems';
import { StartModeOptions } from '../model/StartModeOptions';
import AbilityCommonUtil from './AbilityCommonUtil';
import { FilesData } from '../../databases/model/FileData';
import ctx from '@ohos.app.ability.common';
interface abilityResultInterface {
export interface abilityResultInterface {
want: Want,
resultCode: number
};
export interface PickerStatus {
exceedLimit: boolean,
differentTypes: boolean
}
const TAG = 'FilePickerUtil';
export namespace FilePickerUtil {
@@ -105,20 +112,21 @@ export namespace FilePickerUtil {
* @param checkedNum 选中数量
* @return 是否超限 选择类型是否不匹配
*/
export function pickerStatus(item, checkedNum, startModeOptions:StartModeOptions) {
return {
export function pickerStatus(item: FilesData, checkedNum: number, startModeOptions:StartModeOptions): PickerStatus {
let status: PickerStatus = {
// 选择是否超限
exceedLimit: checkedNum >= globalThis.filePickNum && !item.isChecked,
// 选择类型是否不匹配
differentTypes: !checkFileSelectable(item, startModeOptions)
};
return status;
}
/**
* 根据文件后缀判断文件是否可选
* @param item
*/
function checkFileSelectable(item, startModeOptions: StartModeOptions): boolean {
function checkFileSelectable(item: FilesData, startModeOptions: StartModeOptions): boolean {
// selectMode检查
let selectMode: number = startModeOptions.selectMode;
let isFolder = false;
@@ -221,7 +229,7 @@ function checkFileMimetype(fileName: string, startModeOptions: StartModeOptions)
export const filePickerTip = (startModeOptions: StartModeOptions) => {
globalThis.abilityContext.resourceManager.getPluralString($r('app.plural.filePickerTip').id,
startModeOptions.maxSelectNumber)
.then((value) => {
.then((value: string) => {
toast(value)
})
}
+20 -18
View File
@@ -25,6 +25,16 @@ import { photoAccessHelper } from '@kit.MediaLibraryKit';
const TAG = 'FileUtil';
export class ErrCodeMessage {
code: number = 0;
message: string = '';
}
export class ErrUri {
err: ErrCodeMessage = new ErrCodeMessage();
uri: string = '';
}
export class FileUtil {
/**
* uri 格式开头
@@ -230,36 +240,28 @@ export class FileUtil {
* @param newName newName
* @returns {err, uri}
*/
public static async rename(fileAccessHelper: fileAccess.FileAccessHelper, oldUri: string, newName: string): Promise<{
err,
uri
}> {
let uri: string = '';
let err: any;
public static async rename(fileAccessHelper: fileAccess.FileAccessHelper, oldUri: string, newName: string): Promise<ErrUri> {
let errUri: ErrUri = new ErrUri();
try {
uri = await fileAccessHelper.rename(oldUri, newName);
errUri.uri = await fileAccessHelper.rename(oldUri, newName);
} catch (error) {
err = { code: error.code, message: error.message };
errUri.err = { code: error.code, message: error.message };
Logger.e(TAG, 'rename error occurred:' + error.code + ', ' + error.message);
}
return { err: err, uri: uri };
return errUri;
}
public static async createFile(fileAccessHelper: fileAccess.FileAccessHelper, parentUri: string,
fileName: string): Promise<{
err,
uri
}> {
let retUri: string = '';
let err: any;
fileName: string): Promise<ErrUri> {
let errUri: ErrUri = new ErrUri();
try {
Logger.i(TAG, 'createFile ' + fileAccessHelper + '; ' + parentUri + " ; " + fileName);
retUri = await fileAccessHelper.createFile(parentUri, fileName);
errUri.uri = await fileAccessHelper.createFile(parentUri, fileName);
} catch (e) {
Logger.e(TAG, 'createFile error: ' + e.code + ', ' + e.message);
err = { code: e.code, message: e.message };
errUri.err = { code: e.code, message: e.message };
}
return { err: err, uri: retUri };
return errUri;
}
public static hasSubFolder(loadPath: string, curFolderPath: string): boolean {
+13 -12
View File
@@ -19,13 +19,14 @@ import { FileMimeTypeUtil } from './FileMimeTypeUtil';
import { MimeType } from '../../databases/model/MimeType';
import Logger from '../log/Logger';
import { FileBase } from '../../databases/model/base/FileBase';
import { FilesData } from '../../databases/model/FileData';
const TAG = 'Tools';
/**
* 格式化显示大小
*/
export const renderSize = (value, carry = BYTE.ONE_KB) => {
export const renderSize = (value: string, carry = BYTE.ONE_KB) => {
if (!value) {
return '0 B';
}
@@ -53,14 +54,14 @@ export const formatSuffix = (fileName: string) => {
if (newValue[newValue.length - 1].toUpperCase() === FileMimeTypeUtil.SUFFIX_DLP) {
newValue.pop();
}
return newValue.pop().toUpperCase();
return newValue.pop()?.toUpperCase();
}
/**
* @description 多选框选中状态
* @param flag 是否选中
*/
export const getRightIcon = (flag) => {
export const getRightIcon = (flag: boolean) => {
return flag ? $r('app.media.checkbox_b') : $r('app.media.checkbox_g');
}
@@ -84,7 +85,7 @@ export const randomId = (): string => {
* @param resource: 指定资源
* @return
*/
export function getResourceString(resource: Resource, ...args): string {
export function getResourceString(resource: Resource, ...args: (string | number)[]): string {
let isString = /%s/; // 字符串类型
let isNum = /%d/; // 数字类型
let resStr = '';
@@ -116,13 +117,13 @@ export function getResourceString(resource: Resource, ...args): string {
export const getFileIcon = (fileName: string, isFolder: boolean = false): MimeType => {
if (isFolder) {
return new MimeType(
null,
'',
MimeType.FILE_CATEGORY_UNKNOW,
FileMimeTypeUtil.FILE_TYPE_UNKNOW,
$r('app.media.hidisk_icon_folder'),
$r('app.media.hidisk_icon_folder_grid'),
$r('app.media.hidisk_icon_folder_grid'),
null
''
);
}
return FileMimeTypeUtil.getFileMimeType(fileName);
@@ -132,11 +133,11 @@ export const getFileIcon = (fileName: string, isFolder: boolean = false): MimeTy
* @description 实现文件排序,时间倒序
* @param dataList: 待排序的文件列表
*/
export const sortDataByTime = (dataList) => {
export const sortDataByTime = (dataList: FilesData[]): FilesData[] => {
// 按照时间排序
// 规避@State修饰的数组变量执行sort方法不生效问题
const fileList = dataList.filter(item => item);
return fileList.sort((a, b) => {
// const fileList: FilesData[] = dataList.filter(((item: bool) => {return item});
return [...dataList].sort((a, b): number => {
if (b.mtime !== a.mtime) {
return b.mtime - a.mtime;
} else {
@@ -150,7 +151,7 @@ function compareStr(str1: string, str2: string) {
return str2.localeCompare(str1, language);
}
export const gridName = (fileName) => {
export const gridName = (fileName: string): string => {
// 文件名超长是中间部分'...'显示
const MAX_LENGTH = 11;
if (fileName.length > MAX_LENGTH) {
@@ -165,9 +166,9 @@ export const gridName = (fileName) => {
* @param value: 文件名
* @result true/false
*/
export const isDlpFile = (value): boolean => {
export const isDlpFile = (value: string): boolean => {
let newValue = value.split('.');
if (newValue.pop().toUpperCase() === 'DLP') {
if (newValue.pop()?.toUpperCase() === 'DLP') {
return true;
}
return false;
@@ -20,7 +20,7 @@ export class BasicDataSource implements IDataSource {
return 0
}
public getData(index: number): any {
public getData(index: number): ESObject {
return undefined
}
@@ -19,7 +19,7 @@ import DateTimeUtil from '../../base/utils/DateTimeUtil';
import { FileMimeTypeUtil } from '../../base/utils/FileMimeTypeUtil';
import LanguageUtil from '../../base/utils/LanguageUtil';
import { MimeType } from './MimeType';
import { THUMBNAIL_SIZE } from '../../base/constants/UiConstant';
import { ThumbnailSize } from '../../base/constants/UiConstant';
import { BasicDataSource } from './BasicDataSource';
import AbilityCommonUtil, { ResultCodePicker } from '../../base/utils/AbilityCommonUtil';
import { StartModeOptions } from '../../base/model/StartModeOptions';
@@ -56,7 +56,7 @@ export class FileAssetLazyModel extends BasicDataSource {
});
}
public getIndex(uri): number {
public getIndex(uri: string): number {
return this.dataArray.findIndex(item => item.uri === uri);
}
@@ -64,7 +64,7 @@ export class FileAssetLazyModel extends BasicDataSource {
return this.dataArray.filter(item => item.isChecked);
}
public replaceData(index, data: FileAssetModel): void {
public replaceData(index: number, data: FileAssetModel): void {
this.dataArray.splice(index, 1, data);
this.notifyDataChange(index);
}
@@ -117,16 +117,16 @@ export class FileAssetModel {
public fileName: string;
public fullPath: string;
public isChecked: boolean = false;
public suffix: string;
public suffix: string = '';
public icon: Resource | PixelMap;
public gridIcon: Resource | PixelMap;
public localGridIcon: Resource | PixelMap;
public lastModifiedDate: string | Resource;
public thumbUri: string;
public thumbUri: string = '';
public sortLabel: string = '';
public mimeTypeObj: MimeType;
constructor(file) {
constructor(file: FileAssetModel) {
this.id = file.id;
this.uri = file.uri;
this.mimeType = file.mimeType;
@@ -152,14 +152,18 @@ export class FileAssetModel {
this.fileName = file.displayName;
this.mimeTypeObj = FileMimeTypeUtil.getFileMimeType(this.fileName);
this.fullPath = getFullPath(this);
this.suffix = formatSuffix(file.fileName);
let suffix = formatSuffix(this.fileName);
if (suffix !== undefined) {
this.suffix = suffix;
}
this.icon = this.mimeTypeObj.getResID();
this.gridIcon = this.mimeTypeObj.getGridResID();
this.localGridIcon = this.mimeTypeObj.getLocalGridResID();
this.lastModifiedDate = DateTimeUtil.getDateStringForCategory(this.dateModified);
this.sortLabel = file.sortLabel;
if (this.mimeTypeObj.isMedia()) {
this.thumbUri = `${this.uri}/thumbnail/${THUMBNAIL_SIZE.WIDTH}/${THUMBNAIL_SIZE.HEIGHT}`;
this.thumbUri = `${this.uri}/thumbnail/${ThumbnailSize.WIDTH}/${ThumbnailSize.HEIGHT}`;
}
}
@@ -171,7 +175,7 @@ export class FileAssetModel {
this.gridIcon = this.mimeTypeObj.getGridResID();
this.localGridIcon = this.mimeTypeObj.getLocalGridResID();
if (this.mimeTypeObj.isMedia()) {
this.thumbUri = `${this.uri}/thumbnail/${THUMBNAIL_SIZE.WIDTH}/${THUMBNAIL_SIZE.HEIGHT}`;
this.thumbUri = `${this.uri}/thumbnail/${ThumbnailSize.WIDTH}/${ThumbnailSize.HEIGHT}`;
}
}
@@ -187,9 +191,9 @@ export class FileAssetModel {
* @param isDesc 是否倒序
* @return 排序后的数组
*/
function sortFileAssetList(dataList) {
function sortFileAssetList(dataList: FileAssetModel[]): FileAssetModel[] {
const language = LanguageUtil.getSystemLanguage();
return dataList.sort((a, b) => {
return dataList.sort((a: FileAssetModel, b: FileAssetModel) => {
if (b.dateModified !== a.dateModified) {
return b.dateModified - a.dateModified;
} else {
@@ -303,7 +307,7 @@ export function getFullPath(file: FileAssetModel): string {
* @param order 排序规则
* @return 设置了label的文件数组
*/
export function addSortLabel(fileAssetList): FileAssetModel[] {
export function addSortLabel(fileAssetList: FileAssetModel[]): FileAssetModel[] {
fileAssetList.forEach((fileAsset: FileAssetModel) => {
fileAsset.sortLabel = DateTimeUtil.getDateStringForCategory(fileAsset.dateModified);
});
+67 -51
View File
@@ -16,7 +16,7 @@
import { getFileIcon, randomId, formatSuffix } from '../../base/utils/Tools';
import { MILLISECOND } from '../../base/constants/Constant';
import fileAccess from '@ohos.file.fileAccess';
import { THUMBNAIL_SIZE } from '../../base/constants/UiConstant';
import { ThumbnailSize } from '../../base/constants/UiConstant';
import { MimeType } from './MimeType';
import { BasicDataSource } from './BasicDataSource';
import AbilityCommonUtil, { ResultCodePicker } from '../../base/utils/AbilityCommonUtil';
@@ -25,15 +25,25 @@ import { ArrayUtil } from '../../base/utils/ArrayUtil';
import { StartModeOptions } from '../../base/model/StartModeOptions';
export class BreadData {
public title: string;
public url: string;
public title: string = '';
public url: string = '';
public fileIterator?: fileAccess.FileInfo;
}
constructor(obj) {
this.title = obj.title;
this.url = obj.url;
this.fileIterator = obj.fileIterator;
}
export interface TransList {
fileList: FilesData[];
folderList: FilesData[]
}
export class MkDirItem {
mkdirName: string = '';
path: string = ''
}
export class MoveCallBackParams {
cancel: boolean = false;
fileName: string = '';
selectUri: string = ''
}
export class FileDataSource extends BasicDataSource {
@@ -62,13 +72,13 @@ export class FileDataSource extends BasicDataSource {
return this.dataArray[index];
}
public selectAll(isSelected): void {
public selectAll(isSelected: boolean): void {
this.dataArray.forEach(item => {
item.isChecked = isSelected;
});
}
public getIndex(uri): number {
public getIndex(uri: string): number {
return this.dataArray.findIndex(item => item.uri === uri);
}
@@ -76,7 +86,7 @@ export class FileDataSource extends BasicDataSource {
return this.dataArray.filter(item => item.isChecked);
}
public replaceData(index, data: FilesData): void {
public replaceData(index: number, data: FilesData): void {
this.dataArray.splice(index, 1, data);
this.notifyDataChange(index);
}
@@ -101,24 +111,25 @@ export class FileDataSource extends BasicDataSource {
}
export class FilesData {
public id: string;
public uri: string;
public thumbUri: string;
public displayName: string;
public deviceId: string;
public flags: number;
public name: string;
public fileName: string;
public mode: string;
public size: number;
public mtime: number;
public suffix: string;
public mimeType: string;
public icon: any;
public gridIcon: any;
public localGridIcon: any;
public isChecked: boolean;
public id: string = '';
public uri: string = '';
public thumbUri: string = '';
public displayName: string = '';
public deviceId: string = '';
public flags: number = 0;
public name: string ='';
public fileName: string = '';
public mode: string = '';
public size: number = 0;
public mtime: number = 0;
public suffix: string | undefined;
public mimeType: string = '';
public icon: ESObject;
public gridIcon: ESObject;
public localGridIcon: ESObject;
public isChecked: boolean = false;
public path?: string;
public relativePath: string = '';
public sub?: number;
public scale?: number;
public angle?: number;
@@ -132,23 +143,28 @@ export class FilesData {
public isVideo: boolean = false;
public isAudio: boolean = false;
public isFolder: boolean = false;
public duration: number;
public mimeTypeObj: MimeType;
public subFolderList: FilesData[];
public subFileList: FilesData[];
public layer: number;
public duration: number = 0;
public mimeTypeObj: MimeType | undefined = undefined;
public subFolderList: FilesData[] = [];
public subFileList: FilesData[] = [];
public layer: number = 0;
public autoShow: boolean = false;
public currentDir?: string;
constructor(obj) {
this.isFolder = obj.isFolder || FileUtil.isFolder(obj.mode);
constructor(obj?: FilesData) {
if (obj === undefined) {
return;
}
this.isFolder = obj.isFolder || FileUtil.isFolder(parseInt(obj.mode));
this.id = obj.id || randomId();
this.uri = obj.uri || '';
this.deviceId = obj.deviceId || '';
this.flags = obj.flags || 0;
this.name = obj.name || '';
this.fileName = obj.fileName || obj.displayName || '';
this.suffix = formatSuffix(this.fileName);
if (formatSuffix(this.fileName) !== undefined) {
this.suffix = formatSuffix(this.fileName);
}
this.mode = obj.mode || '';
this.size = obj.size || 0;
this.mtime = obj.mtime * MILLISECOND.ONE_SECOND || 0;
@@ -165,13 +181,13 @@ export class FilesData {
this.fileIterator = obj.fileIterator;
this.duration = obj.duration || 0;
this.mimeTypeObj = getFileIcon(this.fileName, this.isFolder);
this.icon = this.mimeTypeObj.getResID();
this.gridIcon = this.mimeTypeObj.getGridResID();
this.localGridIcon = this.mimeTypeObj.getLocalGridResID();
if (this.mimeTypeObj.isMedia()) {
this.icon = this.mimeTypeObj?.getResID();
this.gridIcon = this.mimeTypeObj?.getGridResID();
this.localGridIcon = this.mimeTypeObj?.getLocalGridResID();
if (this.mimeTypeObj?.isMedia()) {
this.thumbUri = this.uri;
}
if (this.isFolder) {
if (this.isFolder && this.fileIterator !== undefined) {
this.sub = getSubFileNum(this.fileIterator);
}
this.currentDir = FileUtil.getCurrentDir(this.path, this.isFolder);
@@ -180,11 +196,11 @@ export class FilesData {
setFileName(fileName: string): void {
this.fileName = fileName;
this.mimeTypeObj = getFileIcon(this.fileName);
this.icon = this.mimeTypeObj.getResID();
this.gridIcon = this.mimeTypeObj.getGridResID();
this.localGridIcon = this.mimeTypeObj.getLocalGridResID();
if (this.mimeTypeObj.isMedia()) {
this.thumbUri = `${this.uri}/thumbnail/${THUMBNAIL_SIZE.WIDTH}/${THUMBNAIL_SIZE.HEIGHT}`;
this.icon = this.mimeTypeObj?.getResID();
this.gridIcon = this.mimeTypeObj?.getGridResID();
this.localGridIcon = this.mimeTypeObj?.getLocalGridResID();
if (this.mimeTypeObj?.isMedia()) {
this.thumbUri = `${this.uri}/thumbnail/${ThumbnailSize.WIDTH}/${ThumbnailSize.HEIGHT}`;
}
}
@@ -270,10 +286,10 @@ export class SelectedFileData {
public isFolder: boolean;
public displayName?: string;
constructor(obj) {
this.id = obj.id || -1;
constructor(obj: SelectedFileData) {
this.id = obj.id || '-1';
this.uri = obj.uri || '';
this.mimeType = obj.mimetype || '';
this.mimeType = obj.mimeType || '';
this.thumbUri = obj.thumbUri || '';
this.title = obj.title || '';
this.fileName = obj.fileName || obj.displayName || '';
@@ -317,9 +333,9 @@ export class FileDetail {
public key: string | Resource;
public value: string | Resource;
public path?: string = '';
public params?: any;
public params?: ESObject;
constructor(key: string, value: string, path: string, params: any) {
constructor(key: string, value: string, path: string, params: ESObject) {
this.key = key;
this.value = value;
this.path = path;
+15 -15
View File
@@ -18,9 +18,9 @@ import Logger from '../base/log/Logger';
import ErrorCodeConst from '../base//constants/ErrorCodeConst';
import { toast } from '../base/utils/Common';
import AbilityCommonUtil, { ResultCodePicker } from '../base/utils/AbilityCommonUtil';
import { SYSTEM_BAR_COLOR } from '../base/constants/UiConstant';
import { SystemBarColor } from '../base/constants/UiConstant';
import StringUtil from '../base/utils/StringUtil';
import { FileUtil } from '../base/utils/FileUtil';
import { FileUtil, ErrUri, ErrCodeMessage } from '../base/utils/FileUtil';
import ObjectUtil from '../base/utils/ObjectUtil';
import fileAccess from '@ohos.file.fileAccess';
import { ArrayUtil } from '../base/utils/ArrayUtil';
@@ -28,6 +28,8 @@ import { UiUtil } from '../base/utils/UiUtil';
import { StartModeOptions } from '../base/model/StartModeOptions';
import { FilePickerUtil } from '../base/utils/FilePickerUtil';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { BusinessError } from '@ohos.base';
import { MoveCallBackParams } from '../databases/model/FileData'
const TAG = 'PathSelector';
let storage = LocalStorage.getShared();
@@ -39,10 +41,10 @@ struct PathSelector {
@State createResultType: number = ErrorCodeConst.PICKER.NORMAL;
aboutToAppear() {
UiUtil.setWindowBackground(SYSTEM_BAR_COLOR.LIGHT_GRAY);
UiUtil.setWindowBackground(SystemBarColor.LIGHT_GRAY);
}
async saveFileCallback(res, startModeOptions: StartModeOptions): Promise<void> {
async saveFileCallback(res: MoveCallBackParams, startModeOptions: StartModeOptions): Promise<void> {
if (res?.cancel) {
AbilityCommonUtil.terminatePathPicker([], ResultCodePicker.CANCEL, startModeOptions);
return;
@@ -54,7 +56,7 @@ struct PathSelector {
}
this.saveFiles(res.selectUri, fileNameList).then((createdFileList) => {
AbilityCommonUtil.terminatePathPicker(createdFileList, ResultCodePicker.SUCCESS, startModeOptions);
}).catch((err) => {
}).catch((err: BusinessError) => {
let errorMessage = '';
let errorCode = 0;
Logger.e(TAG, JSON.stringify(err));
@@ -76,7 +78,7 @@ struct PathSelector {
errorCode = ErrorCodeConst.PICKER.OTHER_ERROR;
}
} else {
errorMessage = err.message ? err.message : err;
errorMessage = err.message ? err.message : '';
errorCode = ErrorCodeConst.PICKER.OTHER_ERROR;
}
AbilityCommonUtil.terminatePathPicker([], errorCode, startModeOptions);
@@ -99,7 +101,7 @@ struct PathSelector {
}
let fileNameArr = nameList;
let successArr: string[] = [];
let resultErr: any;
let resultErr: ErrCodeMessage = new ErrCodeMessage();
let len: number = fileNameArr.length;
let fileNameList: string[] = [];
if (len > 1) {
@@ -109,7 +111,7 @@ struct PathSelector {
Logger.i(TAG, 'saveFiles subList: ' + JSON.stringify(fileNameList) + ' ; ');
for (let i = 0; i < len; i++) {
const currName = fileNameArr[i];
let result;
let result: ErrUri = new ErrUri();
if (len === 1) {
result = await FileUtil.createFile(fileAccessHelper, dirPath, currName);
} else {
@@ -122,7 +124,8 @@ struct PathSelector {
}
Logger.i(TAG, 'saveFiles err: ' + result.err.code);
// 失败
resultErr = { code: result.err.code, message: result.err.message };
resultErr.code = result.err.code;
resultErr.message = result.err.message;
let photoManageHelper: photoAccessHelper.PhotoAccessHelper = AbilityCommonUtil.getPhotoManageHelper();
if (ObjectUtil.isNullOrUndefined(photoManageHelper)) {
break;
@@ -158,7 +161,7 @@ struct PathSelector {
private getFilesByIterator(fileIterator: fileAccess.FileIterator): string[] {
if (ObjectUtil.isNull(fileIterator)) {
return null;
return [];
}
let result: string[] = [];
let isDone = false;
@@ -181,10 +184,7 @@ struct PathSelector {
}
private async tryRenameFileOperate(fileAccessHelper: fileAccess.FileAccessHelper, fileName: string,
dirUri: string, renameCount: number, fileNameList: string[] = []): Promise<{
err,
uri
}> {
dirUri: string, renameCount: number, fileNameList: string[] = []): Promise<ErrUri> {
let index = fileName.lastIndexOf('.');
let name = fileName;
let suffix = '';
@@ -252,7 +252,7 @@ struct PathSelector {
fileTree({
startModeOptions: this.startModeOptions,
createFileFailType: $createResultType,
moveCallback: (e) => {
moveCallback: (e: MoveCallBackParams) => {
this.saveFileCallback(e, this.startModeOptions);
}
})
@@ -20,7 +20,7 @@ import { FilesList } from '../../component/myphone/FilesList';
import { setSystemBar, setImmersion } from '../../../base/utils/Common';
import router from '@ohos.router';
import FileAccessExec from '../../../base/utils/FileAccessExec';
import { SYSTEM_BAR_COLOR } from '../../../base/constants/UiConstant';
import { SystemBarColor } from '../../../base/constants/UiConstant';
import { getResourceString } from '../../../base/utils/Tools';
import { TopOperateBar } from '../../component/common/TopOperateBar';
import { FileMkdirDialog } from '../../component/dialog/FileMkdirDialog';
@@ -109,8 +109,8 @@ struct MyPhone {
}
data = FileUtil.getPathWithFileSplit(data);
let fileIterator;
let fileData;
let fileIterator: fileAccess.FileInfo | fileAccess.RootInfo | undefined = undefined;
let fileData: FilesData[];
let isContinue: boolean = true;
let isRoot: boolean = true;
while (isContinue) {
@@ -129,7 +129,8 @@ struct MyPhone {
let currentDir: string = FileUtil.getPathWithFileSplit(fileData[i].currentDir);
if (data.startsWith(currentDir)) {
if (fileData[i].isFolder) {
this.direList.push({ title: fileName, url: fileData[i].uri, fileIterator: fileData[i].fileIterator });
let bread: BreadData = { title: fileName, url: fileData[i].uri, fileIterator: fileData[i].fileIterator }
this.direList.push(bread);
fileIterator = fileData[i].fileIterator;
if (data === currentDir) {
isContinue = false;
@@ -158,7 +159,7 @@ struct MyPhone {
return;
}
setImmersion(false);
setSystemBar(SYSTEM_BAR_COLOR.WHITE, SYSTEM_BAR_COLOR.WHITE, SYSTEM_BAR_COLOR.BLACK, SYSTEM_BAR_COLOR.BLACK);
setSystemBar(SystemBarColor.WHITE, SystemBarColor.WHITE, SystemBarColor.BLACK, SystemBarColor.BLACK);
}
getRootListFile() {
@@ -167,14 +168,14 @@ struct MyPhone {
this.getVideoAudioDuration(fileList);
}
getListFile(fileInfo) {
getListFile(fileInfo: fileAccess.FileInfo | fileAccess.RootInfo) {
let fileList = FileAccessExec.getFileByCurIterator(fileInfo);
this.fileListSource.setData(fileList);
this.getVideoAudioDuration(fileList);
}
async getVideoAudioDuration(fileList: FilesData[]) {
const videoAudioList = fileList.filter(item => item.mimeTypeObj.isVideo() || item.mimeTypeObj.isAudio());
const videoAudioList = fileList.filter(item => item.mimeTypeObj?.isVideo() || item.mimeTypeObj?.isAudio());
for (let item of videoAudioList) {
const mediaType: photoAccessHelper.PhotoType = getMediaType(item.fileName);
await getDurationByUri(mediaType, item.uri).then((duration) => {
@@ -222,7 +223,9 @@ struct MyPhone {
refreshData() {
if (this.direList.length) {
const lastBread = this.direList[this.direList.length-1];
this.getListFile(lastBread.fileIterator);
if (lastBread.fileIterator !== undefined) {
this.getListFile(lastBread.fileIterator);
}
} else {
this.getRootListFile();
}
@@ -243,7 +246,6 @@ struct MyPhone {
}
aboutToDisappear() {
this.fileMkdirDialog = null;
}
getParams(startModeOptions: StartModeOptions): string {
@@ -251,9 +253,9 @@ struct MyPhone {
if (!ObjectUtil.isNullOrUndefined(defaultPickPath)) {
return defaultPickPath;
}
let params = router.getParams();
let params = router.getParams() as Record<string, string>;
if (!ObjectUtil.isNullOrUndefined(params)) {
defaultPickPath = params['path'];
defaultPickPath = params.path as string;
if (!ObjectUtil.isNullOrUndefined(defaultPickPath)) {
return defaultPickPath;
}
@@ -268,7 +270,9 @@ struct MyPhone {
this.setShowLoading(true);
if (this.direList.length) {
const lastBreadCrumb = this.direList[this.direList.length-1];
this.getListFile(lastBreadCrumb.fileIterator);
if (lastBreadCrumb.fileIterator !== undefined) {
this.getListFile(lastBreadCrumb.fileIterator);
}
} else {
this.getRootListFile();
}
@@ -294,7 +298,9 @@ struct MyPhone {
direList.splice(-1, 1);
if (direList.length) {
const lastDir = direList[direList.length-1];
this.getListFile(lastDir.fileIterator);
if (lastDir.fileIterator !== undefined) {
this.getListFile(lastDir.fileIterator);
}
} else {
this.getRootListFile();
}
+27 -24
View File
@@ -13,7 +13,7 @@
* limitations under the License.
*/
import { FilesData } from '../../databases/model/FileData';
import { FilesData, TransList, MkDirItem } from '../../databases/model/FileData';
import { on } from '../../base/utils/EventBus';
import FileAccessExec from '../../base/utils/FileAccessExec';
import { TREE_LAYER } from '../../base/constants/UiConstant';
@@ -25,6 +25,7 @@ import Logger from '../../base/log/Logger';
import fileAccess from '@ohos.file.fileAccess';
import ObjectUtil from '../../base/utils/ObjectUtil';
@Styles
function pressedStyles() {
.backgroundColor($r('app.color.hicloud_hmos_bg'))
@@ -34,8 +35,8 @@ const TAG = 'TreeItem';
@Component
export struct TreeItem {
fileItem: FilesData = new FilesData({});
loadPath?: string = '';
fileItem: FilesData = new FilesData();
loadPath: string = '';
isNeedExpand: boolean = false;
@State iconRotate: boolean = false;
@State subFolderList: FilesData[] = [];
@@ -67,9 +68,9 @@ export struct TreeItem {
let queryRes = await this.getPickPathListFiles(dirUri, defaultExpandPath, this.fileItem.layer);
this.isLoading = false;
let subList: FilesData[] = this.fileBaseToFileData(queryRes);
let { folderList, fileList } = this.transfer(subList);
this.fileList = fileList
call(folderList);
let transList: TransList = this.transfer(subList);
this.fileList = transList.fileList
call(transList.folderList);
}
private async getPickPathListFiles(dirUri: string, expandPath: string, level: number): Promise<FileBase[]> {
@@ -77,31 +78,33 @@ export struct TreeItem {
let fileInfo: fileAccess.FileInfo = await FileUtil.getFileInfoByUri(dirUri, fileHelper);
if (ObjectUtil.isNullOrUndefined(fileInfo) || !FileUtil.isFolder(fileInfo.mode)) {
Logger.e(TAG, 'uri is not folder');
return;
return [];
}
let queryRes = FileAccessExec.getPathPickSubFiles(fileInfo, expandPath, level);
if (ObjectUtil.isNull(queryRes)) {
Logger.e(TAG, 'files is null');
return;
return [];
}
return queryRes;
}
transfer(list: FilesData[]) {
let folderList: FilesData[] = [];
let fileList: FilesData[] = [];
transfer(list: FilesData[]): TransList {
let transList: TransList = {
folderList: [],
fileList: []
}
if (ArrayUtil.isEmpty(list)) {
return { folderList, fileList };
return transList;
}
for (let i = 0; i < list.length; i++) {
let fileData = list[i];
if (fileData.isFolder) {
folderList.push(fileData);
transList.folderList.push(fileData);
} else {
fileList.push(fileData);
transList.fileList.push(fileData);
}
}
return { folderList, fileList };
return transList;
}
fileBaseToFileData(list: FileBase[]): FilesData[] {
@@ -111,7 +114,7 @@ export struct TreeItem {
}
for (let i = 0; i < list.length; i++) {
let data = list[i];
let fileData = new FilesData([]);
let fileData = new FilesData();
fileData.uri = data.uri;
fileData.fileName = data.fileName;
fileData.isFolder = data.isFolder;
@@ -160,16 +163,16 @@ export struct TreeItem {
}
aboutToAppear() {
on('fileMkdir', async (e) => {
on('fileMkdir', async (e: MkDirItem) => {
if (this.selectUri === this.fileItem.uri) {
// 获取当前选中文件夹下的所有子文件
let queryArray = await this.getPickPathListFiles(this.fileItem.uri, '', this.fileItem.layer);
let subList: FilesData[] = this.fileBaseToFileData(queryArray);
let { folderList, fileList } = this.transfer(subList);
this.fileList = fileList;
let subList: FilesData[] = this.fileBaseToFileData(queryArray)
let transList: TransList = this.transfer(subList);
this.fileList = transList.fileList;
// 获取当前选中文件夹下的所有子文件
this.subFolderList = folderList;
this.expandSubFolderCall(folderList);
this.subFolderList = transList.folderList;
this.expandSubFolderCall(transList.folderList);
// 查找刚刚新建的文件夹index
const index = this.subFolderList.findIndex(item => item.fileName === e.mkdirName);
if (index !== -1 && this.canExpandPath()) {
@@ -196,7 +199,7 @@ export struct TreeItem {
if (this.iconRotate) {
this.iconRotate = !this.iconRotate;
this.changeSelectItem(this.fileItem, false);
this.fileItem.subFileList = null;
this.fileItem.subFileList = [];
this.folderList = this.fileItem.subFolderList;
} else {
if (this.canExpandPath()) {
@@ -266,7 +269,7 @@ export struct TreeItem {
})
if (this.subFolderList.length && this.iconRotate) {
ForEach(this.subFolderList, (item) => {
ForEach(this.subFolderList, (item: FilesData) => {
TreeItem({
fileItem: item,
loadPath: this.loadPath,
@@ -26,7 +26,13 @@ function normalStyles() {
@Component
export struct DialogTitle {
title: Resource;
title: Resource = $r('app.string.addFolder');
constructor(title: Resource) {
super();
this.title = title; // 通过构造函数初始化
}
build() {
Text(this.title)
@@ -43,11 +49,11 @@ export struct DialogTitle {
@Component
export struct DialogButton {
text: Resource;
text: Resource = $r('app.string.cancel');
color: Resource = $r('app.color.dialog_button_blue');
bgColor: Resource = $r('app.color.transparent_color');
@Prop isDisabled: boolean;
click: Function;
click: Function = () => {};
build() {
Row() {
@@ -18,6 +18,7 @@ import { renderSize } from '../../../base/utils/Tools';
import AbilityCommonUtil, { ResultCodePicker } from '../../../base//utils/AbilityCommonUtil';
import { StartModeOptions } from '../../../base/model/StartModeOptions';
import { FilePickerUtil } from '../../../base/utils/FilePickerUtil';
import { FilesData } from '../../../databases/model/FileData';
@Styles
function pressedStyles() {
@@ -40,18 +41,18 @@ function subtitleStyles(fontSize: Resource) {
@Component
export struct TopBar {
private startModeOptions: StartModeOptions = FilePickerUtil.getStartOptionsFromStorage();
private title?: string = '';
private title: string = '';
private subtitle?: string = '';
private fileSize?: number = 0;
@Prop selectAll: boolean;
@Prop isMulti: boolean;
@Link checkedNum: number;
@Link checkedList: any[];
@Link checkedList: ESObject[];
@State active: boolean = false;
@State rActive: boolean = false;
public backCallback: () => void; // 点击返回键的事件回调
public menuCallback: () => void; // 点击全选的事件回调
filterCallBack: Function;
public backCallback: () => void = () => {}; // 点击返回键的事件回调
public menuCallback: () => void = () => {}; // 点击全选的事件回调
filterCallBack: Function = () => {};
aboutToAppear() {
@@ -80,7 +81,7 @@ export struct TopBar {
if (!this.checkedNum) {
return false;
}
if (this.checkedList.some(item => item.isFolder)) {
if (this.checkedList.some((item: FilesData) => item.isFolder)) {
return false;
}
return true;
@@ -90,8 +91,8 @@ export struct TopBar {
if (!this.checkSelectedFileList()) {
return;
}
const uriList = this.checkedList.map(item => item.uri);
const fileNameList = this.checkedList.map(item => item.fileName);
const uriList: string[] = this.checkedList.map((item: FilesData): string => item.uri);
const fileNameList: string[] = this.checkedList.map((item: FilesData): string => item.fileName);
AbilityCommonUtil.terminateFilePicker(uriList, ResultCodePicker.SUCCESS, this.startModeOptions);
}
@@ -114,7 +115,7 @@ export struct TopBar {
normal: normalStyles
})
.onClick(() => {
this.backCallback.call(this);
this.backCallback();
})
Column() {
@@ -125,7 +126,7 @@ export struct TopBar {
.maxLines(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
if (this.fileSize && this.isMulti) {
Text($r('app.string.choose_size', renderSize(this.fileSize)))
Text($r('app.string.choose_size', renderSize(this.fileSize.toString())))
.fontColor($r('app.color.black'))
.subtitleStyles($r('app.float.common_font_size14'))
}
@@ -27,7 +27,7 @@ function normalStyles() {
@Component
export struct TopOperateBar {
public addFolder: () => void; // 点击新建的事件回调
public addFolder: Function = () => {}; // 点击新建的事件回调
// 是否可用
@Prop isDisabled: boolean = false;
// 列表或宫格
@@ -58,7 +58,7 @@ export struct TopOperateBar {
if (this.isDisabled) {
return;
}
this.addFolder.call(this);
this.addFolder();
})
Column() {
@@ -13,12 +13,13 @@
* limitations under the License.
*/
import { FilesData } from '../../../databases/model/FileData'
import { FilesData, MkDirItem } from '../../../databases/model/FileData'
import FileAccessExec from '../../../base/utils/FileAccessExec'
import { toast, isValidFileName } from '../../../base/utils/Common'
import { getResourceString } from '../../../base/utils/Tools'
import Logger from '../../../base/log/Logger'
import { DialogTitle, DialogButton, DialogButtonDivider } from '../common/DialogComponent'
import { BusinessError } from '@ohos.base';
const TAG = 'FileMkdirDialog'
@@ -26,11 +27,11 @@ const TAG = 'FileMkdirDialog'
@CustomDialog
export struct FileMkdirDialog {
controller: CustomDialogController
cancel: Function
confirm: Function
cancel: Function = () => {};
confirm: Function = (data: MkDirItem) => {};
@State folderName: string = ''
@State errorText: Resource = null
fileItems: Array<FilesData>
@State errorText: Resource = $r('app.string.illegal');
fileItems: Array<FilesData> = [];
getCurrentDir: string = ''
aboutToAppear() {
@@ -51,7 +52,7 @@ export struct FileMkdirDialog {
}
isSameName() {
let nameArr = []
let nameArr: string[] = [];
this.fileItems.forEach(item => {
nameArr.push(item.fileName)
})
@@ -74,7 +75,7 @@ export struct FileMkdirDialog {
})
.onChange((value: string) => {
this.folderName = value
this.errorText = null
this.errorText = $r('app.string.illegal')
})
Divider().vertical(false).strokeWidth(1).color(Color.Gray)
.margin({
@@ -106,12 +107,13 @@ export struct FileMkdirDialog {
} else if (this.isSameName()) {
this.errorText = $r('app.string.sameName')
} else {
FileAccessExec.createFolder(this.getCurrentDir, this.folderName).then(folderUri => {
this.confirm({
FileAccessExec.createFolder(this.getCurrentDir, this.folderName).then((folderUri: string) => {
let data: MkDirItem = {
mkdirName: this.folderName,
path: folderUri
})
}).catch(err => {
}
this.confirm(data)
}).catch((err: BusinessError) => {
Logger.e(TAG, 'create Folder err: ' + JSON.stringify(err))
toast($r('app.string.addFolder_fail'))
})
@@ -13,7 +13,7 @@
* limitations under the License.
*/
import { FilesData } from '../../../databases/model/FileData';
import { FilesData, TransList, MkDirItem } from '../../../databases/model/FileData';
import FileAccessExec from '../../../base/utils/FileAccessExec';
import { toast, isValidFileName } from '../../../base/utils/Common';
import { TreeItem } from '../TreeItem';
@@ -52,11 +52,11 @@ export struct fileTree {
@State rootData: FilesData[] = [];
@State selectUri: string = '';
@State @Watch('nameChange') selectName: string = getResourceString($r('app.string.myPhone'));
public moveCallback: (e) => void;
@State @Watch('selectChange') chooseItem: FilesData = new FilesData({});
public moveCallback:Function = () => {};
@State @Watch('selectChange') chooseItem: FilesData = new FilesData();
@State folderList: FilesData[] = [];
@State fileList: FilesData[] = [];
@State changeTitle: Resource = undefined;
@State changeTitle: Resource = $r('app.string.to_save', this.selectName);
@State fileName: string = '';
@State suffix: string = '';
fileMkdirDialog: CustomDialogController = new CustomDialogController({
@@ -70,11 +70,11 @@ export struct fileTree {
offset: { dx: 0, dy: -80 }
});
@State isSelectRootPath: boolean = true;
@State errorText: Resource = undefined;
@State errorText: Resource | undefined = undefined;
@State isNeedLoadDefaultPath: boolean = false;
@State isClickExpand: boolean = false;
@Link @Watch('createFileFailTypeChange') createFileFailType: number;
lastSelectPath: string = AppStorage.Get<string>(FILE_MANAGER_PREFERENCES.lastSelectPath.key);
lastSelectPath: string | undefined = AppStorage.Get<string>(FILE_MANAGER_PREFERENCES.lastSelectPath.key);
defaultExpandPath: string = '';
scroller: Scroller = new Scroller();
context: Context = globalThis.abilityContext;
@@ -100,9 +100,9 @@ export struct fileTree {
}
this.nameChange();
this.isSelectRootPath = true;
let { folderList, fileList } = FileAccessExec.getFileData();
this.fileList = fileList;
this.rootData = folderList;
let transList: TransList = FileAccessExec.getFileData();
this.fileList = transList.fileList;
this.rootData = transList.folderList;
this.folderList = this.rootData;
this.topRotate = !this.topRotate;
if (globalThis.documentInfo) {
@@ -112,15 +112,14 @@ export struct fileTree {
}
aboutToDisappear() {
this.fileMkdirDialog = null;
}
fileMkdir(e) {
fileMkdir(e: MkDirItem) {
emit('fileMkdir', e)
if (this.isSelectRootPath) {
// 获取当前选中文件夹下的所有子文件
let { folderList, fileList } = FileAccessExec.getFileData();
this.rootData = folderList;
let transList: TransList = FileAccessExec.getFileData();
this.rootData = transList.folderList;
// 查找刚刚新建的文件夹index
const index = this.rootData.findIndex(item => item.fileName === e.mkdirName);
if (index !== -1) {
@@ -131,8 +130,8 @@ export struct fileTree {
this.fileList = [];
this.folderList = [];
} else {
this.fileList = fileList;
this.folderList = folderList;
this.fileList = transList.fileList;
this.folderList = transList.folderList;
}
}
}
@@ -243,7 +242,7 @@ export struct fileTree {
})
.interpolation(ImageInterpolation.Medium)
.onClick(() => {
this.moveCallback.call(this, {
this.moveCallback({
cancel: true
});
})
@@ -290,7 +289,7 @@ export struct fileTree {
} else if (!isValidFileName(fileName)) {
this.errorText = $r('app.string.input_invalid');
} else {
this.errorText = null;
this.errorText = $r('app.string.input_invalid');
this.moveCallback({
selectUri: this.selectUri,
fileName: fileName
@@ -338,7 +337,7 @@ export struct fileTree {
.backgroundColor($r('app.color.text_input_bg_color'))
.onChange((newVal) => {
this.fileName = newVal
this.errorText = null
this.errorText = undefined
})
Divider().vertical(false).strokeWidth(1).color(Color.Gray)
.margin({
@@ -396,10 +395,10 @@ export struct fileTree {
this.selectName = getResourceString($r('app.string.myPhone'));
this.selectUri = globalThis.documentInfo && globalThis.documentInfo?.uri;
this.isSelectRootPath = true;
let { folderList, fileList } = await FileAccessExec.getFileData();
let transList: TransList = await FileAccessExec.getFileData();
this.topRotate = !this.topRotate;
this.fileList = fileList;
this.rootData = folderList;
this.fileList = transList.fileList;
this.rootData = transList.folderList;
this.folderList = this.rootData;
this.isClickExpand = true;
this.defaultExpandPath = '';
@@ -408,7 +407,7 @@ export struct fileTree {
Scroll(this.scroller) {
Column() {
if (this.rootData.length && this.topRotate) {
ForEach(this.rootData, (item) => {
ForEach(this.rootData, (item: FilesData) => {
if (this.isNeedLoadDefaultPath) {
TreeItem({
fileItem: item,
@@ -69,13 +69,13 @@ export struct BreadCrumb {
Scroll(this.scroller) {
Row() {
ForEach(this.direList, (item, index) => {
ForEach(this.direList, (item: BreadData, index) => {
BreadCrumbItem({
direItem: item,
index: index,
direList: $direList,
})
}, item => item.url.toString())
}, (item: BreadData) => item.url.toString())
}
}
.layoutWeight(1)
@@ -89,8 +89,8 @@ export struct BreadCrumb {
@Component
struct BreadCrumbItem {
direItem: BreadData;
index: number;
direItem: BreadData | undefined = undefined;
index: number = 0;
@Link direList: BreadData[];
getTitle(breadCrumb: string) {
@@ -104,7 +104,7 @@ struct BreadCrumbItem {
build() {
Row() {
Text(this.getTitle('' + this.direItem.title))
Text(this.getTitle('' + this.direItem?.title))
.fontSize($r('app.float.common_font_size12'))
.opacity($r('app.float.common_opacity9'))
.fontColor(this.isLast() ? $r('app.color.black') : $r('app.color.detail_path_text_color'))
@@ -16,8 +16,8 @@
import { BreadData, FilesData, FileDataSource } from '../../../databases/model/FileData';
import { renderSize, gridName, isDlpFile } from '../../../base/utils/Tools';
import DateTimeUtil from '../../../base/utils/DateTimeUtil';
import { pickerStatus, filePickerTip, FilePickerUtil } from '../../../base/utils/FilePickerUtil';
import { Z_INDEX } from '../../../base/constants/UiConstant';
import { pickerStatus, filePickerTip, FilePickerUtil, PickerStatus } from '../../../base/utils/FilePickerUtil';
import { ZIndex } from '../../../base/constants/UiConstant';
import Logger from '../../../base/log/Logger';
import { NoContent } from '../common/NoContent';
import { VideoDurationTag } from '../common/VideoDurationTag';
@@ -82,7 +82,7 @@ export struct FilesList {
@Builder
buildListView() {
List() {
LazyForEach(this.fileListSource, (item, index) => {
LazyForEach(this.fileListSource, (item: FilesData, index: number) => {
ListItem() {
FileListItem({
startModeOptions: this.startModeOptions,
@@ -93,7 +93,7 @@ export struct FilesList {
isMulti: $isMulti
})
}
}, item => item?.id.toString())
}, (item: FilesData) => item?.id.toString())
}
.align(Alignment.TopStart)
.edgeEffect(EdgeEffect.None)
@@ -102,7 +102,7 @@ export struct FilesList {
@Builder
buildGridView() {
Grid() {
LazyForEach(this.fileListSource, (item, index) => {
LazyForEach(this.fileListSource, (item: FilesData, index) => {
GridItem() {
FileListItem({
startModeOptions: this.startModeOptions,
@@ -113,7 +113,7 @@ export struct FilesList {
isMulti: $isMulti
})
}
}, item => item?.id.toString())
}, (item: FilesData) => item?.id.toString())
}
.columnsTemplate('1fr 1fr 1fr')
.columnsGap($r('app.float.file_list_columns_gap'))
@@ -128,7 +128,7 @@ export struct FilesList {
struct FileListItem {
private startModeOptions: StartModeOptions = FilePickerUtil.getStartOptionsFromStorage();
@Consume isList: boolean;
@State fileItem: FilesData = new FilesData({});
@State fileItem: FilesData = new FilesData();
@Link fileListSource: FileDataSource;
@Link direList: BreadData[];
@Link @Watch('isMultiChange') isMulti: boolean;
@@ -137,8 +137,8 @@ struct FileListItem {
@State filePickerViewFlag: boolean = true;
@State isImageLoaded: boolean = true;
isShowThumbnail(item) {
return this.isImageLoaded && item.thumbUri;
isShowThumbnail(item: FilesData): boolean {
return this.isImageLoaded && (item.thumbUri != '');
}
isMultiChange() {
@@ -153,14 +153,16 @@ struct FileListItem {
}
}
getRightIcon(item): Resource {
getRightIcon(item: FilesData): Resource | undefined {
if (this.isMulti) {
if (pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions).differentTypes) {
return;
return undefined;
}
return item.isChecked ? $r('app.media.checkbox_b') : $r('app.media.checkbox_g');
} else if (item.isFolder && this.isList) {
return $r('app.media.ic_arrow_right');
} else {
return undefined;
}
}
@@ -198,7 +200,7 @@ struct FileListItem {
if (this.fileItem.isFolder) {
return;
}
let status = pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions);
let status: PickerStatus = pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions);
if (status.exceedLimit) {
filePickerTip(this.startModeOptions);
return;
@@ -215,7 +217,7 @@ struct FileListItem {
onClickEvent() {
Logger.i(TAG, 'onClickEvent start');
let status = pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions);
let status: PickerStatus = pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions);
if (this.isMulti) {
if (this.fileItem.isFolder) {
return;
@@ -265,7 +267,7 @@ struct FileListItem {
}
calOpacity() {
const statusObj = pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions);
const statusObj: PickerStatus = pickerStatus(this.fileItem, this.checkedNum, this.startModeOptions);
return statusObj.exceedLimit || (!this.fileItem.isFolder && statusObj.differentTypes) ||
(this.isMulti && this.fileItem.isFolder) ? $r('app.float.common_opacity2') : $r('app.float.common_opacity10');
}
@@ -290,10 +292,10 @@ struct FileListItem {
.objectFit(ImageFit.Fill)
.width($r('app.float.common_size6'))
.height($r('app.float.common_size8'))
.zIndex(Z_INDEX.LEVEL10)
.zIndex(ZIndex.LEVEL10)
.position({ x: $r('app.float.common_position24'), y: $r('app.float.common_position26') })
}
if (this.fileItem.mimeTypeObj.isVideo() && this.isShowThumbnail(this.fileItem)) {
if (this.fileItem.mimeTypeObj?.isVideo() && this.isShowThumbnail(this.fileItem)) {
Image($r('app.media.hidisk_ic_video_list'))
.objectFit(ImageFit.Contain)
.autoResize(false)
@@ -315,7 +317,7 @@ struct FileListItem {
.grayText()
Text('-')
.grayText()
Text(!this.fileItem.isFolder ? renderSize(this.fileItem.size) : $r('app.string.num', this.fileItem.sub))
Text(!this.fileItem.isFolder ? renderSize(this.fileItem.size.toString()) : $r('app.string.num', this.fileItem.sub))
.grayText()
}
.margin({ top: $r('app.float.common_padding2') })
@@ -366,11 +368,11 @@ struct FileListItem {
.objectFit(ImageFit.Fill)
.width($r('app.float.common_size10'))
.height($r('app.float.common_size12'))
.zIndex(Z_INDEX.LEVEL10)
.zIndex(ZIndex.LEVEL10)
.markAnchor({ x: $r('app.float.common_markAnchor_28'), y: $r('app.float.common_markAnchor_16') })
.position({ x: '100%', y: '100%' })
}
if (this.fileItem.mimeTypeObj.isVideo() && this.isShowThumbnail(this.fileItem)) {
if (this.fileItem.mimeTypeObj?.isVideo() && this.isShowThumbnail(this.fileItem)) {
VideoDurationTag({
duration: this.fileItem.duration
})
@@ -390,7 +392,7 @@ struct FileListItem {
.maxLines(1)
.fontColor($r('app.color.recently_font_color'))
.opacity($r('app.float.common_opacity6'))
Text(this.fileItem.isFolder ? $r('app.string.num', this.fileItem.sub) : renderSize(this.fileItem.size))
Text(this.fileItem.isFolder ? $r('app.string.num', this.fileItem.sub) : renderSize(this.fileItem.size.toString()))
.fontSize($r('app.float.common_font_size10'))
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1)