App Manager: reduce memory usage
parent
1658b5f035
commit
3404d244b6
|
|
@ -403,7 +403,7 @@
|
||||||
{ "id": "files",
|
{ "id": "files",
|
||||||
"name": "App Manager",
|
"name": "App Manager",
|
||||||
"icon": "files.png",
|
"icon": "files.png",
|
||||||
"version":"0.05",
|
"version":"0.06",
|
||||||
"description": "Show currently installed apps, free space, and allow their deletion from the watch",
|
"description": "Show currently installed apps, free space, and allow their deletion from the watch",
|
||||||
"tags": "tool,system,files",
|
"tags": "tool,system,files",
|
||||||
"storage": [
|
"storage": [
|
||||||
|
|
|
||||||
|
|
@ -2,3 +2,4 @@
|
||||||
0.03: Add support for data files
|
0.03: Add support for data files
|
||||||
0.04: Add functionality to sort apps manually or alphabetically ascending/descending.
|
0.04: Add functionality to sort apps manually or alphabetically ascending/descending.
|
||||||
0.05: Tweaks to help with memory usage
|
0.05: Tweaks to help with memory usage
|
||||||
|
0.06: Reduce memory usage
|
||||||
|
|
@ -45,13 +45,13 @@ function globToRegex(pattern) {
|
||||||
return new RegExp('^'+regex+'$');
|
return new RegExp('^'+regex+'$');
|
||||||
}
|
}
|
||||||
|
|
||||||
function eraseFiles(app) {
|
function eraseFiles(info) {
|
||||||
app.files.split(",").forEach(f=>store.erase(f));
|
info.files.split(",").forEach(f=>store.erase(f));
|
||||||
}
|
}
|
||||||
|
|
||||||
function eraseData(app) {
|
function eraseData(info) {
|
||||||
if(!app.data) return;
|
if(!info.data) return;
|
||||||
const d=app.data.split(';'),
|
const d=info.data.split(';'),
|
||||||
files=d[0].split(','),
|
files=d[0].split(','),
|
||||||
sFiles=(d[1]||'').split(',');
|
sFiles=(d[1]||'').split(',');
|
||||||
let erase = f=>store.erase(f);
|
let erase = f=>store.erase(f);
|
||||||
|
|
@ -68,8 +68,9 @@ function eraseData(app) {
|
||||||
}
|
}
|
||||||
function eraseApp(app, files,data) {
|
function eraseApp(app, files,data) {
|
||||||
E.showMessage('Erasing\n' + app.name + '...');
|
E.showMessage('Erasing\n' + app.name + '...');
|
||||||
if (files) eraseFiles(app);
|
var info = store.readJSON(app.id + ".info", 1)||{};
|
||||||
if (data) eraseData(app);
|
if (files) eraseFiles(info);
|
||||||
|
if (data) eraseData(info);
|
||||||
}
|
}
|
||||||
function eraseOne(app, files,data){
|
function eraseOne(app, files,data){
|
||||||
E.showPrompt('Erase\n'+app.name+'?').then((v) => {
|
E.showPrompt('Erase\n'+app.name+'?').then((v) => {
|
||||||
|
|
@ -86,8 +87,7 @@ function eraseAll(apps, files,data) {
|
||||||
E.showPrompt('Erase all?').then((v) => {
|
E.showPrompt('Erase all?').then((v) => {
|
||||||
if (v) {
|
if (v) {
|
||||||
Bangle.buzz(100, 1);
|
Bangle.buzz(100, 1);
|
||||||
for(var n = 0; n<apps.length; n++)
|
apps.forEach(app => eraseApp(app, files, data));
|
||||||
eraseApp(apps[n], files,data);
|
|
||||||
}
|
}
|
||||||
showApps();
|
showApps();
|
||||||
});
|
});
|
||||||
|
|
@ -100,7 +100,7 @@ function showAppMenu(app) {
|
||||||
},
|
},
|
||||||
'< Back': () => showApps(),
|
'< Back': () => showApps(),
|
||||||
};
|
};
|
||||||
if (app.data) {
|
if (app.hasData) {
|
||||||
appmenu['Erase Completely'] = () => eraseOne(app, true, true);
|
appmenu['Erase Completely'] = () => eraseOne(app, true, true);
|
||||||
appmenu['Erase App,Keep Data'] = () => eraseOne(app, true, false);
|
appmenu['Erase App,Keep Data'] = () => eraseOne(app, true, false);
|
||||||
appmenu['Only Erase Data'] = () => eraseOne(app, false, true);
|
appmenu['Only Erase Data'] = () => eraseOne(app, false, true);
|
||||||
|
|
@ -120,11 +120,10 @@ function showApps() {
|
||||||
|
|
||||||
var list = store.list(/\.info$/).filter((a)=> {
|
var list = store.list(/\.info$/).filter((a)=> {
|
||||||
return a !== 'setting.info';
|
return a !== 'setting.info';
|
||||||
}).sort().map((app) => {
|
}).map((a)=> {
|
||||||
var ret = store.readJSON(app,1)||{};
|
let app = store.readJSON(a, 1) || {};
|
||||||
ret[''] = app;
|
return {id: app.id, name: app.name, hasData: !!app.data};
|
||||||
return ret;
|
}).sort(sortHelper());;
|
||||||
});
|
|
||||||
|
|
||||||
if (list.length > 0) {
|
if (list.length > 0) {
|
||||||
list.reduce((menu, app) => {
|
list.reduce((menu, app) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue