diff --git a/app.js b/app.js index 3d797e8..efaf6af 100644 --- a/app.js +++ b/app.js @@ -1,3 +1,11 @@ +const settings = require("settings-store") + +settings.init({ + appName: "MiWatchKleaner", //required, + // publisherName: "Bar", //optional + // reverseDNS: "com.bar.foo" //required for macOS +}) + const pages = require('./pages/pages') pages.selectLanguage() diff --git a/data/xiaomiPackageRemovalList.json b/data/xiaomiPackageRemovalList.json index 57be1cf..6950dba 100644 --- a/data/xiaomiPackageRemovalList.json +++ b/data/xiaomiPackageRemovalList.json @@ -1,45 +1,212 @@ -{ - "apps": [ - "com.android.messaging", - "com.google.android.clockwork.flashlight", - "com.google.android.clockwork.gestures.tutorial", - "com.google.android.clockwork.lesetup", - "com.google.android.inputmethod.pinyin", - "com.google.android.theme.baiji.default", - "com.google.android.wearable.frameworkpackagestubs", - "com.google.android.wearable.localedition.overlay.cmiit", - "com.google.android.wearable.overlay.common.baiji", - "com.google.android.wearable.overlay.helium.baiji", - "com.google.android.wearable.overlay.home.baiji", - "com.google.android.wearable.overlay.home.baiji.tiles", - "com.gotokeep.keep", - "com.onetrack.watch", - "com.qb.qtranslator", - "com.sogou.ime.wear", - "com.sogou.map.android.maps", - "com.tencent.qqmusicwatch", - "com.tigerbrokers.stock", - "com.umetrip.android.msky.app", - "com.xiaomi.mihome", - "com.xiaomi.wear.anonymous.xiaoai", - "com.xiaomi.wear.calculator", - "com.xiaomi.wear.camera", - "com.xiaomi.wear.card", - "com.xiaomi.wear.charging", - "com.xiaomi.wear.compass", - "com.xiaomi.wear.deskclock", - "com.xiaomi.wear.hotwordle", - "com.xiaomi.wear.market", - "com.xiaomi.wear.mqs", - "com.xiaomi.wear.pressure", - "com.xiaomi.wear.setupprovider", - "com.xiaomi.wear.tutorial", - "com.xiaomi.wear.watchface.album", - "com.xiaomi.wear.watchface.art", - "com.xiaomi.wear.watchface.classic", - "com.xiaomi.wear.watchface.decomposite", - "com.xiaomi.wear.watchface.function", - "com.ximalayaos.wear.common", - "org.codeaurora.ims" - ] -} \ No newline at end of file +[ + { + "name": "com.android.messaging", + "klean": "X", + "global": "" + }, + { + "name": "com.google.android.clockwork.flashlight", + "klean": "X", + "global": "" + }, + { + "name": "com.google.android.clockwork.gestures.tutorial", + "klean": "X", + "global": "" + }, + { + "name": "com.google.android.clockwork.lesetup", + "klean": "X", + "global": "" + }, + { + "name": "com.google.android.inputmethod.pinyin", + "klean": "X", + "global": "" + }, + { + "name": "com.google.android.theme.baiji.default", + "klean": "X", + "global": "" + }, + { + "name": "com.google.android.wearable.frameworkpackagestubs", + "klean": "", + "global": "X" + }, + { + "name": "com.google.android.wearable.localedition.overlay.cmiit", + "klean": "", + "global": "X" + }, + { + "name": "com.google.android.wearable.overlay.common.baiji", + "klean": "", + "global": "X" + }, + { + "name": "com.google.android.wearable.overlay.helium.baiji", + "klean": "", + "global": "X" + }, + { + "name": "com.google.android.wearable.overlay.home.baiji", + "klean": "", + "global": "X" + }, + { + "name": "com.google.android.wearable.overlay.home.baiji.tiles", + "klean": "", + "global": "X" + }, + { + "name": "com.gotokeep.keep", + "klean": "X", + "global": "" + }, + { + "name": "com.onetrack.watch", + "klean": "X", + "global": "" + }, + { + "name": "com.qb.qtranslator", + "klean": "X", + "global": "" + }, + { + "name": "com.sogou.ime.wear", + "klean": "X", + "global": "" + }, + { + "name": "com.sogou.map.android.maps", + "klean": "X", + "global": "" + }, + { + "name": "com.tencent.qqmusicwatch", + "klean": "X", + "global": "" + }, + { + "name": "com.tigerbrokers.stock", + "klean": "X", + "global": "" + }, + { + "name": "com.umetrip.android.msky.app", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.mihome", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.anonymous.xiaoai", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.calculator", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.camera", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.card", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.charging", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.compass", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.deskclock", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.hotwordle", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.market", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.mqs", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.pressure", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.setupprovider", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.tutorial", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.watchface.album", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.watchface.art", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.watchface.classic", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.watchface.decomposite", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.watchface.function", + "klean": "X", + "global": "" + }, + { + "name": "com.ximalayaos.wear.common", + "klean": "X", + "global": "" + }, + { + "name": "com.xiaomi.wear.xiaoai", + "klean": "", + "global": "" + }, + { + "name": "org.codeaurora.ims", + "klean": "X", + "global": "" + } +] \ No newline at end of file diff --git a/lang/de.json b/lang/de.json index 0ee0ec4..03dcdfc 100644 --- a/lang/de.json +++ b/lang/de.json @@ -59,5 +59,9 @@ "current-dpi-is": "aktuelle DPI ist ", "usb-one-device": "Stellen Sie sicher, dass NUR Ihre Uhr angeschlossen ist", "accept-authorisation": "Bitte wählen Sie \"Immer zulassen\" für die Autorisierung auf der Uhr", - "usb-not-connected": "Stellen Sie sicher, dass Ihre Uhr nicht über USB angeschlossen ist" + "usb-not-connected": "Stellen Sie sicher, dass Ihre Uhr nicht über USB angeschlossen ist", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 2ff8826..d020613 100644 --- a/lang/en.json +++ b/lang/en.json @@ -59,5 +59,9 @@ "current-dpi-is": "Current DPI is", "usb-one-device": "Make sure ONLY your watch is connected", "accept-authorisation": "Please select \"Always Allow\" for authorisation on watch", - "usb-not-connected": "Make sure your watch is not connected via USB" + "usb-not-connected": "Make sure your watch is not connected via USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/es.json b/lang/es.json index 17a1a29..995396b 100644 --- a/lang/es.json +++ b/lang/es.json @@ -59,5 +59,9 @@ "current-dpi-is": "Actual DPI es", "usb-one-device": "Asegúrate de que SOLO tu reloj esté conectado", "accept-authorisation": "Selecciona \"Permitir siempre\" para la autorización de servicio", - "usb-not-connected": "Asegúrese de que su reloj no esté conectado a través de USB" + "usb-not-connected": "Asegúrese de que su reloj no esté conectado a través de USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/fr.json b/lang/fr.json index 9d8a6cd..c60e6a2 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -59,5 +59,9 @@ "current-dpi-is": "Le DPI actuel est", "usb-one-device": "Assurez-vous que SEULE votre montre est connectée", "accept-authorisation": "Veuillez sélectionner \"Toujours autoriser\" pour l'autorisation sur la montre", - "usb-not-connected": "Assurez-vous que votre montre n'est pas connectée via USB" + "usb-not-connected": "Assurez-vous que votre montre n'est pas connectée via USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/gr.json b/lang/gr.json index 6521ecd..76b5d9b 100644 --- a/lang/gr.json +++ b/lang/gr.json @@ -59,5 +59,9 @@ "current-dpi-is": "το τρέχον DPI είναι", "usb-one-device": "Βεβαιωθείτε ΜΟΝΟ ότι το ρολόι σας είναι συνδεδεμένο", "accept-authorisation": "Επιλέξτε \"Να επιτρέπεται πάντα\" για εξουσιοδότηση στο ρολόι", - "usb-not-connected": "Βεβαιωθείτε ότι το ρολόι σας δεν είναι συνδεδεμένο μέσω USB" + "usb-not-connected": "Βεβαιωθείτε ότι το ρολόι σας δεν είναι συνδεδεμένο μέσω USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/he.json b/lang/he.json index 0f85a3c..e72fba1 100644 --- a/lang/he.json +++ b/lang/he.json @@ -59,5 +59,9 @@ "current-dpi-is": "DPI הנוכחי הוא", "usb-one-device": "וודא שהשעון שלך מחובר רק", "accept-authorisation": "אנא בחר תמיד אפשר לצורך הרשאה בשעון", - "usb-not-connected": "וודא שהשעון שלך אינו מחובר באמצעות USB" + "usb-not-connected": "וודא שהשעון שלך אינו מחובר באמצעות USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/it.json b/lang/it.json index 1977368..f9e22a8 100644 --- a/lang/it.json +++ b/lang/it.json @@ -59,5 +59,9 @@ "current-dpi-is": "current DPI is", "usb-one-device": "Assicurati che SOLO il tuo orologio sia connesso", "accept-authorisation": "Seleziona \"Consenti sempre\" per l'autorizzazione sull'orologio", - "usb-not-connected": "Assicurati che l'orologio non sia connesso tramite USB" + "usb-not-connected": "Assicurati che l'orologio non sia connesso tramite USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/nl.json b/lang/nl.json index e303454..0d46ba9 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -59,5 +59,9 @@ "current-dpi-is": "huidige DPI is", "usb-one-device": "Zorg ervoor dat ALLEEN uw horloge is aangesloten", "accept-authorisation": "Selecteer \"Altijd toestaan​​\" voor autorisatie op horloge", - "usb-not-connected": "Zorg ervoor dat uw horloge niet is aangesloten via USB" + "usb-not-connected": "Zorg ervoor dat uw horloge niet is aangesloten via USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/pl.json b/lang/pl.json index 4885608..d1f5717 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -59,5 +59,9 @@ "bieżąca-dpi-to": "bieżąca wartość DPI to", "usb-one-device": "Upewnij się, że TYLKO zegarek jest podłączony", "accept-authorisation": "Aby uzyskać autoryzację na zegarku, wybierz Zawsze zezwalaj", - "usb-not-connected": "Upewnij się, że zegarek nie jest podłączony przez USB" + "usb-not-connected": "Upewnij się, że zegarek nie jest podłączony przez USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/pt-br.json b/lang/pt-br.json index 9395541..304cb04 100644 --- a/lang/pt-br.json +++ b/lang/pt-br.json @@ -59,5 +59,9 @@ "current-dpi-is": "o DPI atual é", "usb-one-device": "Certifique-se de que SOMENTE seu relógio esteja conectado", "accept-authorisation": "Selecione \"Sempre permitir\" para autorização no relógio", - "usb-not-connected": "Certifique-se de que seu relógio não esteja conectado via USB" + "usb-not-connected": "Certifique-se de que seu relógio não esteja conectado via USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/ru.json b/lang/ru.json index ee5fa0e..70b657e 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -59,5 +59,9 @@ "current-dpi-is": "текущий DPI", "usb-one-device": "Убедитесь, что подключены ТОЛЬКО ваши часы", "accept-authorisation": "Пожалуйста, выберите \"Всегда разрешать\" для авторизации на часах", - "usb-not-connected": "Убедитесь, что ваши часы не подключены через USB." + "usb-not-connected": "Убедитесь, что ваши часы не подключены через USB.", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/tr.json b/lang/tr.json index 0a4ed05..d9f4200 100644 --- a/lang/tr.json +++ b/lang/tr.json @@ -59,5 +59,9 @@ "current-dpi-is": "Geçerli DPI:", "usb-one-device": "YALNIZCA saatinizin bağlı olduğundan emin olun", "accept-authorisation": "Saatte yetkilendirme için lütfen \"Her Zaman İzin Ver\" seçeneğini seçin", - "usb-not-connected": "Saatinizin USB ile bağlı olmadığından emin olun" + "usb-not-connected": "Saatinizin USB ile bağlı olmadığından emin olun", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lang/vn.json b/lang/vn.json index 43e13e8..d974c6c 100644 --- a/lang/vn.json +++ b/lang/vn.json @@ -59,5 +59,9 @@ "current-dpi-is": "DPI hiện tại là", "usb-one-device": "Đảm bảo CHỈ đồng hồ của bạn được kết nối", "accept-authorisation": "Vui lòng chọn \"Luôn cho phép\" để ủy quyền trên đồng hồ", - "usb-not-connected": "Đảm bảo rằng đồng hồ của bạn không được kết nối qua USB" + "usb-not-connected": "Đảm bảo rằng đồng hồ của bạn không được kết nối qua USB", + "main-menu-item-11": "Global Theme", + "enable-global-theme": "Enable Global Theme", + "disable-global-theme": "Disable Global Theme", + "main-menu-item-12": "Xiaomi Apps" } \ No newline at end of file diff --git a/lib/adb.js b/lib/adb.js index 0f3e4cd..5ae5675 100644 --- a/lib/adb.js +++ b/lib/adb.js @@ -7,6 +7,8 @@ const common = require('./common') const chalk = require('chalk'); const globalVariables = require('../lib/globalVars'); const extractNumber = require('extract-numbers') +const settings = require("settings-store"); + if (process.platform === 'win32' || process.platform === 'win64') { adbRun = 'adb' @@ -16,7 +18,7 @@ if (process.platform === 'win32' || process.platform === 'win64') { module.exports = { installApk: async (element) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) { if (result.stderr != '') { common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') @@ -46,7 +48,7 @@ module.exports = { }); }, removeApk: async (package) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' uninstall ' + package) if (result.stderr != '') { common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') @@ -55,7 +57,7 @@ module.exports = { } }, removeXiaomiApk: async (package) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package) if (result.stderr != '') { common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') @@ -64,7 +66,7 @@ module.exports = { } }, restoreXiaomiApk: async (package) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' shell cmd package install-existing ' + package) if (result.stderr != '') { common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') @@ -73,7 +75,7 @@ module.exports = { } }, restoreAnyApk: async (package) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' shell cmd package install-existing ' + package.removeAnyApp) if (result.stderr != '') { common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') @@ -85,7 +87,7 @@ module.exports = { } }, removeAnyApk: async (package) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package.removeAnyApp) if (result.stderr != '') { common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') @@ -97,7 +99,7 @@ module.exports = { } }, getInstalledPacakges: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) result = await shellExec(adbRun + ' shell pm list packages -3') logger.info(await Language.get('packages-recieved-from-watch')) if (result.stderr.includes('error')) { @@ -125,13 +127,13 @@ module.exports = { } }, killAdbServer: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) let result = await shellExec(adbRun + ' kill-server') // common.log('') // common.dualLog('restarting-adb' + ' ' + result.stderr, 'red') }, getCurrentDPI: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) let result = await shellExec(adbRun + ' shell wm density') if (result.stdout != "") { currentDPI = extractNumber(result.stdout) @@ -146,13 +148,13 @@ module.exports = { }, setDPI: async (setDPI) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) let result = await shellExec(adbRun + ' shell wm density ' + setDPI) // currentDPI = extractNumber(result.stdout) // return currentDPI[0] }, watchConnection: async (value) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) if (value.connection === "usb") { common.dualLog(await Language.get('usb-one-device', 'whiteBright')) await common.pause(2000) diff --git a/lib/common.js b/lib/common.js index 57cef39..aaaa8b8 100644 --- a/lib/common.js +++ b/lib/common.js @@ -8,11 +8,12 @@ var shell = require('shelljs'); const logger = require('perfect-logger'); const Language = require("@shypes/language-translator"); const globalVariables = require('../lib/globalVars'); +const settings = require("settings-store"); var chalkRainbow = require('chalk-rainbow') module.exports = { header: async (page) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) clear(); console.log( chalkRainbow( @@ -36,7 +37,7 @@ module.exports = { await new Promise(resolve => setTimeout(resolve, time)); }, connectionCheck: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) if (globalVariables.localUSB === "X") { console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb'))) } @@ -48,7 +49,7 @@ module.exports = { } }, downloadFile: async (url, path) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const res = await fetch(url); // await module.exports.downloadSize(url) await new Promise(async (resolve, reject) => { @@ -81,7 +82,7 @@ module.exports = { logger.info(await Language.get(item, 'en')) }, print: async (item, colour) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) switch (colour) { case 'green': console.log(chalk.green(await Language.get(item))) diff --git a/lib/files.js b/lib/files.js index 57c4d87..d525ce7 100644 --- a/lib/files.js +++ b/lib/files.js @@ -4,8 +4,10 @@ const tiny = require("@peterpanhihi/tiny"); const getFilesIn = require('get-files-in') const globalVariables = require('../lib/globalVars'); const Language = require("@shypes/language-translator"); +const settings = require("settings-store"); -Language.setActiveLang(globalVariables.language) + +Language.setActiveLang(settings.value("Lang")) module.exports = { diff --git a/lib/globalVars.js b/lib/globalVars.js index 6551469..5cce1ae 100644 --- a/lib/globalVars.js +++ b/lib/globalVars.js @@ -1,7 +1,6 @@ class globalVariables { localUSB = ""; miWatchIpaddress = ""; - language = ""; usersList=[]; } diff --git a/lib/inquirer.js b/lib/inquirer.js index 9900109..24f940f 100644 --- a/lib/inquirer.js +++ b/lib/inquirer.js @@ -3,10 +3,11 @@ const files = require("./files"); const common = require("./common"); const Language = require("@shypes/language-translator"); const globalVariables = require('../lib/globalVars'); +const settings = require("settings-store"); module.exports = { mainMenu: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "list", name: "mainMenu", @@ -14,8 +15,8 @@ module.exports = { choices: [ '-----------------------', await Language.get('main-menu-item-1'), - await Language.get('main-menu-item-2'), - await Language.get('main-menu-item-3'), + await Language.get('main-menu-item-12'), + await Language.get('main-menu-item-11'), await Language.get('main-menu-item-4'), await Language.get('main-menu-item-5'), await Language.get('main-menu-item-6'), @@ -45,7 +46,7 @@ module.exports = { return inquirer.prompt(questions); }, connectionType: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "list", name: "connection", @@ -61,7 +62,7 @@ module.exports = { return inquirer.prompt(questions); }, connectWifi: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "input", name: "connectWifi", @@ -70,7 +71,7 @@ module.exports = { return inquirer.prompt(questions); }, setDPI: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "input", name: "setDPI", @@ -78,20 +79,24 @@ module.exports = { },]; return inquirer.prompt(questions); }, - removeAppsList: async () => { - Language.setActiveLang(globalVariables.language) + xiaomiAppsList: async () => { + Language.setActiveLang(await settings.value("Lang")) const packages = await files.loadPackageList(); + let appList = [] + packages.forEach(element => { + appList.push(element.name) + }); const questions = [{ type: "checkbox", - name: "removeAppsList", + name: "appList", message: await Language.get('restore-app-message'), - choices: packages.apps, + choices: appList, },]; return inquirer.prompt(questions); }, compatibleApps: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const compatibleApps = await common.getCompatibleAppsList() const appList = [] for (let element of compatibleApps) { @@ -106,7 +111,7 @@ module.exports = { return inquirer.prompt(questions); }, installedApps: async (installedApps) => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "checkbox", name: "removeAppsList", @@ -116,7 +121,7 @@ module.exports = { return inquirer.prompt(questions); }, restoreAnyApp: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "input", name: "restoreAnyApp", @@ -125,7 +130,7 @@ module.exports = { return inquirer.prompt(questions); }, removeAnyApp: async () => { - Language.setActiveLang(globalVariables.language) + Language.setActiveLang(await settings.value("Lang")) const questions = [{ type: "input", name: "removeAnyApp", @@ -133,4 +138,36 @@ module.exports = { },]; return inquirer.prompt(questions); }, + globalMenu: async () => { + Language.setActiveLang(await settings.value("Lang")) + const questions = [{ + type: "list", + name: "globalSelection", + message: await Language.get('main-menu-item-11'), + choices: [ + await Language.get('enable-global-theme'), + await Language.get('disable-global-theme') + ], + filter: function (val) { + return val.toLowerCase(); + }, + },]; + return inquirer.prompt(questions); + }, + xiaomiMenu: async () => { + Language.setActiveLang(await settings.value("Lang")) + const questions = [{ + type: "list", + name: "xiaomiSelection", + message: await Language.get('main-menu-item-12'), + choices: [ + await Language.get('main-menu-item-2'), + await Language.get('main-menu-item-3') + ], + filter: function (val) { + return val.toLowerCase(); + }, + },]; + return inquirer.prompt(questions); + }, }; \ No newline at end of file diff --git a/package.json b/package.json index 5b4586e..99f46e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "miwatchkleaner", - "version": "3.2.1", + "version": "3.3.0", "description": "MiWatch Cleaning Tool", "main": "app.js", "bin": "app.js", diff --git a/pages/pages.js b/pages/pages.js index 931796f..95bc276 100644 --- a/pages/pages.js +++ b/pages/pages.js @@ -6,6 +6,8 @@ const logger = require('perfect-logger'); const Language = require("@shypes/language-translator"); const globalVariables = require('../lib/globalVars'); const adb = require('../lib/adb'); +const settings = require("settings-store"); + logger.info(process.platform + " detected") if (process.platform === 'win32' || process.platform === 'win64') { @@ -26,8 +28,10 @@ module.exports = { common.header('main-menu-item-1') common.print('remove-xiaomi-apps', 'whiteBright') const removalPackagesList = files.loadPackageList() - for (let package of removalPackagesList.apps) { - await adb.removeXiaomiApk(package) + for (let package of removalPackagesList) { + if (package.klean === "X" || package.global === "X") { + await adb.removeXiaomiApk(package.name) + } } common.print('removal-complete', 'green') await common.pause(2000) @@ -68,8 +72,8 @@ module.exports = { removeXiaomiApps: async () => { common.header('main-menu-item-2') common.log('main-menu-item-2') - const value = await inquirer.removeAppsList(); - for (let package of value.removeAppsList) { + const value = await inquirer.xiaomiAppsList(); + for (let package of value.appList) { await adb.removeXiaomiApk(package) } common.dualLog('removal-complete', 'green') @@ -80,8 +84,8 @@ module.exports = { restoreXiaomiApps: async () => { common.header('main-menu-item-3') common.log('main-menu-item-3') - const value = await inquirer.removeAppsList(); - for (let package of value.removeAppsList) { + const value = await inquirer.xiaomiAppsList(); + for (let package of value.appList) { await adb.restoreXiaomiApk(package) } common.dualLog('restoring-apps-complete', 'green') @@ -213,19 +217,69 @@ module.exports = { }, selectLanguage: async () => { - common.header('Select Language') - common.log('Select Language') - const v = await inquirer.LanguageSelect() - globalVariables.language = v.selection - module.exports.connectWatch() + if (await settings.value("Lang") != undefined) { + common.log(await settings.value("Lang") + " Selected") + module.exports.connectWatch() + } else { + common.header('Select Language') + common.log('Select Language') + const v = await inquirer.LanguageSelect() + settings.setValue("Lang", v.selection) + } + }, + + globalTheme: async () => { + const v = await inquirer.globalMenu() + console.log(v) + if (v.globalSelection === "enable global theme") { + common.log('main-menu-item-11') + common.header('main-menu-item-11') + common.print('enable-global-theme', 'whiteBright') + const removalPackagesList = files.loadPackageList() + for (let package of removalPackagesList) { + if (package.global === "X") { + await adb.removeXiaomiApk(package.name) + } + } + common.print('removal-complete', 'green') + await common.pause(2000) + // common.log('removal-complete') + // common.log('compatible-apps') + module.exports.mainMenu() + } else { + common.log('main-menu-item-11') + common.header('main-menu-item-11') + common.print('disable-global-theme', 'whiteBright') + const removalPackagesList = files.loadPackageList() + for (let package of removalPackagesList) { + if (package.global === "X") { + await adb.restoreXiaomiApk(package.name) + } + } + // common.print('removal-complete', 'green') + await common.pause(2000) + // common.log('removal-complete') + // common.log('compatible-apps') + module.exports.mainMenu() + } + }, + + xiaomiApps: async () => { + const v = await inquirer.xiaomiMenu() + console.log(v) + n = await Language.get('main-menu-item-2') + if (v.xiaomiSelection === n.toLowerCase()) { + module.exports.removeXiaomiApps() + } else { + module.exports.restoreXiaomiApps() + } }, mainMenu: async () => { common.header('Main Menu') const mainMenuSelection = await inquirer.mainMenu(); menu_1 = await Language.get('main-menu-item-1') - menu_2 = await Language.get('main-menu-item-2') - menu_3 = await Language.get('main-menu-item-3') + menu_12 = await Language.get('main-menu-item-12') menu_4 = await Language.get('main-menu-item-4') menu_5 = await Language.get('main-menu-item-5') menu_6 = await Language.get('main-menu-item-6') @@ -233,17 +287,18 @@ module.exports = { menu_8 = await Language.get('main-menu-item-8') menu_9 = await Language.get('main-menu-item-9') menu_10 = await Language.get('main-menu-item-10') + menu_11 = await Language.get('main-menu-item-11') switch (mainMenuSelection.mainMenu) { case menu_1.toLowerCase(): module.exports.oneClick() break; - case menu_2.toLowerCase(): - module.exports.removeXiaomiApps() - break; - case menu_3.toLowerCase(): - module.exports.restoreXiaomiApps() + case menu_12.toLowerCase(): + module.exports.xiaomiApps() break; + // case menu_3.toLowerCase(): + // module.exports.restoreXiaomiApps() + // break; case menu_4.toLowerCase(): module.exports.installCompatibleApps() break; @@ -266,6 +321,10 @@ module.exports = { module.exports.changeWatchDPI() break; case menu_9.toLowerCase(): + process.kill(process.pid) + break; + case menu_11.toLowerCase(): + module.exports.globalTheme(); break; default: // code block