/*
FUCK IT.
*/


#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);

uint8_t arrow_up[8] = {
  0b00000, //
  0b00100, //   0
  0b01110, //  000
  0b11111, // 00000
  0b00000, //
  0b00000, //
  0b00000, //
  0b00000, //
};
uint8_t arrow_down[8] = {
  0b00000, //
  0b11111, //
  0b01110, //
  0b00100, //
  0b00000, //
  0b00000, //
  0b00000, //
  0b00000, //
};

String display = "Hello World : this is a message that i write by myself   ",
       list[] = {
        "hello world",
        "ujang bujangan",
        "brohfashaoh",
        "idk what i'm do. but its like fun. i think :)"
       };



void setup() {
  // put your setup code here, to run once:
  lcd.init();
  lcd.backlight();
  lcd.createChar(3, arrow_up);
  lcd.createChar(4, arrow_down);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  lcd.begin(16, 2);
  display(list);
}

void action(int maxTime = 1000, int useMils = 10, ){
  int timer = 0;
  while(timer < maxTime){
    for (int i = 2; i <= 4; i++){
    if(digitalRead(i) == LOW) {
      if(i == 2){
        // up

      }
      else if (i == 3){
        // down
      }
      else{
        // ok
      }
    }
  }
    timer += useMils;
    delay(useMils);
  }
}

void display(String list[]) {
  int textLength = display.length();
  if (textLength > 16) {
    for (int i = 0; i <= textLength - 16; i++) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print(display.substring(i, i + 16));
      lcd.setCursor(0, 1);
      lcd.print("\x03 \x04           OK");
      action(500, 10);
    }

  } else {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(display);
    lcd.setCursor(0, 1);
    lcd.print("\x03 \x04           OK");
    action(1000, 10);
  }
}

void loop(){
  // hi
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
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
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL