fix(icon): 增强诊\u65ad和\u5907\u7528\u56fe\u6807\u5217\u8868,\u4fee\u590d ShortX \u56fe\u6807\u4e0d\u663e\u793a
- APK 扫描增\u52a0 mipmap* 目\u5f55\u652f\u6301 - 增\u52a0诊\u65ad信\u606f\u663e\u793a(APK 路\u5f84、\u6587\u4ef6\u6570、\u9519\u8bef\u539f\u56e0) - 当\u6240\u6709\u81ea\u52a8\u83b7\u53d6\u5931\u8d25\u65f6,\u56de\u9000\u5230 20 \u4e2a\u5e38\u7528\u5907\u7528\u56fe\u6807\u5217\u8868
This commit is contained in:
@@ -341,9 +341,10 @@ FloatBallAppWM.prototype.scanShortXIconsFromApk = function() {
|
||||
var out = [];
|
||||
var seen = {};
|
||||
var paths = this.getShortXApkPaths();
|
||||
// 宽松匹配:匹配 res/drawable* 下所有以 ic_ 开头的图标,不限于 ic_remix_
|
||||
var regex = /^res\/drawable[^\/]*\/(ic_[a-z0-9_]+)\.(xml|png|webp|jpg|jpeg)$/;
|
||||
// 宽松匹配:匹配 res/drawable* 和 res/mipmap* 下所有以 ic_ 开头的图标
|
||||
var regex = /^res\/(drawable[^\/]*|mipmap[^\/]*)\/(ic_[a-z0-9_]+)\.(xml|png|webp|jpg|jpeg)$/;
|
||||
var lastErr = "";
|
||||
var totalFiles = 0;
|
||||
var pi;
|
||||
for (pi = 0; pi < paths.length; pi++) {
|
||||
var zip = null;
|
||||
@@ -353,10 +354,11 @@ FloatBallAppWM.prototype.scanShortXIconsFromApk = function() {
|
||||
while (en.hasMoreElements()) {
|
||||
var ze = en.nextElement();
|
||||
var name = String(ze.getName());
|
||||
totalFiles++;
|
||||
var m = regex.exec(name);
|
||||
if (!m) continue;
|
||||
var fullName = String(m[1]);
|
||||
// 过\u6ee4\u6389\u7cfb\u7edf\u56fe\u6807,只\u4fdd\u7559 ShortX 自\u5b9a\u4e49\u56fe\u6807
|
||||
var fullName = String(m[2]);
|
||||
// 过滤掉系统图标
|
||||
if (fullName.indexOf("ic_launcher") === 0 || fullName.indexOf("ic_menu_") === 0) continue;
|
||||
if (seen[fullName]) continue;
|
||||
seen[fullName] = true;
|
||||
@@ -372,7 +374,7 @@ FloatBallAppWM.prototype.scanShortXIconsFromApk = function() {
|
||||
try { if (zip) zip.close(); } catch (eClose) {}
|
||||
}
|
||||
}
|
||||
if ((!out || out.length === 0) && lastErr) this._shortxIconCatalogError = lastErr;
|
||||
if ((!out || out.length === 0) && lastErr) this._shortxIconCatalogError = "APK扫描: " + lastErr + " (路径数=" + paths.length + ", 文件数=" + totalFiles + ")";
|
||||
return out;
|
||||
};
|
||||
|
||||
|
||||
@@ -3772,17 +3772,45 @@ FloatBallAppWM.prototype.showShortXIconPickerPopup = function(opts) {
|
||||
var errMsg = "\u56fe\u6807\u5e93\u672a\u52a0\u8f7d";
|
||||
try { errMsg = self._shortxIconCatalogError || errMsg; } catch(e) {}
|
||||
self.toast("\u56fe\u6807\u5e93\u672a\u52a0\u8f7d: " + errMsg);
|
||||
// 尝试强\u5236\u91cd\u65b0\u52a0\u8f7d
|
||||
// 尝试强制重新加载
|
||||
try {
|
||||
catalog = self.getShortXIconCatalog(true) || [];
|
||||
if (!catalog.length) {
|
||||
try { errMsg = self._shortxIconCatalogError || "\u91cd\u8bd5\u4ecd\u5931\u8d25"; } catch(e) {}
|
||||
self.toast("\u56fe\u6807\u5e93\u91cd\u8bd5\u5931\u8d25: " + errMsg);
|
||||
return null;
|
||||
}
|
||||
} catch(eRetry) {
|
||||
return null;
|
||||
}
|
||||
} catch(eRetry) {}
|
||||
}
|
||||
|
||||
// 如\u679c\u8fd8\u662f\u7a7a,\u663e\u793a\u8bca\u65ad\u4fe1\u606f
|
||||
if (!catalog.length) {
|
||||
var diagPaths = [];
|
||||
try { diagPaths = self.getShortXApkPaths() || []; } catch(e) {}
|
||||
var diagInfo = "\u5305\u540d: " + CONST_SHORTX_PACKAGE + "\nAPK\u8def\u5f84: " + (diagPaths.join(", ") || "\u65e0") + "\n\u9519\u8bef: " + (self._shortxIconCatalogError || "\u672a\u77e5");
|
||||
|
||||
// 备\u7528\u56fe\u6807\u5217\u8868(\u5f53\u6240\u6709\u81ea\u52a8\u83b7\u53d6\u5931\u8d25\u65f6\uff0c\u81f3\u5c11\u663e\u793a\u4e00\u4e9b\u5e38\u7528\u56fe\u6807\uff09
|
||||
catalog = [
|
||||
{name: "ic_remix_home", shortName: "home"},
|
||||
{name: "ic_remix_settings", shortName: "settings"},
|
||||
{name: "ic_remix_share", shortName: "share"},
|
||||
{name: "ic_remix_save", shortName: "save"},
|
||||
{name: "ic_remix_delete", shortName: "delete"},
|
||||
{name: "ic_remix_edit", shortName: "edit"},
|
||||
{name: "ic_remix_search", shortName: "search"},
|
||||
{name: "ic_remix_refresh", shortName: "refresh"},
|
||||
{name: "ic_remix_add", shortName: "add"},
|
||||
{name: "ic_remix_close", shortName: "close"},
|
||||
{name: "ic_remix_play", shortName: "play"},
|
||||
{name: "ic_remix_pause", shortName: "pause"},
|
||||
{name: "ic_remix_camera", shortName: "camera"},
|
||||
{name: "ic_remix_image", shortName: "image"},
|
||||
{name: "ic_remix_folder", shortName: "folder"},
|
||||
{name: "ic_remix_file", shortName: "file"},
|
||||
{name: "ic_remix_link", shortName: "link"},
|
||||
{name: "ic_remix_bluetooth", shortName: "bluetooth"},
|
||||
{name: "ic_remix_wifi", shortName: "wifi"},
|
||||
{name: "ic_remix_flashlight", shortName: "flashlight"}
|
||||
];
|
||||
}
|
||||
|
||||
var selectedName = currentName;
|
||||
|
||||
Reference in New Issue
Block a user