#!/bin/bash

set -e

CONTRIB_ANDROID="$(dirname "$(readlink -e "$0")")"
CONTRIB="$CONTRIB_ANDROID"/..
PROJECT_ROOT="$CONTRIB"/..
PACKAGES="$PROJECT_ROOT"/packages/
LOCALE="$PROJECT_ROOT"/electrum/locale/

. "$CONTRIB"/build_tools_util.sh

if [ ! -d "$PACKAGES" ]; then
  "$CONTRIB"/make_packages || fail "make_packages failed"
fi

pushd "$PROJECT_ROOT"
git submodule update --init
popd

# update locale
info "preparing electrum-locale."
(
    cd "$CONTRIB"/deterministic-build/electrum-locale
    if ! which msgfmt > /dev/null 2>&1; then
        fail "Please install gettext"
    fi
    # we want the binary to have only compiled (.mo) locale files; not source (.po) files
    rm -rf "$PROJECT_ROOT/electrum/locale/"
    for i in ./locale/*; do
        dir="$PROJECT_ROOT/electrum/$i/LC_MESSAGES"
        mkdir -p $dir
        msgfmt --output-file="$dir/electrum.mo" "$i/electrum.po" || true
    done
)

pushd "$CONTRIB_ANDROID"

info "apk building phase starts."
if [[ -n "$1"  && "$1" == "release" ]] ; then
    # do release build, and sign the APKs.
    echo -n Keystore Password:
    read -s password
    export P4A_RELEASE_KEYSTORE=~/.keystore
    export P4A_RELEASE_KEYSTORE_PASSWD=$password
    export P4A_RELEASE_KEYALIAS_PASSWD=$password
    export P4A_RELEASE_KEYALIAS=electrum
    # build two apks
    export APP_ANDROID_ARCH=armeabi-v7a
    make release
    export APP_ANDROID_ARCH=arm64-v8a
    make release
elif [[ -n "$1"  && "$1" == "release-unsigned" ]] ; then
    # do release build, but do not sign the APKs.
    # build two apks
    export APP_ANDROID_ARCH=armeabi-v7a
    make release
    export APP_ANDROID_ARCH=arm64-v8a
    make release
else
    # do debug build; the default.
    export P4A_DEBUG_KEYSTORE="$CONTRIB_ANDROID"/android_debug.keystore
    export P4A_DEBUG_KEYSTORE_PASSWD=unsafepassword
    export P4A_DEBUG_KEYALIAS_PASSWD=unsafepassword
    export P4A_DEBUG_KEYALIAS=electrum
    # create keystore if needed
    if [ ! -f "$P4A_DEBUG_KEYSTORE" ]; then
        keytool -genkey -v -keystore "$CONTRIB_ANDROID"/android_debug.keystore \
            -alias "$P4A_DEBUG_KEYALIAS" -keyalg RSA -keysize 2048 -validity 10000 \
            -dname "CN=mqttserver.ibm.com, OU=ID, O=IBM, L=Hursley, S=Hants, C=GB" \
            -storepass "$P4A_DEBUG_KEYSTORE_PASSWD" \
            -keypass "$P4A_DEBUG_KEYALIAS_PASSWD"
    fi
    # only build one apk for debug build, for faster testing iterations
    export APP_ANDROID_ARCH=arm64-v8a
    make apk
    # export APP_ANDROID_ARCH=armeabi-v7a
    # make apk
fi

popd


info "done."
ls -la "$PROJECT_ROOT/dist"
sha256sum "$PROJECT_ROOT/dist"/*
