#! /bin/bash


function list_actions() {
    echo $(adb devices) > /tmp/zat_fastboot_devices | zenity --progress \
        --title="ZAndroid Tools" \
        --text="Chargement des périphériques connectés à ADB en cours..." \
        --pulsate \
        --auto-close
    echo $(gksudo fastboot devices) >> /tmp/zat_fastboot_devices | zenity --progress \
        --title="ZAndroid Tools" \
        --text="Chargement des périphériques connectés à FastBoot en cours..." \
        --pulsate \
        --auto-close
    devices_out=$(cat /tmp/zat_fastboot_devices | sed 's/List of devices attached//g')
    rm -rf /tmp/zat_fastboot_devices
    
    choice=$(zenity --list \
                --title="ZAndroid Tools" \
                --width="600" \
                --height="650" \
                --text="Périphériques connectés:
$(echo "$devices_out" | while read d; do if [[ "$d" != 'List of devices attached' ]]; then echo "$d"; el="$el$d"; fi; done)

Selectionnez une action:" \
                --separator="@" \
                --column="Commande utilisée     " --column="Description de la commande" \
                        "adb shell"                 "Accéder au shell ADB" \
                        "adb wait-for-device"       "Connecté votre périphérique à ADB" \
                        "adb devices"               "Liste des péripériques connectés à ADB" \
                        "adb install"               "Installer un paquet APK" \
                        "adb pull"                  "Copier un fichier du périphérique vers GNU/Linux" \
                        "adb push"                  "Copier un fichier de GNU/Linux vers le périphérique" \
                        "adb reboot"                "Redémarrer le périphérique" \
                        "adb reboot recovery"       "Redémarrer le périphérique en mode recovery" \
                        "adb start-server"          "Démarrer le deamon ADB" \
                        "adb kill-server"           "Stopper le deamon ADB" \
                        ""                          "________________" \
                        "fastboot wait-for-device"  "Connecté votre périphérique à FastBoot" \
                        "fastboot devices"          "Liste des péripériques connectés à FastBoot" \
                        "fastboot flash boot"       "Flash de la partition boot" \
                        "fastboot flash recovery"   "Flash de la partition recovery" \
                        "fastboot flash system"     "Flash de la partition system" \
                        "fastboot flash userdata"   "Flash de la partition userdata" \
                        "fastboot reboot"           "Redémarrer le périphérique" \
                        "fastboot -w"               "Restaurer les paramètres d'usine" \
                        ""                          "________________" \
                        "udev restart"              "Recharger la liste des périphériques USB" \
                        "udev rules"                "Liste des fichiers rules" \
                        "install adb"               "Installer ADB" \
                        "install fastboot"          "Installer FastBoot" \
                        ""                          "________________" \
                        "about"                     "À propos de ZAndroid Tools"
            )
    if [ "$?" -eq 1 ]; then
        exit
    fi
    case $choice in
        # ADB
        "adb shell") xterm -T "ZAndroid Tools Shell" -e adb shell | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Shell en cours d'utilisation..." \
            --pulsate \
            --auto-close ;;
            
        "adb wait-for-device") adb "wait-for-device" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Connecté votre périphérique maintenant..." \
            --pulsate \
            --auto-close ;;
            
        "adb devices") zenity --list \
                --title="ZAndroid Tools" \
                --width="400" \
                --height="250" \
                --text="Liste des péripériques connectés:" \
                --separator="@" \
                --column="Identifiant" --column="Type" \
                    $(adb devices | while read d; do
                           if [[ "$d" != "List of devices attached" ]]; then echo "$d";fi
                    done) ;;
        
        "adb install") filename=$(zenity --file-selection \
            --title="ZAndroid Tools" \
            --text="Sélectionner un paquet à installer..." \
            --file-filter="*.apk")
            if [ "$?" -eq 0 ]; then
                install_out=$(adb install "$filename" | zenity --progress \
                    --title="ZAndroid Tools" \
                    --text="Installation de $filemane en cours..." \
                    --pulsate \
                    --auto-close)
                zenity --info \
                        --title="ZAndroid Tools" \
                        --text="Informations suite à l'installation de $filename:
$install_out" 
            fi ;;
            
        "adb pull") filename=$(zenity --entry \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner un répertoire de destination pour la copie." \
                    --entry-text="/sdcard/")
            if [ "$?" -eq 0 ]; then
                dest=$(zenity --file-selection \
                    --directory \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner un répertoire de destination pour la copie." )
                if [ "$?" -eq 0 ]; then
                    adb pull "$filename" "$dest/$(basename \"$filename\")" | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Copie de $filemane vers GNU/Linux cours..." \
                        --pulsate \
                        --auto-close
                fi
            fi ;;
            
        "adb push") filename=$(zenity --file-selection \
            --title="ZAndroid Tools" \
            --text="Sélectionner un fichier à copier sur le périphérique." )
            if [ "$?" -eq 0 ]; then
                dest=$(zenity --entry \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner un répertoire de destination pour la copie." \
                    --entry-text="/sdcard")
                if [ "$?" -eq 0 ]; then
                    adb push "$filename" "$dest/$(basename \"$filename\")" | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Copie de $filemane vers le périphérique cours..." \
                        --pulsate \
                        --auto-close
                fi
            fi ;;
        
        "adb reboot") adb "reboot" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Redémarrage du périphérique avec ADB en cours..." \
            --pulsate \
            --auto-close ;;
        
        "adb reboot recovery") adb "reboot recovery" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Redémarrage du périphérique en mode recovery en cours..." \
            --pulsate \
            --auto-close ;;
        
        "adb start-server") adb "start-server" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Démarrage du deamon en cours..." \
            --pulsate \
            --auto-close ;;
            
        "adb kill-server") adb "kill-server" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Fermeture du deamon en cours..." \
            --pulsate \
            --auto-close ;;
            
            
        # FastBoot
        "fastboot wait-for-device") gksudo fastboot "wait-for-device" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Connecté votre périphérique maintenant..." \
            --pulsate \
            --auto-close ;;
            
        "fastboot devices") zenity --list \
                --title="ZAndroid Tools" \
                --width="400" \
                --height="250" \
                --text="Liste des péripériques connectés à FastBoot:" \
                --separator="@" \
                --column="Identifiant" --column="Type" \
                    $(gksudo fastboot devices | while read fd; do
                           if [[ "$fd" != "" ]]; then echo "$fd";fi
                    done) ;;
        
        "fastboot flash boot") gksudo fastboot "wait-for-device" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Connecté votre périphérique maintenant..." \
            --pulsate \
            --auto-close 
            if [ "$?" -eq 1 ]; then
                gksudo killall fastboot
                list_actions
            fi
            filename=$(zenity --entry \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner une image pour flasher la partition boot." \
                    --entry-text="/sdcard/")
            if [ "$?" -eq 0 ]; then
                zenity --question \
                    --title="ZAndroid Tools" \
                    --text="Êtes vous sûre de vouloir flasher la partition boot ?"
                if [ "$?" -eq 0 ]; then
                    gksudo fastboot flash boot "$filename" | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Flashage de la partition boot en cours..." \
                        --pulsate \
                        --auto-close
                    if [ "$?" -eq 1 ]; then
                        gksudo killall fastboot
                    fi
                fi
            fi ;;
            
        "fastboot flash recovery") gksudo fastboot "wait-for-device" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Connecté votre périphérique maintenant..." \
            --pulsate \
            --auto-close 
            if [ "$?" -eq 1 ]; then
                gksudo killall fastboot
                list_actions
            fi
            filename=$(zenity --entry \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner une image pour flasher la partition recovery." \
                    --entry-text="/sdcard/")
            if [ "$?" -eq 0 ]; then
                zenity --question \
                    --title="ZAndroid Tools" \
                    --text="Êtes vous sûre de vouloir flasher la partition recovery ?"
                if [ "$?" -eq 0 ]; then
                    gksudo fastboot flash recovery "$filename" | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Flashage de la partition recovery en cours..." \
                        --pulsate \
                        --auto-close
                    if [ "$?" -eq 1 ]; then
                        gksudo killall fastboot
                    fi
                fi
            fi ;;
            
        "fastboot flash system") gksudo fastboot "wait-for-device" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Connecté votre périphérique maintenant..." \
            --pulsate \
            --auto-close 
            if [ "$?" -eq 1 ]; then
                gksudo killall fastboot
                list_actions
            fi
            filename=$(zenity --entry \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner une image pour flasher la partition system." \
                    --entry-text="/sdcard/")
            if [ "$?" -eq 0 ]; then
                zenity --question \
                    --title="ZAndroid Tools" \
                    --text="Êtes vous sûre de vouloir flasher la partition system ?"
                if [ "$?" -eq 0 ]; then
                    gksudo fastboot flash system "$filename" | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Flashage de la partition system en cours..." \
                        --pulsate \
                        --auto-close
                    if [ "$?" -eq 1 ]; then
                        gksudo killall fastboot
                    fi
                fi
            fi ;;
            
        "fastboot flash userdata") gksudo fastboot "wait-for-device" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Connecté votre périphérique maintenant..." \
            --pulsate \
            --auto-close 
            if [ "$?" -eq 1 ]; then
                gksudo killall fastboot
                list_actions
            fi
            filename=$(zenity --entry \
                    --title="ZAndroid Tools" \
                    --text="Sélectionner une image pour flasher la partition userdata." \
                    --entry-text="/sdcard/")
            if [ "$?" -eq 0 ]; then
                zenity --question \
                    --title="ZAndroid Tools" \
                    --text="Êtes vous sûre de vouloir flasher la partition userdata ?"
                if [ "$?" -eq 0 ]; then
                    gksudo fastboot flash userdata "$filename" | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Flashage de la partition userdata en cours..." \
                        --pulsate \
                        --auto-close
                    if [ "$?" -eq 1 ]; then
                        gksudo killall fastboot
                    fi
                fi
            fi ;;
        
        "fastboot reboot") gksudo fastboot "reboot" | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Redémarrage du périphérique avec FastBoot en cours..." \
            --pulsate \
            --auto-close ;;
        
        "fastboot -w") zenity --question \
                    --title="ZAndroid Tools" \
                    --text="Êtes vous sûre de vouloir restaurer la paramètres d'usine ?"
                if [ "$?" -eq 0 ]; then
                    gksudo fastboot -w | zenity --progress \
                        --title="ZAndroid Tools" \
                        --text="Restauration desx paramètre d'usine en cours..." \
                        --pulsate \
                        --auto-close
                    if [ "$?" -eq 1 ]; then
                        gksudo killall fastboot -w
                    fi
                fi ;;
            
        # others
        "udev restart") gksudo /etc/init.d/udev restart | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Rechargement la liste des périphériques USB en cours..." \
            --pulsate \
            --auto-close
            lsusb | while read fd; do if [[ "$fd" != "" ]]; then echo "$fd";fi;done | zenity --text-info \
                --title="ZAndroid Tools" \
                --width="600" \
                --height="400" \
                --text="Liste des péripériques USB:"
            ls -Rl /dev/bus/usb | while read fd; do if [[ "$fd" != "" ]]; then echo "$fd";fi;done | zenity --text-info \
                --title="ZAndroid Tools" \
                --width="600" \
                --height="400" \
                --text="Liste des péripériques USB:" ;;
        
        "udev rules") filename=$(zenity --list \
                --title="ZAndroid Tools" \
                --width="400" \
                --height="250" \
                --text="Liste des fichiers rules:" \
                --separator="@" \
                --column="Fichiers" \
                    $(ls /etc/udev/rules.d/ -1 | while read fd; do
                           if [[ "$fd" != "" ]]; then echo "$fd";fi
                    done)
                )
                if [ "$?" -eq 0 ]; then
                    out=$(zenity --text-info --title='ZAndroid Tools' --width='600' --height='400' --editable --filename=/etc/udev/rules.d/$filename)
                        if [ "$?" -eq 0 ]; then
                            echo $out > /tmp/zat_$filename
                            gksudo cp /tmp/zat_$filename /etc/udev/rules.d/$filename
                            rm -rf /tmp/zat_$filename
                        fi
                fi ;;
            
        "install adb") gksudo apt-get install android-tools-adb | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Installation de ADB en cours..." \
            --pulsate \
            --auto-close ;;
            
        "install fastboot") gksudo apt-get install android-tools-fastboot | zenity --progress \
            --title="ZAndroid Tools" \
            --text="Installation de FastBoot en cours..." \
            --pulsate \
            --auto-close ;;
            
        "about") zenity --info \
            --title="ZAndroid Tools" \
            --width="250" \
            --text="ZAndroid Tools v0.1
GNU/GPL v3
By BeHuman
craft@ckdevelop.org" 
            echo "Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la version 3 de la « GNU General Public License », telle qu'elle est publiée par la Free Software Foundation.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même les garanties implicites de CONFORMITÉ, de QUALITÉ SATISFAISANTE ou  D'ADÉQUATION À UNE UTILISATION PARTICULIÈRE. Voir la « GNU General Public License » pour plus de précisions.

Vous devriez avoir reçu une copie de la « GNU General Public License » avec ce programme. Sinon, voir <http://www.gnu.org/licenses/>." | zenity --text-info --title="ZAndroid Tools" --width="400" --height="425" ;;

    esac

    list_actions
}

list_actions
