diff --git a/esp32_marauder/MenuFunctions.cpp b/esp32_marauder/MenuFunctions.cpp index 8b3d7ab..2b8d408 100644 --- a/esp32_marauder/MenuFunctions.cpp +++ b/esp32_marauder/MenuFunctions.cpp @@ -1898,6 +1898,7 @@ void MenuFunctions::RunSetup() deviceMenu.list = new LinkedList(); #ifdef HAS_GPS if (gps_obj.getGpsModuleStatus()) { + gpsMenu.list = new LinkedList(); // H4W9 Added GPS Menu gpsInfoMenu.list = new LinkedList(); } #endif @@ -2010,6 +2011,7 @@ void MenuFunctions::RunSetup() //#endif #ifdef HAS_GPS gpsInfoMenu.name = "GPS Data"; + gpsMenu.name = "GPS"; // H4W9 Added GPS Menu wardrivingMenu.name = "Wardriving"; #endif htmlMenu.name = "EP HTML List"; @@ -2035,6 +2037,14 @@ void MenuFunctions::RunSetup() this->addNodes(&mainMenu, text_table1[19], TFTCYAN, NULL, BLUETOOTH, [this]() { this->changeMenu(&bluetoothMenu); }); + + // H4W9 Added GPS Menu option to Main Menu + #ifdef HAS_GPS + this->addNodes(&mainMenu, text1_66, TFTRED, NULL, GPS_MENU, [this]() { + this->changeMenu(&gpsMenu); + }); + #endif + this->addNodes(&mainMenu, text_table1[9], TFTBLUE, NULL, DEVICE, [this]() { this->changeMenu(&deviceMenu); }); @@ -3311,35 +3321,43 @@ void MenuFunctions::RunSetup() this->changeMenu(loadATsMenu.parentMenu); }); - // GPS Menu + // H4W9 Moved GPS functions to GPS Menu + // Build GPS Menu #ifdef HAS_GPS if (gps_obj.getGpsModuleStatus()) { - this->addNodes(&deviceMenu, "GPS Data", TFTRED, NULL, GPS_MENU, [this]() { + + gpsMenu.parentMenu = &mainMenu; // Main Menu is second menu parent + + this->addNodes(&gpsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() { + this->changeMenu(gpsMenu.parentMenu); + }); + + this->addNodes(&gpsMenu, "GPS Data", TFTRED, NULL, GPS_MENU, [this]() { wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA; this->changeMenu(&gpsInfoMenu); wifi_scan_obj.StartScan(WIFI_SCAN_GPS_DATA, TFT_CYAN); }); - this->addNodes(&deviceMenu, "NMEA Stream", TFTORANGE, NULL, GPS_MENU, [this]() { + this->addNodes(&gpsMenu, "NMEA Stream", TFTORANGE, NULL, GPS_MENU, [this]() { wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_NMEA; this->changeMenu(&gpsInfoMenu); wifi_scan_obj.StartScan(WIFI_SCAN_GPS_NMEA, TFT_ORANGE); }); - this->addNodes(&deviceMenu, "GPS Tracker", TFTGREEN, NULL, GPS_MENU, [this]() { + this->addNodes(&gpsMenu, "GPS Tracker", TFTGREEN, NULL, GPS_MENU, [this]() { wifi_scan_obj.currentScanMode = GPS_TRACKER; this->changeMenu(&gpsInfoMenu); wifi_scan_obj.StartScan(GPS_TRACKER, TFT_CYAN); }); - this->addNodes(&deviceMenu, "GPS POI", TFTCYAN, NULL, GPS_MENU, [this]() { + this->addNodes(&gpsMenu, "GPS POI", TFTCYAN, NULL, GPS_MENU, [this]() { wifi_scan_obj.StartScan(GPS_POI, TFT_CYAN); wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF; this->changeMenu(&gpsPOIMenu); }); // GPS POI Menu - gpsPOIMenu.parentMenu = &deviceMenu; + gpsPOIMenu.parentMenu = &gpsMenu; this->addNodes(&gpsPOIMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() { wifi_scan_obj.currentScanMode = GPS_POI; wifi_scan_obj.StartScan(WIFI_SCAN_OFF); @@ -3364,7 +3382,7 @@ void MenuFunctions::RunSetup() }); // GPS Info Menu - gpsInfoMenu.parentMenu = &deviceMenu; + gpsInfoMenu.parentMenu = &gpsMenu; this->addNodes(&gpsInfoMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() { if(wifi_scan_obj.currentScanMode != GPS_TRACKER) wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF; diff --git a/esp32_marauder/MenuFunctions.h b/esp32_marauder/MenuFunctions.h index a6dbeb6..34da12c 100644 --- a/esp32_marauder/MenuFunctions.h +++ b/esp32_marauder/MenuFunctions.h @@ -165,6 +165,9 @@ class MenuFunctions Menu wifiMenu; Menu bluetoothMenu; + #ifdef HAS_GPS + Menu gpsMenu; // H4W9 Added GPS Menu option to Main Menu + #endif Menu badusbMenu; Menu deviceMenu; diff --git a/esp32_marauder/lang_var.h b/esp32_marauder/lang_var.h index a1c78ba..a740810 100644 --- a/esp32_marauder/lang_var.h +++ b/esp32_marauder/lang_var.h @@ -106,6 +106,7 @@ PROGMEM const char text1_62[] = "Deauth Targeted"; PROGMEM const char text1_63[] = "Detect Pineapple"; PROGMEM const char text1_64[] = "Detect MultiSSID"; PROGMEM const char text1_65[] = "Select probe SSIDs"; +PROGMEM const char text1_66[] = "GPS"; // Text label for GPS Menu in Main Menu //SDInterface.cpp texts PROGMEM const char text2_0[] = "Error, could not find update.bin"; @@ -186,7 +187,7 @@ PROGMEM const char text4_49[] = " Detect MultiSSID "; //Making tables PROGMEM const char *text_table0[] = {text0_0,text0_1, text0_2, text0_3, text0_4, text0_5, text0_6, text0_7, text0_8}; -PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62,text1_63,text1_64, text1_65}; +PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62,text1_63,text1_64, text1_65, text1_66}; PROGMEM const char *text_table2[] = {text2_0,text2_1,text2_2,text2_3,text2_4,text2_5,text2_6,text2_7,text2_8,text2_9,text2_10,text2_11,text2_12,text2_13,text2_14}; PROGMEM const char *text_table3[] = {text3_0,text3_1,text3_2,text3_3,text3_4,text3_5}; PROGMEM const char *text_table4[] = {text4_0,text4_1,text4_2,text4_3,text4_4,text4_5,text4_6,text4_7,text1_54,text4_9,text4_10,text4_11,text4_12,text4_13,text4_14,text4_15,text4_16,text4_17,text4_18,text4_19,text4_20,text4_21,text4_22,text4_23,text4_24,text4_25,text4_26,text4_27,text4_28,text4_29,text4_30,text4_31,text4_32,text4_33,text4_34,text4_35,text4_36,text4_37,text4_38,text4_39,text4_40,text4_41,text4_42,text4_43,text4_44,text4_45,text4_46,text4_47,text4_48,text4_49};