reworking for multilingual
This commit is contained in:
		
							parent
							
								
									a5b71281b3
								
							
						
					
					
						commit
						688167f88e
					
				
							
								
								
									
										62
									
								
								lang/en.json
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								lang/en.json
									
									
									
									
									
								
							@ -1,32 +1,40 @@
 | 
			
		||||
{
 | 
			
		||||
    "main_menu_question": "What do you want to do?",
 | 
			
		||||
    "main_menu_item_1": "1-Click Karl0ss Klean",
 | 
			
		||||
    "main_menu_item_2": "Remove Xiaomi Apps",
 | 
			
		||||
    "main_menu_item_3": "Restore Xiaomi Apps",
 | 
			
		||||
    "main_menu_item_4": "Install Compatible Apps",
 | 
			
		||||
    "main_menu_item_5": "Restore ANY app",
 | 
			
		||||
    "main_menu_item_6": "Batch Install APKs",
 | 
			
		||||
    "main_menu_item_7": "Batch Remove Installed Apps",
 | 
			
		||||
    "main_menu_item_8": "Quit",
 | 
			
		||||
    "connection_type_message": "How do you want to connect?",
 | 
			
		||||
    "connect_wifi_message":"What is your MiWatch IpAdress?",
 | 
			
		||||
    "restore_app_message": "What apps do you want to restore?",
 | 
			
		||||
    "install_compatible_apps_message": "What apps do you want to Install?",
 | 
			
		||||
    "remove_installed_apps_message": "What Installed apps do you want to remove?",
 | 
			
		||||
    "restore_any_app_message": "What App do you want to restore?",
 | 
			
		||||
    "remove_installed_apps_header": "Remove Installed Apps",
 | 
			
		||||
    "packages_recieved_from_watch": "Packages recieved from watch",
 | 
			
		||||
    "device_not_authorised": "Device not authorised",
 | 
			
		||||
    "restarting_adb": "Restarting ADB",
 | 
			
		||||
    "please_reconnect_to_watch": "Please reconnect to watch",
 | 
			
		||||
    "remove_installed_apps_failed": "Remove Installed Apps Failed",
 | 
			
		||||
    "main-menu-question": "What do you want to do?",
 | 
			
		||||
    "main-menu-item-1": "1-Click Karl0ss Klean",
 | 
			
		||||
    "main-menu-item-2": "Remove Xiaomi Apps",
 | 
			
		||||
    "main-menu-item-3": "Restore Xiaomi Apps",
 | 
			
		||||
    "main-menu-item-4": "Install Compatible Apps",
 | 
			
		||||
    "main-menu-item-5": "Restore ANY app",
 | 
			
		||||
    "main-menu-item-6": "Batch Install APKs",
 | 
			
		||||
    "main-menu-item-7": "Batch Remove Installed Apps",
 | 
			
		||||
    "main-menu-item-8": "Quit",
 | 
			
		||||
    "connection-type-message": "How do you want to connect?",
 | 
			
		||||
    "connect-wifi-message":"What is your MiWatch IpAdress?",
 | 
			
		||||
    "restore-app-message": "What apps do you want to restore?",
 | 
			
		||||
    "install-compatible-apps-message": "What apps do you want to Install?",
 | 
			
		||||
    "remove-installed-apps-message": "What Installed apps do you want to remove?",
 | 
			
		||||
    "restore-any-app-message": "What App do you want to restore?",
 | 
			
		||||
    "header-remove-installed-apps": "Remove Installed Apps",
 | 
			
		||||
    "packages-recieved-from-watch": "Packages recieved from watch",
 | 
			
		||||
    "device-not-authorised": "Device not authorised",
 | 
			
		||||
    "restarting-adb": "Restarting ADB",
 | 
			
		||||
    "please-reconnect-to-watch": "Please reconnect to watch",
 | 
			
		||||
    "remove-installed-apps-failed": "Remove Installed Apps Failed",
 | 
			
		||||
    "removing": "Removing",
 | 
			
		||||
    "removal-complete": "Removal Complete",
 | 
			
		||||
    "installing": "Installing",
 | 
			
		||||
    "restoring": "Restoring",
 | 
			
		||||
    "remove_selected_user_apps": "Removed Selected User Apps",
 | 
			
		||||
    "install_compatible_apps_header": "Install Compatible Apps",
 | 
			
		||||
    "simple_weather_activated_on_watch": "simpleWeather Activated On Watch",
 | 
			
		||||
    "morelocale_activated_on_watch": "moreLocale Activated On Watch",
 | 
			
		||||
    "alberto_locale_activated_on_watch": "Alberto Locale Activated On Watch",
 | 
			
		||||
    "compatible_apps_installed": "Compatible Apps Installed"
 | 
			
		||||
    "remove-selected-user-apps": "Removed Selected User Apps",
 | 
			
		||||
    "install-compatible-apps-header": "Install Compatible Apps",
 | 
			
		||||
    "simple-weather-activated-on-watch": "simpleWeather Activated On Watch",
 | 
			
		||||
    "morelocale-activated-on-watch": "moreLocale Activated On Watch",
 | 
			
		||||
    "alberto-locale-activated-on-watch": "Alberto Locale Activated On Watch",
 | 
			
		||||
    "compatible-apps-installed": "Compatible Apps Installed",
 | 
			
		||||
    "compatible-apps": "Compatible Apps",
 | 
			
		||||
    "remove-xiaomi-apps": "Remove Xiaomi Apps",
 | 
			
		||||
    "downloading-compatible-apps": "Downloading Compatible Apps",
 | 
			
		||||
    "installing-apps": "Installing Apps",
 | 
			
		||||
    "downloading-latest": "Downloading Latest",
 | 
			
		||||
    "complete": "Complete",
 | 
			
		||||
    "failed": "Failed"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								lib/adb.js
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								lib/adb.js
									
									
									
									
									
								
							@ -18,8 +18,8 @@ module.exports = {
 | 
			
		||||
  installApk: async (element) => {
 | 
			
		||||
    result = await shellExec(adbRun + ' install -r ' + element).then(async function (result) {
 | 
			
		||||
      if (result.stderr != '') {
 | 
			
		||||
        logger.info(await Language.get('device_not_authorised'));
 | 
			
		||||
        console.log(chalk.redBright(await Language.get('device_not_authorised')));
 | 
			
		||||
        logger.info(await Language.get('device-not-authorised'));
 | 
			
		||||
        console.log(chalk.redBright(await Language.get('device-not-authorised')));
 | 
			
		||||
      }
 | 
			
		||||
      console.log(element + ' - ' + result.stdout);
 | 
			
		||||
      logger.info(element + ' - ' + result.stdout);
 | 
			
		||||
@ -29,21 +29,21 @@ module.exports = {
 | 
			
		||||
        await common.downloadFile('http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/Others/simpleweather_split_config.xhdpi.apk', './data/apps/simpleweather_split_config.xhdpi.apk')
 | 
			
		||||
        await shellExec(adbRun + ' install-multiple "data\\apps\\simpleweather_base.apk" "data\\apps\\simpleweather_split_config.armeabi_v7a.apk" "data\\apps\\simpleweather_split_config.xhdpi.apk"').then(async function (result) {
 | 
			
		||||
          console.log(result)
 | 
			
		||||
          console.log(await Language.get('simple_weather_activated_on_watch'));
 | 
			
		||||
          logger.info(await Language.get('simple_weather_activated_on_watch'));
 | 
			
		||||
          console.log(await Language.get('simple-weather-activated-on-watch'));
 | 
			
		||||
          logger.info(await Language.get('simple-weather-activated-on-watch'));
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      if (element === "data\\apps\\MoreLocale.apk") {
 | 
			
		||||
        await shellExec(adbRun + ' shell pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION').then(async function (result) {
 | 
			
		||||
          console.log(await Language.get('morelocale_activated_on_watch'));
 | 
			
		||||
          logger.info(await Language.get('morelocale_activated_on_watch'));
 | 
			
		||||
          console.log(await Language.get('morelocale-activated-on-watch'));
 | 
			
		||||
          logger.info(await Language.get('morelocale-activated-on-watch'));
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      if (element === "data\\apps\\com.alberto.locale.apk") {
 | 
			
		||||
        await shellExec(adbRun + ' shell pm grant com.alberto.locale android.permission.CHANGE_CONFIGURATION && ' + adbRun + ' shell am start -n com.alberto.locale/com.alberto.locale.MainActivity && ' + adbRun + ' shell pm grant com.alberto.locale android.permission.CHANGE_CONFIGURATION').then(async function (result) {
 | 
			
		||||
          console.log(result)
 | 
			
		||||
          console.log(await Language.get('alberto_locale_activated_on_watch'));
 | 
			
		||||
          logger.info(await Language.get('alberto_locale_activated_on_watch'));
 | 
			
		||||
          console.log(await Language.get('alberto-locale-activated-on-watch'));
 | 
			
		||||
          logger.info(await Language.get('alberto-locale-activated-on-watch'));
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
@ -93,17 +93,17 @@ module.exports = {
 | 
			
		||||
  },
 | 
			
		||||
  getInstalledPacakges: async () => {
 | 
			
		||||
    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')) {
 | 
			
		||||
      logger.info(result.stderr)
 | 
			
		||||
      console.log(chalk.red(await Language.get('device_not_authorised')))
 | 
			
		||||
      console.log(chalk.red(await Language.get('device-not-authorised')))
 | 
			
		||||
      common.pause(3000)
 | 
			
		||||
      await shellExec(adbRun + ' kill-server').then(async function (result) {
 | 
			
		||||
        logger.info(await Language.get('restarting_adb'))
 | 
			
		||||
        logger.info(await Language.get('restarting-adb'))
 | 
			
		||||
        logger.info(result.stdout)
 | 
			
		||||
        console.log(await Language.get('please_reconnect_to_watch'))
 | 
			
		||||
        console.log(await Language.get('please-reconnect-to-watch'))
 | 
			
		||||
        common.pause(3000)
 | 
			
		||||
        logger.info(await Language.get('remove_installed_apps_failed'))
 | 
			
		||||
        logger.info(await Language.get('remove-installed-apps-failed'))
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
      })
 | 
			
		||||
    } else {
 | 
			
		||||
 | 
			
		||||
@ -5,11 +5,13 @@ const fs = require('fs')
 | 
			
		||||
var pjson = require('../package.json');
 | 
			
		||||
const fetch = require('node-fetch');
 | 
			
		||||
var shell = require('shelljs');
 | 
			
		||||
const logger = require('perfect-logger');
 | 
			
		||||
const Language = require("@shypes/language-translator");
 | 
			
		||||
 | 
			
		||||
const globalVariables = require('../lib/globalVars');
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    header: (page) => {
 | 
			
		||||
    header: async (page) => {
 | 
			
		||||
        clear();
 | 
			
		||||
        console.log(
 | 
			
		||||
            chalk.red(
 | 
			
		||||
@ -26,7 +28,7 @@ module.exports = {
 | 
			
		||||
                '-------------------------------------------------------------------------------------------------------'
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
        console.log(chalk.blue(page))
 | 
			
		||||
        console.log(chalk.blue(await Language.get(page)))
 | 
			
		||||
        module.exports.connectionCheck()
 | 
			
		||||
        console.log(chalk.red('----------'))
 | 
			
		||||
    },
 | 
			
		||||
@ -66,4 +68,27 @@ module.exports = {
 | 
			
		||||
    clearApkFolder: async () => {
 | 
			
		||||
        await shell.rm('-rf', './data/apps/*.apk');
 | 
			
		||||
    },
 | 
			
		||||
    log: async (item) => {
 | 
			
		||||
        logger.info(await Language.get(item, 'en'))
 | 
			
		||||
    },
 | 
			
		||||
    print: async (item, colour) => {
 | 
			
		||||
        switch (colour) {
 | 
			
		||||
            case 'green':
 | 
			
		||||
                console.log(chalk.green(await Language.get(item)))
 | 
			
		||||
                break;
 | 
			
		||||
            case 'red':
 | 
			
		||||
                console.log(chalk.redBright(await Language.get(item)))
 | 
			
		||||
                break;
 | 
			
		||||
            case 'whiteBright':
 | 
			
		||||
                console.log(chalk.whiteBright(await Language.get(item)))
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                console.log(chalk.white(await Language.get(item)))
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    dualLog: async (item, colour) => {
 | 
			
		||||
        await module.exports.log(item)
 | 
			
		||||
        await module.exports.print(item, colour)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -16,16 +16,16 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "list",
 | 
			
		||||
      name: "mainMenu",
 | 
			
		||||
      message: await Language.get('main_menu_question'),
 | 
			
		||||
      message: await Language.get('main-menu-question'),
 | 
			
		||||
      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_4'),
 | 
			
		||||
        await Language.get('main_menu_item_5'),
 | 
			
		||||
        await Language.get('main_menu_item_6'),
 | 
			
		||||
        await Language.get('main_menu_item_7'),
 | 
			
		||||
        await Language.get('main_menu_item_8'),
 | 
			
		||||
        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-4'),
 | 
			
		||||
        await Language.get('main-menu-item-5'),
 | 
			
		||||
        await Language.get('main-menu-item-6'),
 | 
			
		||||
        await Language.get('main-menu-item-7'),
 | 
			
		||||
        await Language.get('main-menu-item-8'),
 | 
			
		||||
      ],
 | 
			
		||||
      filter: function (val) {
 | 
			
		||||
        return val.toLowerCase();
 | 
			
		||||
@ -37,7 +37,7 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "list",
 | 
			
		||||
      name: "connection",
 | 
			
		||||
      message: await Language.get('connection_type_message'),
 | 
			
		||||
      message: await Language.get('connection-type-message'),
 | 
			
		||||
      choices: [
 | 
			
		||||
        "USB",
 | 
			
		||||
        "Wifi"
 | 
			
		||||
@ -52,7 +52,7 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "input",
 | 
			
		||||
      name: "connectWifi",
 | 
			
		||||
      message: await Language.get('connect_wifi_message'),
 | 
			
		||||
      message: await Language.get('connect-wifi-message'),
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
@ -62,7 +62,7 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "checkbox",
 | 
			
		||||
      name: "removeAppsList",
 | 
			
		||||
      message: await Language.get('restore_app_message'),
 | 
			
		||||
      message: await Language.get('restore-app-message'),
 | 
			
		||||
      choices: packages.apps,
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
@ -76,7 +76,7 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "checkbox",
 | 
			
		||||
      name: "removeAppsList",
 | 
			
		||||
      message: await Language.get('install_compatible_apps_message'),
 | 
			
		||||
      message: await Language.get('install-compatible-apps-message'),
 | 
			
		||||
      choices: appList,
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
@ -85,7 +85,7 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "checkbox",
 | 
			
		||||
      name: "removeAppsList",
 | 
			
		||||
      message: await Language.get('remove_installed_apps_message'),
 | 
			
		||||
      message: await Language.get('remove-installed-apps-message'),
 | 
			
		||||
      choices: installedApps,
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
@ -94,7 +94,7 @@ module.exports = {
 | 
			
		||||
    const questions = [{
 | 
			
		||||
      type: "input",
 | 
			
		||||
      name: "restoreAnyApp",
 | 
			
		||||
      message: await Language.get('restore_any_app_message'),
 | 
			
		||||
      message: await Language.get('restore-any-app-message'),
 | 
			
		||||
    },];
 | 
			
		||||
    return inquirer.prompt(questions);
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										215
									
								
								pages/pages.js
									
									
									
									
									
								
							
							
						
						
									
										215
									
								
								pages/pages.js
									
									
									
									
									
								
							@ -20,27 +20,78 @@ logger.initialize('RunTIme', {
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    removeCompatibleApps: async () => {
 | 
			
		||||
        common.header(await Language.get('remove_installed_apps_header'))
 | 
			
		||||
        logger.info(await Language.get('remove_installed_apps_header'))
 | 
			
		||||
 | 
			
		||||
        value = await adb.getInstalledPacakges()
 | 
			
		||||
 | 
			
		||||
        for (let element of value.removeAppsList) {
 | 
			
		||||
            console.log(await Language.get('removing') + ' ' + element)
 | 
			
		||||
            logger.info(await Language.get('removing') + ' ' + element)
 | 
			
		||||
            const package = element.substring(8)
 | 
			
		||||
            await adb.removeApk(package)
 | 
			
		||||
    oneClick: async () => {
 | 
			
		||||
        common.log('main-menu-item-1')
 | 
			
		||||
        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)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green(await Language.get('remove_selected_user_apps')))
 | 
			
		||||
        logger.info(await Language.get('remove_selected_user_apps'))
 | 
			
		||||
        common.print('removal-complete', 'green')
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        common.log('removal-complete')
 | 
			
		||||
        common.log('compatible-apps')
 | 
			
		||||
        
 | 
			
		||||
        await common.clearApkFolder()
 | 
			
		||||
 | 
			
		||||
        const compatibleApps = await common.getCompatibleAppsList()
 | 
			
		||||
        
 | 
			
		||||
        console.log(chalk.whiteBright('----------'))
 | 
			
		||||
        common.print('downloading-compatible-apps', 'whiteBright')
 | 
			
		||||
        
 | 
			
		||||
        for (const package of compatibleApps) {
 | 
			
		||||
            if (package.Klean === "X") {
 | 
			
		||||
                try {
 | 
			
		||||
                    newPacakgeName = package.name.replace(/\s/g, '');
 | 
			
		||||
                    await common.downloadFile(package.url, './data/apps/' + newPacakgeName + '.apk')
 | 
			
		||||
                    logger.info(await Language.get('downloading-latest', 'en') + ' ' + package.name + ' ' + chalk.green(await Language.get('complete', 'en')))
 | 
			
		||||
                    console.log(await Language.get('downloading-latest') + ' ' + package.name + ' ' + await Language.get('complete'))
 | 
			
		||||
                } catch (error) {
 | 
			
		||||
                    logger.info(await Language.get('downloading-latest', 'en') + ' ' + package.name + ' ' + chalk.red(await Language.get('failed', 'en')))
 | 
			
		||||
                    console.log(await Language.get('downloading-latest') + ' ' + package.name + ' ' + await Language.get('failed'))
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        const apkList = await files.getListOfAPk('./data/apps')
 | 
			
		||||
        console.log(chalk.whiteBright('----------'))
 | 
			
		||||
        common.print('installing-apps', 'whiteBright')
 | 
			
		||||
        for (let element of apkList) {
 | 
			
		||||
            await adb.installApk(element)
 | 
			
		||||
        }
 | 
			
		||||
        common.dualLog('compatible-apps-installed', 'green')
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    removeXiaomiApps: async () => {
 | 
			
		||||
        common.header(await Language.get('main-menu-item-2'))
 | 
			
		||||
        common.log('main-menu-item-2', 'green')
 | 
			
		||||
        const value = await inquirer.removeAppsList();
 | 
			
		||||
        for (let package of value.removeAppsList) {
 | 
			
		||||
            await adb.removeXiaomiApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        common.dualLog('removal-complete', 'green')
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    restoreXiaomiApps: async () => {
 | 
			
		||||
        logger.info("Restore Apps")
 | 
			
		||||
        common.header('Restore Apps')
 | 
			
		||||
        const value = await inquirer.removeAppsList();
 | 
			
		||||
        for (let package of value.removeAppsList) {
 | 
			
		||||
            await adb.restoreXiaomiApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green('Restore Complete'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        logger.info("Restore Apps Complete")
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    installCompatibleApps: async () => {
 | 
			
		||||
        logger.info(await Language.get('install_compatible_apps_header'))
 | 
			
		||||
        common.header(await Language.get('install_compatible_apps_header'))
 | 
			
		||||
        logger.info(await Language.get('install-compatible-apps-header', 'en'))
 | 
			
		||||
        common.header(await Language.get('install-compatible-apps-header'))
 | 
			
		||||
 | 
			
		||||
        const compatibleApps = await common.getCompatibleAppsList()
 | 
			
		||||
        const value = await inquirer.compatibleApps();
 | 
			
		||||
@ -60,88 +111,15 @@ module.exports = {
 | 
			
		||||
 | 
			
		||||
        for (let package of apkList) {
 | 
			
		||||
            console.log(await Language.get('installing') + ' ' + package)
 | 
			
		||||
            logger.info(await Language.get('installing') + ' ' + package)
 | 
			
		||||
            logger.info(await Language.get('installing', 'en') + ' ' + package)
 | 
			
		||||
            await adb.installApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green(await Language.get('compatible_apps_installed')))
 | 
			
		||||
        logger.info(await Language.get('compatible_apps_installed'))
 | 
			
		||||
        console.log(chalk.green(await Language.get('compatible-apps-installed')))
 | 
			
		||||
        logger.info(await Language.get('compatible-apps-installed', 'en'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
    removeApps: async () => {
 | 
			
		||||
        logger.info("Remove Apps")
 | 
			
		||||
        common.header('Remove Apps')
 | 
			
		||||
        const value = await inquirer.removeAppsList();
 | 
			
		||||
        for (let package of value.removeAppsList) {
 | 
			
		||||
            await adb.removeXiaomiApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green('Removal Complete'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        logger.info("Remove Complete")
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
    restoreApps: async () => {
 | 
			
		||||
        logger.info("Restore Apps")
 | 
			
		||||
        common.header('Restore Apps')
 | 
			
		||||
        const value = await inquirer.removeAppsList();
 | 
			
		||||
        for (let package of value.removeAppsList) {
 | 
			
		||||
            await adb.restoreXiaomiApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green('Restore Complete'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        logger.info("Restore Apps Complete")
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
    connectWatch: async () => {
 | 
			
		||||
        logger.info("Connect to watch")
 | 
			
		||||
        common.header('Connect to watch')
 | 
			
		||||
        const value = await inquirer.connectionType()
 | 
			
		||||
        connected = await adb.watchConnection(value)
 | 
			
		||||
        if (connected != true) {
 | 
			
		||||
            module.exports.connectWatch()
 | 
			
		||||
        } else {
 | 
			
		||||
            module.exports.mainMenu()
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    oneClick: async () => {
 | 
			
		||||
        logger.info("1-Click Karl0ss Klean")
 | 
			
		||||
        common.header('1-Click Karl0ss Klean')
 | 
			
		||||
        const removalPackagesList = files.loadPackageList()
 | 
			
		||||
        for (let package of removalPackagesList.apps) {
 | 
			
		||||
            await adb.removeXiaomiApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green('Removal Complete'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        logger.info("Remove Complete")
 | 
			
		||||
        logger.info("Compatible Apps")
 | 
			
		||||
 | 
			
		||||
        await common.clearApkFolder()
 | 
			
		||||
 | 
			
		||||
        const compatibleApps = await common.getCompatibleAppsList()
 | 
			
		||||
        console.log(chalk.green('Download Compatible APKS'))
 | 
			
		||||
 | 
			
		||||
        for (const package of compatibleApps) {
 | 
			
		||||
            if (package.Klean === "X") {
 | 
			
		||||
                try {
 | 
			
		||||
                    newPacakgeName = package.name.replace(/\s/g, '');
 | 
			
		||||
                    await common.downloadFile(package.url, './data/apps/' + newPacakgeName + '.apk')
 | 
			
		||||
                    logger.info('Downloading Latest ' + package.name + ' Complete')
 | 
			
		||||
                    console.log('Downloading Latest ' + package.name + ' Complete')
 | 
			
		||||
                } catch (error) {
 | 
			
		||||
                    logger.info('Downloading Latest ' + package.name + ' FAILED')
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        const apkList = await files.getListOfAPk('./data/apps')
 | 
			
		||||
        console.log(chalk.green('Install Apks'))
 | 
			
		||||
        for (let element of apkList) {
 | 
			
		||||
            await adb.installApk(element)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green('Compatible Apps Installed'))
 | 
			
		||||
        logger.info('Compatible Apps Installed')
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
    restoreAnyApp: async () => {
 | 
			
		||||
        logger.info("Restore Any App")
 | 
			
		||||
        common.header('Restore Any App')
 | 
			
		||||
@ -152,13 +130,14 @@ module.exports = {
 | 
			
		||||
        logger.info("App Restore Complete")
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    batchInstallApks: async () => {
 | 
			
		||||
        logger.info("Batch Install Apks")
 | 
			
		||||
        common.header('Batch Install Apks')
 | 
			
		||||
 | 
			
		||||
        let apkList = await files.getListOfAPk('./my_apk/')
 | 
			
		||||
        let apkList = await files.getListOfAPk('./my-apk/')
 | 
			
		||||
        await files.renameLocalApk(apkList)
 | 
			
		||||
        apkList = await files.getListOfAPk('./my_apk/')
 | 
			
		||||
        apkList = await files.getListOfAPk('./my-apk/')
 | 
			
		||||
 | 
			
		||||
        for (let element of apkList) {
 | 
			
		||||
            console.log('Installing ' + element)
 | 
			
		||||
@ -170,34 +149,66 @@ module.exports = {
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    batchRemoveInstalledApps: async () => {
 | 
			
		||||
        common.header(await Language.get('header-remove-installed-apps'))
 | 
			
		||||
        logger.info(await Language.get('header-remove-installed-apps', 'en'))
 | 
			
		||||
 | 
			
		||||
        value = await adb.getInstalledPacakges()
 | 
			
		||||
 | 
			
		||||
        for (let element of value.removeAppsList) {
 | 
			
		||||
            console.log(await Language.get('removing') + ' ' + element)
 | 
			
		||||
            logger.info(await Language.get('removing') + ' ' + element)
 | 
			
		||||
            const package = element.substring(8)
 | 
			
		||||
            await adb.removeApk(package)
 | 
			
		||||
        }
 | 
			
		||||
        console.log(chalk.green(await Language.get('remove-selected-user-apps')))
 | 
			
		||||
        logger.info(await Language.get('remove-selected-user-apps', 'en'))
 | 
			
		||||
        await common.pause(2000)
 | 
			
		||||
        module.exports.mainMenu()
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    connectWatch: async () => {
 | 
			
		||||
        logger.info("Connect to watch")
 | 
			
		||||
        common.header('Connect to watch')
 | 
			
		||||
        const value = await inquirer.connectionType()
 | 
			
		||||
        connected = await adb.watchConnection(value)
 | 
			
		||||
        if (connected != true) {
 | 
			
		||||
            module.exports.connectWatch()
 | 
			
		||||
        } else {
 | 
			
		||||
            module.exports.mainMenu()
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    mainMenu: async () => {
 | 
			
		||||
        common.header('Main Menu')
 | 
			
		||||
        const mainMenuSelection = await inquirer.mainMenu();
 | 
			
		||||
        switch (mainMenuSelection.mainMenu) {
 | 
			
		||||
            case 'connect to miwatch':
 | 
			
		||||
                module.exports.connectWatch()
 | 
			
		||||
                break;
 | 
			
		||||
            case '1-click karl0ss klean':
 | 
			
		||||
                module.exports.oneClick()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'remove xiaomi apps':
 | 
			
		||||
                module.exports.removeApps()
 | 
			
		||||
                module.exports.removeXiaomiApps()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'restore xiaomi apps':
 | 
			
		||||
                module.exports.restoreApps()
 | 
			
		||||
                module.exports.restoreXiaomiApps()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'install compatible apps':
 | 
			
		||||
                module.exports.installCompatibleApps()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'batch remove installed apps':
 | 
			
		||||
                module.exports.removeCompatibleApps()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'restore any app':
 | 
			
		||||
                module.exports.restoreAnyApp()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'batch install apks':
 | 
			
		||||
                module.exports.batchInstallApks()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'batch remove installed apps':
 | 
			
		||||
                module.exports.batchRemoveInstalledApps()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'connect to miwatch':
 | 
			
		||||
                module.exports.connectWatch()
 | 
			
		||||
                break;
 | 
			
		||||
            case 'quit':
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user