Merge branch '3.3.0' of Karl/MiWatchKleaner into master

This commit is contained in:
Karl 2020-09-15 06:46:14 -05:00 committed by Gogs
commit f0fa671d82
22 changed files with 435 additions and 108 deletions

8
app.js
View File

@ -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') const pages = require('./pages/pages')
pages.selectLanguage() pages.selectLanguage()

View File

@ -1,45 +1,212 @@
{ [
"apps": [ {
"com.android.messaging", "name": "com.android.messaging",
"com.google.android.clockwork.flashlight", "klean": "X",
"com.google.android.clockwork.gestures.tutorial", "global": ""
"com.google.android.clockwork.lesetup", },
"com.google.android.inputmethod.pinyin", {
"com.google.android.theme.baiji.default", "name": "com.google.android.clockwork.flashlight",
"com.google.android.wearable.frameworkpackagestubs", "klean": "X",
"com.google.android.wearable.localedition.overlay.cmiit", "global": ""
"com.google.android.wearable.overlay.common.baiji", },
"com.google.android.wearable.overlay.helium.baiji", {
"com.google.android.wearable.overlay.home.baiji", "name": "com.google.android.clockwork.gestures.tutorial",
"com.google.android.wearable.overlay.home.baiji.tiles", "klean": "X",
"com.gotokeep.keep", "global": ""
"com.onetrack.watch", },
"com.qb.qtranslator", {
"com.sogou.ime.wear", "name": "com.google.android.clockwork.lesetup",
"com.sogou.map.android.maps", "klean": "X",
"com.tencent.qqmusicwatch", "global": ""
"com.tigerbrokers.stock", },
"com.umetrip.android.msky.app", {
"com.xiaomi.mihome", "name": "com.google.android.inputmethod.pinyin",
"com.xiaomi.wear.anonymous.xiaoai", "klean": "X",
"com.xiaomi.wear.calculator", "global": ""
"com.xiaomi.wear.camera", },
"com.xiaomi.wear.card", {
"com.xiaomi.wear.charging", "name": "com.google.android.theme.baiji.default",
"com.xiaomi.wear.compass", "klean": "X",
"com.xiaomi.wear.deskclock", "global": ""
"com.xiaomi.wear.hotwordle", },
"com.xiaomi.wear.market", {
"com.xiaomi.wear.mqs", "name": "com.google.android.wearable.frameworkpackagestubs",
"com.xiaomi.wear.pressure", "klean": "",
"com.xiaomi.wear.setupprovider", "global": "X"
"com.xiaomi.wear.tutorial", },
"com.xiaomi.wear.watchface.album", {
"com.xiaomi.wear.watchface.art", "name": "com.google.android.wearable.localedition.overlay.cmiit",
"com.xiaomi.wear.watchface.classic", "klean": "",
"com.xiaomi.wear.watchface.decomposite", "global": "X"
"com.xiaomi.wear.watchface.function", },
"com.ximalayaos.wear.common", {
"org.codeaurora.ims" "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": ""
}
]

View File

@ -59,5 +59,9 @@
"current-dpi-is": "aktuelle DPI ist ", "current-dpi-is": "aktuelle DPI ist ",
"usb-one-device": "Stellen Sie sicher, dass NUR Ihre Uhr angeschlossen 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", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "Current DPI is", "current-dpi-is": "Current DPI is",
"usb-one-device": "Make sure ONLY your watch is connected", "usb-one-device": "Make sure ONLY your watch is connected",
"accept-authorisation": "Please select \"Always Allow\" for authorisation on watch", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "Actual DPI es", "current-dpi-is": "Actual DPI es",
"usb-one-device": "Asegúrate de que SOLO tu reloj esté conectado", "usb-one-device": "Asegúrate de que SOLO tu reloj esté conectado",
"accept-authorisation": "Selecciona \"Permitir siempre\" para la autorización de servicio", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "Le DPI actuel est", "current-dpi-is": "Le DPI actuel est",
"usb-one-device": "Assurez-vous que SEULE votre montre est connectée", "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", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "το τρέχον DPI είναι", "current-dpi-is": "το τρέχον DPI είναι",
"usb-one-device": "Βεβαιωθείτε ΜΟΝΟ ότι το ρολόι σας είναι συνδεδεμένο", "usb-one-device": "Βεβαιωθείτε ΜΟΝΟ ότι το ρολόι σας είναι συνδεδεμένο",
"accept-authorisation": "Επιλέξτε \"Να επιτρέπεται πάντα\" για εξουσιοδότηση στο ρολόι", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "DPI הנוכחי הוא", "current-dpi-is": "DPI הנוכחי הוא",
"usb-one-device": "וודא שהשעון שלך מחובר רק", "usb-one-device": "וודא שהשעון שלך מחובר רק",
"accept-authorisation": "אנא בחר תמיד אפשר לצורך הרשאה בשעון", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "current DPI is", "current-dpi-is": "current DPI is",
"usb-one-device": "Assicurati che SOLO il tuo orologio sia connesso", "usb-one-device": "Assicurati che SOLO il tuo orologio sia connesso",
"accept-authorisation": "Seleziona \"Consenti sempre\" per l'autorizzazione sull'orologio", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "huidige DPI is", "current-dpi-is": "huidige DPI is",
"usb-one-device": "Zorg ervoor dat ALLEEN uw horloge is aangesloten", "usb-one-device": "Zorg ervoor dat ALLEEN uw horloge is aangesloten",
"accept-authorisation": "Selecteer \"Altijd toestaan\" voor autorisatie op horloge", "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"
} }

View File

@ -59,5 +59,9 @@
"bieżąca-dpi-to": "bieżąca wartość DPI to", "bieżąca-dpi-to": "bieżąca wartość DPI to",
"usb-one-device": "Upewnij się, że TYLKO zegarek jest podłączony", "usb-one-device": "Upewnij się, że TYLKO zegarek jest podłączony",
"accept-authorisation": "Aby uzyskać autoryzację na zegarku, wybierz Zawsze zezwalaj", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "o DPI atual é", "current-dpi-is": "o DPI atual é",
"usb-one-device": "Certifique-se de que SOMENTE seu relógio esteja conectado", "usb-one-device": "Certifique-se de que SOMENTE seu relógio esteja conectado",
"accept-authorisation": "Selecione \"Sempre permitir\" para autorização no relógio", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "текущий DPI", "current-dpi-is": "текущий DPI",
"usb-one-device": "Убедитесь, что подключены ТОЛЬКО ваши часы", "usb-one-device": "Убедитесь, что подключены ТОЛЬКО ваши часы",
"accept-authorisation": "Пожалуйста, выберите \"Всегда разрешать\" для авторизации на часах", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "Geçerli DPI:", "current-dpi-is": "Geçerli DPI:",
"usb-one-device": "YALNIZCA saatinizin bağlı olduğundan emin olun", "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", "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"
} }

View File

@ -59,5 +59,9 @@
"current-dpi-is": "DPI hiện tại là", "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", "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ồ", "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"
} }

View File

@ -7,6 +7,8 @@ const common = require('./common')
const chalk = require('chalk'); const chalk = require('chalk');
const globalVariables = require('../lib/globalVars'); const globalVariables = require('../lib/globalVars');
const extractNumber = require('extract-numbers') const extractNumber = require('extract-numbers')
const settings = require("settings-store");
if (process.platform === 'win32' || process.platform === 'win64') { if (process.platform === 'win32' || process.platform === 'win64') {
adbRun = 'adb' adbRun = 'adb'
@ -16,7 +18,7 @@ if (process.platform === 'win32' || process.platform === 'win64') {
module.exports = { module.exports = {
installApk: async (element) => { installApk: async (element) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) { result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) {
if (result.stderr != '') { if (result.stderr != '') {
common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
@ -46,7 +48,7 @@ module.exports = {
}); });
}, },
removeApk: async (package) => { removeApk: async (package) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
result = await shellExec(adbRun + ' uninstall ' + package) result = await shellExec(adbRun + ' uninstall ' + package)
if (result.stderr != '') { if (result.stderr != '') {
common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
@ -55,7 +57,7 @@ module.exports = {
} }
}, },
removeXiaomiApk: async (package) => { removeXiaomiApk: async (package) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package) result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package)
if (result.stderr != '') { if (result.stderr != '') {
common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
@ -64,7 +66,7 @@ module.exports = {
} }
}, },
restoreXiaomiApk: async (package) => { restoreXiaomiApk: async (package) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
result = await shellExec(adbRun + ' shell cmd package install-existing ' + package) result = await shellExec(adbRun + ' shell cmd package install-existing ' + package)
if (result.stderr != '') { if (result.stderr != '') {
common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
@ -73,7 +75,7 @@ module.exports = {
} }
}, },
restoreAnyApk: async (package) => { restoreAnyApk: async (package) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
result = await shellExec(adbRun + ' shell cmd package install-existing ' + package.removeAnyApp) result = await shellExec(adbRun + ' shell cmd package install-existing ' + package.removeAnyApp)
if (result.stderr != '') { if (result.stderr != '') {
common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
@ -85,7 +87,7 @@ module.exports = {
} }
}, },
removeAnyApk: async (package) => { 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) result = await shellExec(adbRun + ' shell pm uninstall -k --user 0 ' + package.removeAnyApp)
if (result.stderr != '') { if (result.stderr != '') {
common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red') common.dualLog('device-not-authorised' + ' ' + result.stderr, 'red')
@ -97,7 +99,7 @@ module.exports = {
} }
}, },
getInstalledPacakges: async () => { getInstalledPacakges: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
result = await shellExec(adbRun + ' shell pm list packages -3') result = await shellExec(adbRun + ' shell pm list packages -3')
logger.info(await Language.get('packages-recieved-from-watch')) logger.info(await Language.get('packages-recieved-from-watch'))
if (result.stderr.includes('error')) { if (result.stderr.includes('error')) {
@ -125,13 +127,13 @@ module.exports = {
} }
}, },
killAdbServer: async () => { killAdbServer: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
let result = await shellExec(adbRun + ' kill-server') let result = await shellExec(adbRun + ' kill-server')
// common.log('') // common.log('')
// common.dualLog('restarting-adb' + ' ' + result.stderr, 'red') // common.dualLog('restarting-adb' + ' ' + result.stderr, 'red')
}, },
getCurrentDPI: async () => { getCurrentDPI: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
let result = await shellExec(adbRun + ' shell wm density') let result = await shellExec(adbRun + ' shell wm density')
if (result.stdout != "") { if (result.stdout != "") {
currentDPI = extractNumber(result.stdout) currentDPI = extractNumber(result.stdout)
@ -146,13 +148,13 @@ module.exports = {
}, },
setDPI: async (setDPI) => { setDPI: async (setDPI) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
let result = await shellExec(adbRun + ' shell wm density ' + setDPI) let result = await shellExec(adbRun + ' shell wm density ' + setDPI)
// currentDPI = extractNumber(result.stdout) // currentDPI = extractNumber(result.stdout)
// return currentDPI[0] // return currentDPI[0]
}, },
watchConnection: async (value) => { watchConnection: async (value) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
if (value.connection === "usb") { if (value.connection === "usb") {
common.dualLog(await Language.get('usb-one-device', 'whiteBright')) common.dualLog(await Language.get('usb-one-device', 'whiteBright'))
await common.pause(2000) await common.pause(2000)

View File

@ -8,11 +8,12 @@ var shell = require('shelljs');
const logger = require('perfect-logger'); const logger = require('perfect-logger');
const Language = require("@shypes/language-translator"); const Language = require("@shypes/language-translator");
const globalVariables = require('../lib/globalVars'); const globalVariables = require('../lib/globalVars');
const settings = require("settings-store");
var chalkRainbow = require('chalk-rainbow') var chalkRainbow = require('chalk-rainbow')
module.exports = { module.exports = {
header: async (page) => { header: async (page) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
clear(); clear();
console.log( console.log(
chalkRainbow( chalkRainbow(
@ -36,7 +37,7 @@ module.exports = {
await new Promise(resolve => setTimeout(resolve, time)); await new Promise(resolve => setTimeout(resolve, time));
}, },
connectionCheck: async () => { connectionCheck: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
if (globalVariables.localUSB === "X") { if (globalVariables.localUSB === "X") {
console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb'))) console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb')))
} }
@ -48,7 +49,7 @@ module.exports = {
} }
}, },
downloadFile: async (url, path) => { downloadFile: async (url, path) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const res = await fetch(url); const res = await fetch(url);
// await module.exports.downloadSize(url) // await module.exports.downloadSize(url)
await new Promise(async (resolve, reject) => { await new Promise(async (resolve, reject) => {
@ -81,7 +82,7 @@ module.exports = {
logger.info(await Language.get(item, 'en')) logger.info(await Language.get(item, 'en'))
}, },
print: async (item, colour) => { print: async (item, colour) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
switch (colour) { switch (colour) {
case 'green': case 'green':
console.log(chalk.green(await Language.get(item))) console.log(chalk.green(await Language.get(item)))

View File

@ -4,8 +4,10 @@ const tiny = require("@peterpanhihi/tiny");
const getFilesIn = require('get-files-in') const getFilesIn = require('get-files-in')
const globalVariables = require('../lib/globalVars'); const globalVariables = require('../lib/globalVars');
const Language = require("@shypes/language-translator"); const Language = require("@shypes/language-translator");
const settings = require("settings-store");
Language.setActiveLang(globalVariables.language)
Language.setActiveLang(settings.value("Lang"))
module.exports = { module.exports = {

View File

@ -1,7 +1,6 @@
class globalVariables { class globalVariables {
localUSB = ""; localUSB = "";
miWatchIpaddress = ""; miWatchIpaddress = "";
language = "";
usersList=[]; usersList=[];
} }

View File

@ -3,10 +3,11 @@ const files = require("./files");
const common = require("./common"); const common = require("./common");
const Language = require("@shypes/language-translator"); const Language = require("@shypes/language-translator");
const globalVariables = require('../lib/globalVars'); const globalVariables = require('../lib/globalVars');
const settings = require("settings-store");
module.exports = { module.exports = {
mainMenu: async () => { mainMenu: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "list", type: "list",
name: "mainMenu", name: "mainMenu",
@ -14,8 +15,8 @@ module.exports = {
choices: [ choices: [
'-----------------------', '-----------------------',
await Language.get('main-menu-item-1'), await Language.get('main-menu-item-1'),
await Language.get('main-menu-item-2'), await Language.get('main-menu-item-12'),
await Language.get('main-menu-item-3'), await Language.get('main-menu-item-11'),
await Language.get('main-menu-item-4'), await Language.get('main-menu-item-4'),
await Language.get('main-menu-item-5'), await Language.get('main-menu-item-5'),
await Language.get('main-menu-item-6'), await Language.get('main-menu-item-6'),
@ -45,7 +46,7 @@ module.exports = {
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
connectionType: async () => { connectionType: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "list", type: "list",
name: "connection", name: "connection",
@ -61,7 +62,7 @@ module.exports = {
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
connectWifi: async () => { connectWifi: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "input", type: "input",
name: "connectWifi", name: "connectWifi",
@ -70,7 +71,7 @@ module.exports = {
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
setDPI: async () => { setDPI: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "input", type: "input",
name: "setDPI", name: "setDPI",
@ -78,20 +79,24 @@ module.exports = {
},]; },];
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
removeAppsList: async () => { xiaomiAppsList: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const packages = await files.loadPackageList(); const packages = await files.loadPackageList();
let appList = []
packages.forEach(element => {
appList.push(element.name)
});
const questions = [{ const questions = [{
type: "checkbox", type: "checkbox",
name: "removeAppsList", name: "appList",
message: await Language.get('restore-app-message'), message: await Language.get('restore-app-message'),
choices: packages.apps, choices: appList,
},]; },];
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
compatibleApps: async () => { compatibleApps: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const compatibleApps = await common.getCompatibleAppsList() const compatibleApps = await common.getCompatibleAppsList()
const appList = [] const appList = []
for (let element of compatibleApps) { for (let element of compatibleApps) {
@ -106,7 +111,7 @@ module.exports = {
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
installedApps: async (installedApps) => { installedApps: async (installedApps) => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "checkbox", type: "checkbox",
name: "removeAppsList", name: "removeAppsList",
@ -116,7 +121,7 @@ module.exports = {
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
restoreAnyApp: async () => { restoreAnyApp: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "input", type: "input",
name: "restoreAnyApp", name: "restoreAnyApp",
@ -125,7 +130,7 @@ module.exports = {
return inquirer.prompt(questions); return inquirer.prompt(questions);
}, },
removeAnyApp: async () => { removeAnyApp: async () => {
Language.setActiveLang(globalVariables.language) Language.setActiveLang(await settings.value("Lang"))
const questions = [{ const questions = [{
type: "input", type: "input",
name: "removeAnyApp", name: "removeAnyApp",
@ -133,4 +138,36 @@ module.exports = {
},]; },];
return inquirer.prompt(questions); 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);
},
}; };

View File

@ -1,6 +1,6 @@
{ {
"name": "miwatchkleaner", "name": "miwatchkleaner",
"version": "3.2.1", "version": "3.3.0",
"description": "MiWatch Cleaning Tool", "description": "MiWatch Cleaning Tool",
"main": "app.js", "main": "app.js",
"bin": "app.js", "bin": "app.js",

View File

@ -6,6 +6,8 @@ const logger = require('perfect-logger');
const Language = require("@shypes/language-translator"); const Language = require("@shypes/language-translator");
const globalVariables = require('../lib/globalVars'); const globalVariables = require('../lib/globalVars');
const adb = require('../lib/adb'); const adb = require('../lib/adb');
const settings = require("settings-store");
logger.info(process.platform + " detected") logger.info(process.platform + " detected")
if (process.platform === 'win32' || process.platform === 'win64') { if (process.platform === 'win32' || process.platform === 'win64') {
@ -26,8 +28,10 @@ module.exports = {
common.header('main-menu-item-1') common.header('main-menu-item-1')
common.print('remove-xiaomi-apps', 'whiteBright') common.print('remove-xiaomi-apps', 'whiteBright')
const removalPackagesList = files.loadPackageList() const removalPackagesList = files.loadPackageList()
for (let package of removalPackagesList.apps) { for (let package of removalPackagesList) {
await adb.removeXiaomiApk(package) if (package.klean === "X" || package.global === "X") {
await adb.removeXiaomiApk(package.name)
}
} }
common.print('removal-complete', 'green') common.print('removal-complete', 'green')
await common.pause(2000) await common.pause(2000)
@ -68,8 +72,8 @@ module.exports = {
removeXiaomiApps: async () => { removeXiaomiApps: async () => {
common.header('main-menu-item-2') common.header('main-menu-item-2')
common.log('main-menu-item-2') common.log('main-menu-item-2')
const value = await inquirer.removeAppsList(); const value = await inquirer.xiaomiAppsList();
for (let package of value.removeAppsList) { for (let package of value.appList) {
await adb.removeXiaomiApk(package) await adb.removeXiaomiApk(package)
} }
common.dualLog('removal-complete', 'green') common.dualLog('removal-complete', 'green')
@ -80,8 +84,8 @@ module.exports = {
restoreXiaomiApps: async () => { restoreXiaomiApps: async () => {
common.header('main-menu-item-3') common.header('main-menu-item-3')
common.log('main-menu-item-3') common.log('main-menu-item-3')
const value = await inquirer.removeAppsList(); const value = await inquirer.xiaomiAppsList();
for (let package of value.removeAppsList) { for (let package of value.appList) {
await adb.restoreXiaomiApk(package) await adb.restoreXiaomiApk(package)
} }
common.dualLog('restoring-apps-complete', 'green') common.dualLog('restoring-apps-complete', 'green')
@ -213,19 +217,69 @@ module.exports = {
}, },
selectLanguage: async () => { selectLanguage: async () => {
common.header('Select Language') if (await settings.value("Lang") != undefined) {
common.log('Select Language') common.log(await settings.value("Lang") + " Selected")
const v = await inquirer.LanguageSelect() module.exports.connectWatch()
globalVariables.language = v.selection } else {
module.exports.connectWatch() 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 () => { mainMenu: async () => {
common.header('Main Menu') common.header('Main Menu')
const mainMenuSelection = await inquirer.mainMenu(); const mainMenuSelection = await inquirer.mainMenu();
menu_1 = await Language.get('main-menu-item-1') menu_1 = await Language.get('main-menu-item-1')
menu_2 = await Language.get('main-menu-item-2') menu_12 = await Language.get('main-menu-item-12')
menu_3 = await Language.get('main-menu-item-3')
menu_4 = await Language.get('main-menu-item-4') menu_4 = await Language.get('main-menu-item-4')
menu_5 = await Language.get('main-menu-item-5') menu_5 = await Language.get('main-menu-item-5')
menu_6 = await Language.get('main-menu-item-6') 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_8 = await Language.get('main-menu-item-8')
menu_9 = await Language.get('main-menu-item-9') menu_9 = await Language.get('main-menu-item-9')
menu_10 = await Language.get('main-menu-item-10') menu_10 = await Language.get('main-menu-item-10')
menu_11 = await Language.get('main-menu-item-11')
switch (mainMenuSelection.mainMenu) { switch (mainMenuSelection.mainMenu) {
case menu_1.toLowerCase(): case menu_1.toLowerCase():
module.exports.oneClick() module.exports.oneClick()
break; break;
case menu_2.toLowerCase(): case menu_12.toLowerCase():
module.exports.removeXiaomiApps() module.exports.xiaomiApps()
break;
case menu_3.toLowerCase():
module.exports.restoreXiaomiApps()
break; break;
// case menu_3.toLowerCase():
// module.exports.restoreXiaomiApps()
// break;
case menu_4.toLowerCase(): case menu_4.toLowerCase():
module.exports.installCompatibleApps() module.exports.installCompatibleApps()
break; break;
@ -266,6 +321,10 @@ module.exports = {
module.exports.changeWatchDPI() module.exports.changeWatchDPI()
break; break;
case menu_9.toLowerCase(): case menu_9.toLowerCase():
process.kill(process.pid)
break;
case menu_11.toLowerCase():
module.exports.globalTheme();
break; break;
default: default:
// code block // code block