pages.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. const chalk = require('chalk');
  2. const common = require('../lib/common');
  3. const inquirer = require('../lib/inquirer');
  4. const shellExec = require('shell-exec')
  5. const files = require('../lib/files')
  6. const fs = require('fs')
  7. const adb = require('../lib/adb')
  8. module.exports = {
  9. compatibleApps: async () => {
  10. common.header('Install Compatible Apps')
  11. const compatibleApps = JSON.parse(fs.readFileSync('./data/compatibleApps.json', 'utf8'));
  12. const value = await inquirer.compatibleApps();
  13. for (let element of value.removeAppsList) {
  14. for (let element2 of compatibleApps) {
  15. if (element === element2.name) {
  16. files.downloadFile(element2)
  17. }
  18. }
  19. // console.log(element)
  20. }
  21. // await adb.installApk()
  22. console.log('finished')
  23. },
  24. removeApps: async () => {
  25. common.header('Remove Apps')
  26. const value = await inquirer.removeAppsList();
  27. for (let element of value.removeAppsList) {
  28. await shellExec('adb shell pm uninstall -k --user 0 ' + element).then(function (result) {
  29. console.log('Removing ' + element + ' - ' + result.stdout);
  30. });
  31. }
  32. console.log(chalk.green('Removal Complete'))
  33. await common.pause(2000)
  34. module.exports.mainMenu()
  35. },
  36. restoreApps: async () => {
  37. common.header('Restore Apps')
  38. const value = await inquirer.removeAppsList();
  39. for (let element of value.removeAppsList) {
  40. await shellExec('adb shell cmd package install-existing ' + element).then(function (result) {
  41. console.log('Restoring ' + element + ' - ' + result.stdout);
  42. });
  43. }
  44. console.log(chalk.green('Restore Complete'))
  45. await common.pause(2000)
  46. module.exports.mainMenu()
  47. },
  48. connectWifi: async () => {
  49. const miwatchData = JSON.parse(fs.readFileSync('./data/MiWatch.json', 'utf8'));
  50. common.header('Connect Wifi')
  51. if (miwatchData.ipAddress !== "") {
  52. console.log('Trying to connect with stored ipAddress')
  53. shellExec('adb connect ' + miwatchData.ipAddress).then(async function (result) {
  54. if (result.stdout.includes('unable to connect')) {
  55. console.log(chalk.red('MiWatch not found'))
  56. await common.pause(2000)
  57. console.log(chalk.white('Try Again'))
  58. files.writeIpAddress('')
  59. await common.pause(1000)
  60. module.exports.connectWifi()
  61. } else if (result.stdout.includes('cannot connect')) {
  62. console.log(chalk.red('MiWatch not found'))
  63. await common.pause(2000)
  64. console.log(chalk.white('Try Again'))
  65. files.writeIpAddress('')
  66. await common.pause(1000)
  67. module.exports.connectWifi()
  68. } else if (result.stdout.includes('cannot resolve host')) {
  69. console.log(chalk.red('MiWatch not found'))
  70. await common.pause(2000)
  71. console.log(chalk.white('Try Again'))
  72. files.writeIpAddress('')
  73. await common.pause(1000)
  74. module.exports.connectWifi()
  75. } else {
  76. console.log(chalk.green('MiWatch Connected'))
  77. await common.pause(3000)
  78. module.exports.mainMenu()
  79. }
  80. }).catch()
  81. } else {
  82. const value = await inquirer.connectWifi();
  83. const miWatchIpaddress = value.connectWifi
  84. shellExec('adb connect ' + miWatchIpaddress).then(async function (result) {
  85. if (result.stdout.includes('unable to connect')) {
  86. console.log(chalk.red('MiWatch not found'))
  87. await common.pause(2000)
  88. console.log(chalk.white('Try Again'))
  89. await common.pause(1000)
  90. module.exports.connectWifi()
  91. } else if (result.stdout.includes('cannot connect')) {
  92. console.log(chalk.red('MiWatch not found'))
  93. await common.pause(2000)
  94. console.log(chalk.white('Try Again'))
  95. await common.pause(1000)
  96. module.exports.connectWifi()
  97. } else if (result.stdout.includes('cannot resolve host')) {
  98. console.log(chalk.red('MiWatch not found'))
  99. await common.pause(2000)
  100. console.log(chalk.white('Try Again'))
  101. await common.pause(1000)
  102. module.exports.connectWifi()
  103. } else {
  104. console.log(chalk.green('MiWatch Connected'))
  105. files.writeIpAddress(miWatchIpaddress)
  106. await common.pause(3000)
  107. module.exports.mainMenu()
  108. }
  109. }).catch()
  110. }
  111. },
  112. mainMenu: async () => {
  113. common.header('Main Menu')
  114. const mainMenuSelection = await inquirer.mainMenu();
  115. switch (mainMenuSelection.mainMenu) {
  116. case 'connect to miwatch via wifi':
  117. module.exports.connectWifi()
  118. break;
  119. case 'remove xiaomi apps':
  120. module.exports.removeApps()
  121. break;
  122. case 'restore xiaomi apps':
  123. module.exports.restoreApps()
  124. break;
  125. case 'install compatible apps':
  126. module.exports.compatibleApps()
  127. break;
  128. case 'quit':
  129. break;
  130. default:
  131. // code block
  132. }
  133. }
  134. };