#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
APP_DIR="$ROOT_DIR/app"

test -f "$APP_DIR/build.gradle"
test -f "$APP_DIR/src/main/AndroidManifest.xml"
test -f "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"

grep -Fq 'android.permission.INTERNET' "$APP_DIR/src/main/AndroidManifest.xml"
grep -Fq 'package="com.kangbite.dishquestionnaire.pad"' "$APP_DIR/src/main/AndroidManifest.xml"
grep -Fq 'android:usesCleartextTraffic="true"' "$APP_DIR/src/main/AndroidManifest.xml"
grep -Fq 'setJavaScriptEnabled(true)' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'setDomStorageEnabled(true)' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'setAllowFileAccess(false)' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'setCacheMode(WebSettings.LOAD_NO_CACHE)' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq "dish-questionnaire-resume" "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'webView.onResume()' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'webView.onPause()' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'getSharedPreferences(' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'showConfigurationDialog(' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'showAdminAuthenticationDialog()' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq '/api/dishQuestionnaire/restaurants' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'fetchRestaurantOptions(' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'Spinner restaurantSpinner' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq '获取餐厅' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'isPrivateNetworkHost(' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq 'sha256(' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq '#/dishQuestionnairePad?type=' "$APP_DIR/src/main/java/com/kangbite/dishquestionnaire/pad/MainActivity.java"
grep -Fq "versionName '1.1.1'" "$APP_DIR/build.gradle"
if grep -Fq 'START_URL' "$APP_DIR/build.gradle"; then
  echo 'START_URL must not be hard-coded' >&2
  exit 1
fi

echo "android project contract passed"
