### LICENSE:
#
# Copyright (C) 2011-2012 Ahmad Amarullah ( http://amarullz.com/ )
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
### FILE INFO:
#
# AROMA Installer for NexusHD2 ROM Script Configuration
#   (C) 2012-2014 by tytung - xda-developers (tytung @ gmail.com)
#   added option to flash boot.img on multiboot in cLK bootloader for NativeSD installation (sboot, tboot, etc)
#
###


##
# Forcing Device Pixelate Size
#  defaut: floor( min( width, height ) / 160 )
#
ini_set("dp","3"); #-- HDPI ( 480x800 / WVGA )


##
# Initializing Rom Information
##
ini_set("rom_name",             "CM11 KITKAT 4.4.4");
ini_set("rom_version",          "mac4");
ini_set("rom_author",           "macs18max");
ini_set("rom_device",           "HTC HD2");
ini_set("rom_date",             "Nov 05, 2014");


##
# Show Simple Splash
#
#splash(
  #-- Duration 2000ms / 2 seconds
    #2000,
  
  #-- <AROMA Resource Dir>/sample.png
    #"sample"
#);


##
# Set Small Font to Support all fonts
#
fontresload( "0", "ttf/Roboto-Regular.ttf;ttf/DroidSansArabic.ttf;ttf/DroidSansFallback.ttf;", "12" ); #-- Use sets of font (Font Family)


##
# Set Language & Font Family
#
loadlang("langs/en.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" ); #-- "0" = Small Font
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" ); #-- "1" = Big Font


###################################################################################################################
#
# STEP 1 - SELECT THEME
#
theme("ics");


###################################################################################################################
#
# STEP 2 - SHOW ROM INFORMATION
#
# Extract ROM_NAME.prop to /tmp/aroma/ROM_NAME.prop
ziptotmp("boot/ROM_NAME.prop", "ROM_NAME.prop");

zipexec("boot/checksys.sh");
setvar("bootloader", file_getprop("/tmp/nfo.prop", "bootloader"));

viewbox(
  #-- Title
    "Welcome!",

  #-- Text
    "You are about to install the below ROM for <b>"+ini_get("rom_device")+"</b>.\n\n"+

    "  ROM Name\t: <b><#selectbg_g>"+ini_get("rom_name")+"</#></b>\n"+
    "  Version\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
    "  Author\t: <b><#selectbg_g>"+ini_get("rom_author")+"</#></b>\n"+
    "  Update\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+

    "Bootloader\t: "+getvar("bootloader")+"\n\n"+

    "System NAND\t: "+getdisksize("/system","m")+" MB\n"+
    "\t Free\t: "+    getdiskfree("/system","m")+" MB\n\n"+

    "Data   NAND\t: "+getdisksize("/data","m")+" MB\n"+
    "\t Free\t: "+    getdiskfree("/data","m")+" MB\n\n"+

    "SD Card Size\t: "+getdisksize("/sdcard","m")+" MB\n"+
    "\t Free\t: "+     getdiskfree("/sdcard","m")+" MB\n\n"+

    " SD-EXT Size\t: "+getdisksize("/sd-ext","m")+" MB\n"+
    "\t Free\t: "+     getdiskfree("/sd-ext","m")+" MB\n\n\n"+

    "Press Next to Continue the Installation...",

  #-- Icon
    "icons/welcome"
);


###################################################################################################################
#
# STEP 3 - SHOW SELECTBOX - Install Type
#
selectbox(
  #-- Title
    "Install Type",

  #-- Sub Title
    "Please Select the install type:",

  #-- Icon
    "icons/apps",

  #-- Will be saved in /tmp/aroma/installtype.prop
    "installtype.prop",
 
  #-- Group 1
    "Install Location", "", 2,                                                    #-- Group 1. key = "selected.1"

    "NAND",
      "system@NAND, data@NAND, boot@NAND\nFor T-Mobile USA HD2 (LEO 1024)",    0, #-- selected.1 = 1

    "NAND with DataOnEXT",
      "system@NAND, data@EXT4, boot@NAND\nFor EU/International HD2 (LEO 512)", 0, #-- selected.1 = 2

    "NativeSD (Everything on the SD card)",
      "system@EXT4, data@EXT4, boot@FAT32\nFor high speed read/write SD Card", 1  #-- selected.1 = 3
);

if prop("installtype.prop", "selected.1") == "3" then
  writetmpfile("kernel.prop", "NAND=no");
else
  writetmpfile("kernel.prop", "NAND=yes");
endif;

##############################
# Mount the SD-EXT partition #
##############################

if (prop("installtype.prop", "selected.1") == "2" ||
    prop("installtype.prop", "selected.1") == "3") then

  pleasewait("Mounting the SD-EXT Partition...");
  zipexec("boot/SD-EXT_mounter.sh");
  setvar("mount_result", getvar("exec_buffer"));

  if file_getprop("/tmp/mount.prop", "status") != "mounted" then

    #######################
    # No SD-EXT Partition #
    #######################

    # Set Next Text to 'Exit'
    ini_set("text_next", "Exit");

    textbox(
      "Mounting SD-EXT failed!",
      "Please create an EXT4 partition (mmcblk0p2) on the SD Card first.",
      "icons/alert",
      "Error messages:\n\n"+getvar("mount_result")
    );

    #-- Back to Menu
    back("1");

  endif;

endif;


###################################################################################################################
#
# STEP 4 - SHOW SELECTBOX - ROM Mods
#
selectbox(
  #-- Title
    "ROM Mods",
  
  #-- Sub Title
    "Please Select the ROM Mods:",
  
  #-- Icon
    "icons/personalize",
  
  #-- Will be saved in /tmp/aroma/mods.prop
    "mods.prop",
 
  #-- Group 1
    "Softkeys (Navbar)","",2,
      "Enable softkeys",
        "Select it to enable softkeys.",          1,
      "Disable softkeys",
        "Select it to disable softkeys.",         0,
 
  #-- Group 2
    "Wipe","",2,
      "Wipe Dalvik-Cache",
        "Select it to wipe Dalvik-Cache.",        1,
      "Wipe Data/Factory Reset",
        "Select it to wipe data/factory reset.",  0,
      "No Wipe",
        "Select it to keep everything.",          0
);

#########
# Ready #
#########

# Set Next Text to 'Start'
ini_set("text_next", "Start");

viewbox(
  "Ready To Install",

  "All information has been collected for installation.\n\n"+
  "<#selectbg_g><b>Press Start to continue...</b></#>",

  "icons/info"
);

###########
# Install #
###########

# Set Next Text to 'Next'
ini_set("text_next", "Next");

install(
  "Installing",
  "Installing ROM...\nPlease wait...",
  "icons/install"
);

##########
# Finish #
##########

# Set Next Text to 'Finish'
ini_set("text_next", "Finish");

checkviewbox(
  "Installation Complete",

  "<#selectbg_g><b>Congratulation</b></#>\n\n"+
  "Install complete.\n\n"+
  "For MAGLDR NativeSD users, make sure to set your SD boot folder to NativeSD.\n\n"+
  "For cLK NativeSD users, make sure to run your flash_sboot_v2.zip script.\n\n"+
  "Also cLK NativeSD users, can flash kernel from extended TWRP recovery: \n"+
  " > Advance > NativeSD > KernelUpdate.\n\n\n",

  "icons/info",
  "Reboot your device now.", "1", "reboot_it"
);

#-- Check if reboot checkbox was checked
if getvar("reboot_it") == "1" then
  reboot("onfinish");
endif;
