/* Sketch for Tutorial 14
Author: Maximilian Hentsch
Sketch zu Arduino Tutorial 14 - Displaymenü
https://www.youtube.com/watch?v=DuAG98P9Seo
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);

int upButton = 26;
int downButton = 32;
int selectButton = 33;
int backButton = 27;
int menu = 1;
int menusetting = 5;
int suhuC=0;
int mL =0;
int waktu =0;

boolean isSettingMode = false;


void setup() {
  Serial.begin(115200);
  Wire.begin();                        // start I2C library
  lcd.init();                          // initialize the LCD
  lcd.backlight();                     // turn on backlight
  pinMode(upButton, INPUT_PULLUP);
  pinMode(downButton, INPUT_PULLUP);
  pinMode(selectButton, INPUT_PULLUP);
  pinMode(backButton, INPUT_PULLUP);
  updateMenu();
  updatemenusetting();
}

void loop() {
  if (!digitalRead(downButton)){
    menu++;
    menusetting++;
    updateMenu();
    updatemenusetting();
    delay(100);
    while (!digitalRead(downButton));
  }
  if (!digitalRead(upButton)){
    menu--;
    menusetting--;
    updateMenu();
    updatemenusetting();
    delay(100);
    while(!digitalRead(upButton));
  }
  if (!digitalRead(selectButton)){
 if (isSettingMode) {
     isSettingMode = false;
      updateMenu();
    } else {
      isSettingMode = true;
      updatemenusetting();
    }
    delay(100);
    while (!digitalRead(selectButton));

  }
    if (!digitalRead(backButton)){
    updateMenu();
    updatemenusetting();
    delay(100);
    while (!digitalRead(backButton));
    
  }
}

void updateMenu() {
  if (menu < 1) {
    menu = 1;
  } else if(menu > 4) {
    menu = 4;
  }

  lcd.clear();
  lcd.setCursor(0, 0);

  if (menu == 1) {
    lcd.print(">UAC COFFE");
    lcd.setCursor(0, 1);
    lcd.print(" Setting");
    lcd.setCursor(0, 2);
    lcd.print (" Check");
    lcd.setCursor(0, 3);
    lcd.print (" Ready?");
  } else if (menu == 2) {
    lcd.print(" UAC COFFE");
    lcd.setCursor(0, 1);
    lcd.print(">Setting");
    lcd.setCursor(0, 2);
    lcd.print (" Check");
    lcd.setCursor(0, 3);
    lcd.print (" Ready?");
  } else if (menu == 3) {
    lcd.print(" UAC COFFE");
    lcd.setCursor(0, 1);
    lcd.print(" Setting");
    lcd.setCursor(0, 2);
    lcd.print (">Check");
    lcd.setCursor(0, 3);
    lcd.print (" Ready?");
  } else if (menu == 4) {
    lcd.print(" UAC COFFE");
    lcd.setCursor(0, 1);
    lcd.print(" Setting");
    lcd.setCursor(0, 2);
    lcd.print (" Check");
    lcd.setCursor(0, 3);
    lcd.print (">Ready?");
  }
}

void updatemenusetting() {
  if (isSettingMode) {
  if (menusetting < 5) {
    menusetting = 5;
  } else if(menusetting> 7) {
    menusetting = 7;
  }

  lcd.clear();
  lcd.setCursor(0, 0);

  if (menusetting == 5) {
    lcd.print(">suhuC");
    lcd.setCursor(0, 1);
    lcd.print(" mL");
    lcd.setCursor(0, 2);
    lcd.print (" waktu");
  } else if (menusetting == 6) {
    lcd.print(" suhuC");
    lcd.setCursor(0, 1);
    lcd.print(">mL");
    lcd.setCursor(0, 2);
    lcd.print (" waktu");
  } else if (menusetting == 7) {
    lcd.print(" suhuC");
    lcd.setCursor(0, 1);
    lcd.print(" mL");
    lcd.setCursor(0, 2);
    lcd.print (">waktu");
  }
}
}

// void executeAction() {
//   lcd.clear();
//   lcd.setCursor(0, 0);

//   if (menu == 1) {
//     action1();
//   } else if (menu == 2) {
//     action2();
//   } else if (menu == 3) {
//     action3();
//   } else if (menu == 4) {
//     action4();
//   }
// }

// void action1() {
//   lcd.clear();
//   lcd.print(">Executing #1");
//   delay(1500);
// }
// void action2() {
//   lcd.clear();
//   lcd.print("suhuC");
//   lcd.setCursor(0, 1);
//   lcd.print(" Waktu");
//   lcd.setCursor(0, 2);
//   lcd.print(" mL");
//   delay(15000);
// }
// void action3() {
//   lcd.clear();
//   lcd.print(">Executing #3");
//   delay(1500);
// }
// void action4() {
//   lcd.clear();
//   lcd.print(">Executing #4");
//   delay(1500);
// }
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
uno1:VIN
uno1:GND.2
uno1:D13
uno1:D12
uno1:D14
uno1:D27
uno1:D26
uno1:D25
uno1:D33
uno1:D32
uno1:D35
uno1:D34
uno1:VN
uno1:VP
uno1:EN
uno1:3V3
uno1:GND.1
uno1:D15
uno1:D2
uno1:D4
uno1:RX2
uno1:TX2
uno1:D5
uno1:D18
uno1:D19
uno1:D21
uno1:RX0
uno1:TX0
uno1:D22
uno1:D23
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r