From d3bf2d09f740221771806789b00bf915c9f5f2e3 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Fri, 26 Jan 2024 14:51:36 +0100 Subject: initial commit --- mobile-gradle/.gitattributes | 9 + mobile-gradle/.gitignore | 5 + mobile-gradle/Justfile | 0 mobile-gradle/build.gradle.kts | 6 + mobile-gradle/gradle/libs.versions.toml | 2 + mobile-gradle/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + mobile-gradle/gradlew | 249 + mobile-gradle/gradlew.bat | 92 + mobile-gradle/nix/android-composition.nix | 14 + mobile-gradle/nix/androidsdk-fixup.py | 24 + mobile-gradle/nix/androidsdk.nix | 29 + mobile-gradle/settings.gradle.kts | 8 + mobile-kt/.gitignore | 2 + mobile-kt/Makefile | 17 + mobile-kt/WORKSPACE | 25 + mobile-kt/app/AndroidManifest.xml | 54 + mobile-kt/app/BUILD | 18 + mobile-kt/app/res/drawable/logo.png | Bin 0 -> 8963 bytes mobile-kt/app/res/layout/main.xml | 43 + mobile-kt/app/res/menu/settings.xml | 11 + mobile-kt/app/res/values-de/strings.xml | 66 + mobile-kt/app/res/values-ja/strings.xml | 66 + mobile-kt/app/res/values/dimens.xml | 4 + mobile-kt/app/res/values/strings.xml | 66 + mobile-kt/app/res/values/styles.xml | 11 + mobile-kt/app/res/xml/settings.xml | 45 + mobile-kt/app/src/DNSProxyConnection.java | 43 + mobile-kt/app/src/DNSProxyRunner.java | 43 + mobile-kt/app/src/DNSProxyService.java | 171 + mobile-kt/app/src/MainActivity.kt | 35 + mobile-kt/app/src/SettingsActivity.java | 132 + mobile-kt/app/src/WifiListenerReceiver.java | 50 + mobile-kt/app/src/WifiListenerService.java | 236 + mobile-kt/nix/android-composition.nix | 14 + mobile-kt/nix/androidsdk-fixup.py | 24 + mobile-kt/nix/androidsdk.nix | 29 + mobile-ns/.editorconfig | 23 + mobile-ns/.gitignore | 6 + mobile-ns/.vscode/extensions.json | 3 + mobile-ns/App_Resources/Android/app.gradle | 25 + .../App_Resources/Android/before-plugins.gradle | 15 + .../Android/src/main/AndroidManifest.xml | 47 + .../src/main/res/drawable-hdpi/background.png | Bin 0 -> 3661 bytes .../Android/src/main/res/drawable-hdpi/logo.png | Bin 0 -> 5165 bytes .../src/main/res/drawable-ldpi/background.png | Bin 0 -> 1609 bytes .../Android/src/main/res/drawable-ldpi/logo.png | Bin 0 -> 2511 bytes .../src/main/res/drawable-mdpi/background.png | Bin 0 -> 2218 bytes .../Android/src/main/res/drawable-mdpi/logo.png | Bin 0 -> 3432 bytes .../src/main/res/drawable-nodpi/splash_screen.xml | 8 + .../src/main/res/drawable-xhdpi/background.png | Bin 0 -> 5473 bytes .../Android/src/main/res/drawable-xhdpi/logo.png | Bin 0 -> 6904 bytes .../src/main/res/drawable-xxhdpi/background.png | Bin 0 -> 9949 bytes .../Android/src/main/res/drawable-xxhdpi/logo.png | Bin 0 -> 10319 bytes .../src/main/res/drawable-xxxhdpi/background.png | Bin 0 -> 15701 bytes .../Android/src/main/res/drawable-xxxhdpi/logo.png | Bin 0 -> 13941 bytes .../main/res/drawable/ic_launcher_foreground.xml | 15 + .../src/main/res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3092 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1956 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4484 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7184 bytes .../src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10378 bytes .../Android/src/main/res/values-v21/colors.xml | 5 + .../Android/src/main/res/values-v21/styles.xml | 34 + .../Android/src/main/res/values-v29/styles.xml | 18 + .../Android/src/main/res/values/colors.xml | 14 + .../src/main/res/values/ic_launcher_background.xml | 4 + .../Android/src/main/res/values/styles.xml | 42 + .../AppIcon.appiconset/Contents.json | 122 + .../AppIcon.appiconset/icon-1024.png | Bin 0 -> 17868 bytes .../Assets.xcassets/AppIcon.appiconset/icon-20.png | Bin 0 -> 745 bytes .../AppIcon.appiconset/icon-20@2x.png | Bin 0 -> 995 bytes .../AppIcon.appiconset/icon-20@3x.png | Bin 0 -> 1258 bytes .../Assets.xcassets/AppIcon.appiconset/icon-29.png | Bin 0 -> 851 bytes .../AppIcon.appiconset/icon-29@2x.png | Bin 0 -> 1232 bytes .../AppIcon.appiconset/icon-29@3x.png | Bin 0 -> 1668 bytes .../Assets.xcassets/AppIcon.appiconset/icon-40.png | Bin 0 -> 995 bytes .../AppIcon.appiconset/icon-40@2x.png | Bin 0 -> 1504 bytes .../AppIcon.appiconset/icon-40@3x.png | Bin 0 -> 2121 bytes .../AppIcon.appiconset/icon-60@2x.png | Bin 0 -> 2121 bytes .../AppIcon.appiconset/icon-60@3x.png | Bin 0 -> 3018 bytes .../Assets.xcassets/AppIcon.appiconset/icon-76.png | Bin 0 -> 1482 bytes .../AppIcon.appiconset/icon-76@2x.png | Bin 0 -> 2633 bytes .../AppIcon.appiconset/icon-83.5@2x.png | Bin 0 -> 2831 bytes .../iOS/Assets.xcassets/Contents.json | 6 + .../LaunchScreen.AspectFill.imageset/Contents.json | 23 + .../LaunchScreen-AspectFill.png | Bin 0 -> 4920 bytes .../LaunchScreen-AspectFill@2x.png | Bin 0 -> 14165 bytes .../LaunchScreen-AspectFill@3x.png | Bin 0 -> 27892 bytes .../LaunchScreen.Center.imageset/Contents.json | 23 + .../LaunchScreen-Center.png | Bin 0 -> 6808 bytes .../LaunchScreen-Center@2x.png | Bin 0 -> 13502 bytes .../LaunchScreen-Center@3x.png | Bin 0 -> 20794 bytes mobile-ns/App_Resources/iOS/Info.plist | 47 + .../App_Resources/iOS/LaunchScreen.storyboard | 53 + mobile-ns/App_Resources/iOS/build.xcconfig | 6 + mobile-ns/Justfile | 5 + mobile-ns/app/app-root.xml | 2 + mobile-ns/app/app.css | 6 + mobile-ns/app/app.ts | 14 + mobile-ns/app/gallery-page.ts | 7 + mobile-ns/app/gallery-page.xml | 7 + mobile-ns/app/gallery-view-model.ts | 65 + mobile-ns/app/main-page.ts | 7 + mobile-ns/app/main-page.xml | 17 + mobile-ns/app/main-view-model.ts | 50 + mobile-ns/bin/ns | 3 + mobile-ns/nativescript.config.ts | 11 + mobile-ns/nix/android-composition.nix | 14 + mobile-ns/nix/androidsdk-fixup.py | 24 + mobile-ns/nix/androidsdk.nix | 29 + mobile-ns/package-lock.json | 4768 ++++++++++++++++++++ mobile-ns/package.json | 17 + mobile-ns/references.d.ts | 1 + mobile-ns/tsconfig.json | 21 + mobile-ns/webpack.config.js | 10 + mobile/.editorconfig | 23 - mobile/.gitignore | 6 - mobile/.gitkeep | 0 mobile/.vscode/extensions.json | 3 - mobile/App_Resources/Android/app.gradle | 25 - mobile/App_Resources/Android/before-plugins.gradle | 15 - .../Android/src/main/AndroidManifest.xml | 44 - .../src/main/res/drawable-hdpi/background.png | Bin 3661 -> 0 bytes .../Android/src/main/res/drawable-hdpi/logo.png | Bin 5165 -> 0 bytes .../src/main/res/drawable-ldpi/background.png | Bin 1609 -> 0 bytes .../Android/src/main/res/drawable-ldpi/logo.png | Bin 2511 -> 0 bytes .../src/main/res/drawable-mdpi/background.png | Bin 2218 -> 0 bytes .../Android/src/main/res/drawable-mdpi/logo.png | Bin 3432 -> 0 bytes .../src/main/res/drawable-nodpi/splash_screen.xml | 8 - .../src/main/res/drawable-xhdpi/background.png | Bin 5473 -> 0 bytes .../Android/src/main/res/drawable-xhdpi/logo.png | Bin 6904 -> 0 bytes .../src/main/res/drawable-xxhdpi/background.png | Bin 9949 -> 0 bytes .../Android/src/main/res/drawable-xxhdpi/logo.png | Bin 10319 -> 0 bytes .../src/main/res/drawable-xxxhdpi/background.png | Bin 15701 -> 0 bytes .../Android/src/main/res/drawable-xxxhdpi/logo.png | Bin 13941 -> 0 bytes .../main/res/drawable/ic_launcher_foreground.xml | 15 - .../src/main/res/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3092 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1956 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4484 -> 0 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7184 -> 0 bytes .../src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 10378 -> 0 bytes .../Android/src/main/res/values-v21/colors.xml | 5 - .../Android/src/main/res/values-v21/styles.xml | 34 - .../Android/src/main/res/values-v29/styles.xml | 18 - .../Android/src/main/res/values/colors.xml | 14 - .../src/main/res/values/ic_launcher_background.xml | 4 - .../Android/src/main/res/values/styles.xml | 42 - .../AppIcon.appiconset/Contents.json | 122 - .../AppIcon.appiconset/icon-1024.png | Bin 17868 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/icon-20.png | Bin 745 -> 0 bytes .../AppIcon.appiconset/icon-20@2x.png | Bin 995 -> 0 bytes .../AppIcon.appiconset/icon-20@3x.png | Bin 1258 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/icon-29.png | Bin 851 -> 0 bytes .../AppIcon.appiconset/icon-29@2x.png | Bin 1232 -> 0 bytes .../AppIcon.appiconset/icon-29@3x.png | Bin 1668 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/icon-40.png | Bin 995 -> 0 bytes .../AppIcon.appiconset/icon-40@2x.png | Bin 1504 -> 0 bytes .../AppIcon.appiconset/icon-40@3x.png | Bin 2121 -> 0 bytes .../AppIcon.appiconset/icon-60@2x.png | Bin 2121 -> 0 bytes .../AppIcon.appiconset/icon-60@3x.png | Bin 3018 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/icon-76.png | Bin 1482 -> 0 bytes .../AppIcon.appiconset/icon-76@2x.png | Bin 2633 -> 0 bytes .../AppIcon.appiconset/icon-83.5@2x.png | Bin 2831 -> 0 bytes .../iOS/Assets.xcassets/Contents.json | 6 - .../LaunchScreen.AspectFill.imageset/Contents.json | 23 - .../LaunchScreen-AspectFill.png | Bin 4920 -> 0 bytes .../LaunchScreen-AspectFill@2x.png | Bin 14165 -> 0 bytes .../LaunchScreen-AspectFill@3x.png | Bin 27892 -> 0 bytes .../LaunchScreen.Center.imageset/Contents.json | 23 - .../LaunchScreen-Center.png | Bin 6808 -> 0 bytes .../LaunchScreen-Center@2x.png | Bin 13502 -> 0 bytes .../LaunchScreen-Center@3x.png | Bin 20794 -> 0 bytes mobile/App_Resources/iOS/Info.plist | 47 - mobile/App_Resources/iOS/LaunchScreen.storyboard | 53 - mobile/App_Resources/iOS/build.xcconfig | 6 - mobile/Justfile | 5 - mobile/app/app-root.xml | 2 - mobile/app/app.css | 6 - mobile/app/app.ts | 14 - mobile/app/gallery-page.ts | 7 - mobile/app/gallery-page.xml | 7 - mobile/app/gallery-view-model.ts | 51 - mobile/app/main-page.ts | 7 - mobile/app/main-page.xml | 17 - mobile/app/main-view-model.ts | 29 - mobile/bin/ns | 3 - mobile/nativescript.config.ts | 11 - mobile/nix/android-composition.nix | 14 - mobile/nix/androidsdk-fixup.py | 24 - mobile/nix/androidsdk.nix | 29 - mobile/package-lock.json | 4768 -------------------- mobile/package.json | 17 - mobile/references.d.ts | 1 - mobile/tsconfig.json | 21 - mobile/webpack.config.js | 10 - 198 files changed, 7272 insertions(+), 5584 deletions(-) create mode 100644 mobile-gradle/.gitattributes create mode 100644 mobile-gradle/.gitignore create mode 100644 mobile-gradle/Justfile create mode 100644 mobile-gradle/build.gradle.kts create mode 100644 mobile-gradle/gradle/libs.versions.toml create mode 100644 mobile-gradle/gradle/wrapper/gradle-wrapper.jar create mode 100644 mobile-gradle/gradle/wrapper/gradle-wrapper.properties create mode 100755 mobile-gradle/gradlew create mode 100644 mobile-gradle/gradlew.bat create mode 100644 mobile-gradle/nix/android-composition.nix create mode 100755 mobile-gradle/nix/androidsdk-fixup.py create mode 100644 mobile-gradle/nix/androidsdk.nix create mode 100644 mobile-gradle/settings.gradle.kts create mode 100644 mobile-kt/.gitignore create mode 100644 mobile-kt/Makefile create mode 100644 mobile-kt/WORKSPACE create mode 100644 mobile-kt/app/AndroidManifest.xml create mode 100644 mobile-kt/app/BUILD create mode 100644 mobile-kt/app/res/drawable/logo.png create mode 100644 mobile-kt/app/res/layout/main.xml create mode 100644 mobile-kt/app/res/menu/settings.xml create mode 100644 mobile-kt/app/res/values-de/strings.xml create mode 100644 mobile-kt/app/res/values-ja/strings.xml create mode 100644 mobile-kt/app/res/values/dimens.xml create mode 100644 mobile-kt/app/res/values/strings.xml create mode 100644 mobile-kt/app/res/values/styles.xml create mode 100644 mobile-kt/app/res/xml/settings.xml create mode 100644 mobile-kt/app/src/DNSProxyConnection.java create mode 100644 mobile-kt/app/src/DNSProxyRunner.java create mode 100644 mobile-kt/app/src/DNSProxyService.java create mode 100644 mobile-kt/app/src/MainActivity.kt create mode 100644 mobile-kt/app/src/SettingsActivity.java create mode 100644 mobile-kt/app/src/WifiListenerReceiver.java create mode 100644 mobile-kt/app/src/WifiListenerService.java create mode 100644 mobile-kt/nix/android-composition.nix create mode 100755 mobile-kt/nix/androidsdk-fixup.py create mode 100644 mobile-kt/nix/androidsdk.nix create mode 100644 mobile-ns/.editorconfig create mode 100644 mobile-ns/.gitignore create mode 100644 mobile-ns/.vscode/extensions.json create mode 100644 mobile-ns/App_Resources/Android/app.gradle create mode 100644 mobile-ns/App_Resources/Android/before-plugins.gradle create mode 100644 mobile-ns/App_Resources/Android/src/main/AndroidManifest.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-hdpi/background.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-hdpi/logo.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-ldpi/background.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-ldpi/logo.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-mdpi/background.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-mdpi/logo.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-xhdpi/background.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 mobile-ns/App_Resources/Android/src/main/res/values-v21/colors.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/values-v21/styles.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/values-v29/styles.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/values/colors.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/values/ic_launcher_background.xml create mode 100644 mobile-ns/App_Resources/Android/src/main/res/values/styles.xml create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/Contents.json create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@3x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png create mode 100644 mobile-ns/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@3x.png create mode 100644 mobile-ns/App_Resources/iOS/Info.plist create mode 100644 mobile-ns/App_Resources/iOS/LaunchScreen.storyboard create mode 100644 mobile-ns/App_Resources/iOS/build.xcconfig create mode 100644 mobile-ns/Justfile create mode 100644 mobile-ns/app/app-root.xml create mode 100644 mobile-ns/app/app.css create mode 100644 mobile-ns/app/app.ts create mode 100644 mobile-ns/app/gallery-page.ts create mode 100644 mobile-ns/app/gallery-page.xml create mode 100644 mobile-ns/app/gallery-view-model.ts create mode 100644 mobile-ns/app/main-page.ts create mode 100644 mobile-ns/app/main-page.xml create mode 100644 mobile-ns/app/main-view-model.ts create mode 100755 mobile-ns/bin/ns create mode 100644 mobile-ns/nativescript.config.ts create mode 100644 mobile-ns/nix/android-composition.nix create mode 100755 mobile-ns/nix/androidsdk-fixup.py create mode 100644 mobile-ns/nix/androidsdk.nix create mode 100644 mobile-ns/package-lock.json create mode 100644 mobile-ns/package.json create mode 100644 mobile-ns/references.d.ts create mode 100644 mobile-ns/tsconfig.json create mode 100644 mobile-ns/webpack.config.js delete mode 100644 mobile/.editorconfig delete mode 100644 mobile/.gitignore create mode 100644 mobile/.gitkeep delete mode 100644 mobile/.vscode/extensions.json delete mode 100644 mobile/App_Resources/Android/app.gradle delete mode 100644 mobile/App_Resources/Android/before-plugins.gradle delete mode 100644 mobile/App_Resources/Android/src/main/AndroidManifest.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-hdpi/background.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-hdpi/logo.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-ldpi/background.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-ldpi/logo.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-mdpi/background.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-mdpi/logo.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-xhdpi/background.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png delete mode 100644 mobile/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 mobile/App_Resources/Android/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 mobile/App_Resources/Android/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 mobile/App_Resources/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 mobile/App_Resources/Android/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 mobile/App_Resources/Android/src/main/res/values-v21/colors.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/values-v21/styles.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/values-v29/styles.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/values/colors.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/values/ic_launcher_background.xml delete mode 100644 mobile/App_Resources/Android/src/main/res/values/styles.xml delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/Contents.json delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@3x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png delete mode 100644 mobile/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@3x.png delete mode 100644 mobile/App_Resources/iOS/Info.plist delete mode 100644 mobile/App_Resources/iOS/LaunchScreen.storyboard delete mode 100644 mobile/App_Resources/iOS/build.xcconfig delete mode 100644 mobile/Justfile delete mode 100644 mobile/app/app-root.xml delete mode 100644 mobile/app/app.css delete mode 100644 mobile/app/app.ts delete mode 100644 mobile/app/gallery-page.ts delete mode 100644 mobile/app/gallery-page.xml delete mode 100644 mobile/app/gallery-view-model.ts delete mode 100644 mobile/app/main-page.ts delete mode 100644 mobile/app/main-page.xml delete mode 100644 mobile/app/main-view-model.ts delete mode 100755 mobile/bin/ns delete mode 100644 mobile/nativescript.config.ts delete mode 100644 mobile/nix/android-composition.nix delete mode 100755 mobile/nix/androidsdk-fixup.py delete mode 100644 mobile/nix/androidsdk.nix delete mode 100644 mobile/package-lock.json delete mode 100644 mobile/package.json delete mode 100644 mobile/references.d.ts delete mode 100644 mobile/tsconfig.json delete mode 100644 mobile/webpack.config.js diff --git a/mobile-gradle/.gitattributes b/mobile-gradle/.gitattributes new file mode 100644 index 0000000..097f9f9 --- /dev/null +++ b/mobile-gradle/.gitattributes @@ -0,0 +1,9 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + diff --git a/mobile-gradle/.gitignore b/mobile-gradle/.gitignore new file mode 100644 index 0000000..1b6985c --- /dev/null +++ b/mobile-gradle/.gitignore @@ -0,0 +1,5 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/mobile-gradle/Justfile b/mobile-gradle/Justfile new file mode 100644 index 0000000..e69de29 diff --git a/mobile-gradle/build.gradle.kts b/mobile-gradle/build.gradle.kts new file mode 100644 index 0000000..7529919 --- /dev/null +++ b/mobile-gradle/build.gradle.kts @@ -0,0 +1,6 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * This is a general purpose Gradle build. + * To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.5/samples + */ diff --git a/mobile-gradle/gradle/libs.versions.toml b/mobile-gradle/gradle/libs.versions.toml new file mode 100644 index 0000000..4ac3234 --- /dev/null +++ b/mobile-gradle/gradle/libs.versions.toml @@ -0,0 +1,2 @@ +# This file was generated by the Gradle 'init' task. +# https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format diff --git a/mobile-gradle/gradle/wrapper/gradle-wrapper.jar b/mobile-gradle/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..d64cd49 Binary files /dev/null and b/mobile-gradle/gradle/wrapper/gradle-wrapper.jar differ diff --git a/mobile-gradle/gradle/wrapper/gradle-wrapper.properties b/mobile-gradle/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..1af9e09 --- /dev/null +++ b/mobile-gradle/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/mobile-gradle/gradlew b/mobile-gradle/gradlew new file mode 100755 index 0000000..1aa94a4 --- /dev/null +++ b/mobile-gradle/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# https://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. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/mobile-gradle/gradlew.bat b/mobile-gradle/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/mobile-gradle/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/mobile-gradle/nix/android-composition.nix b/mobile-gradle/nix/android-composition.nix new file mode 100644 index 0000000..2db557a --- /dev/null +++ b/mobile-gradle/nix/android-composition.nix @@ -0,0 +1,14 @@ +with (import { + config.allowUnfree = true; + config.android_sdk.accept_license = true; +}); + +androidenv.composeAndroidPackages { + platformVersions = ["28" "30" "31"]; + buildToolsVersions = ["30.0.3" "33.0.2"]; + + # includeEmulator = true; + # includeSystemImages = true; + # systemImageTypes = ["google_apis_playstore"]; + # abiVersions = ["x86_64"]; +} diff --git a/mobile-gradle/nix/androidsdk-fixup.py b/mobile-gradle/nix/androidsdk-fixup.py new file mode 100755 index 0000000..ab419e6 --- /dev/null +++ b/mobile-gradle/nix/androidsdk-fixup.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +import sys, os, shutil + +ANDROIDSDK_PATH = sys.argv[1] +BUILD_TOOLS_PATH = f'{ANDROIDSDK_PATH}/build-tools' +PLATFORMS_PATH = f'{ANDROIDSDK_PATH}/platforms' + +BUILD_TOOLS = [os.path.join(BUILD_TOOLS_PATH, filename) for filename in os.listdir(BUILD_TOOLS_PATH)] +PLATFORMS = [os.path.join(PLATFORMS_PATH, filename) for filename in os.listdir(PLATFORMS_PATH)] + +for build_tool in BUILD_TOOLS: + if os.path.islink(build_tool): + print(f'build-tool "{os.path.basename(build_tool)}" is a symlink. Copying...') + link_src = os.readlink(build_tool) + os.unlink(build_tool) + shutil.copytree(link_src, build_tool) + +for platform in PLATFORMS: + if os.path.islink(platform): + print(f'platform "{os.path.basename(platform)}" is a symlink. Copying...') + link_src = os.readlink(platform) + os.unlink(platform) + shutil.copytree(link_src, platform) diff --git a/mobile-gradle/nix/androidsdk.nix b/mobile-gradle/nix/androidsdk.nix new file mode 100644 index 0000000..cf1ea04 --- /dev/null +++ b/mobile-gradle/nix/androidsdk.nix @@ -0,0 +1,29 @@ +with (import {}); +let + android-composition = import ./android-composition.nix; +in +stdenv.mkDerivation { + name = "androidsdk"; + + buildInputs = [ + python3Full + ]; + + src = "${android-composition.androidsdk}"; + + dontUnpack = true; + + buildPhase = '' + buildDir=$PWD/android-composition + mkdir $buildDir + + cp -r $src/* $buildDir + + chmod -R +w "$buildDir/libexec/android-sdk" + python ${./androidsdk-fixup.py} "$buildDir/libexec/android-sdk" + ''; + + installPhase = '' + cp -r $buildDir $out + ''; +} diff --git a/mobile-gradle/settings.gradle.kts b/mobile-gradle/settings.gradle.kts new file mode 100644 index 0000000..9703689 --- /dev/null +++ b/mobile-gradle/settings.gradle.kts @@ -0,0 +1,8 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.5/userguide/building_swift_projects.html in the Gradle documentation. + */ + +rootProject.name = "mobile" diff --git a/mobile-kt/.gitignore b/mobile-kt/.gitignore new file mode 100644 index 0000000..306c83d --- /dev/null +++ b/mobile-kt/.gitignore @@ -0,0 +1,2 @@ +/bazel-* +/result diff --git a/mobile-kt/Makefile b/mobile-kt/Makefile new file mode 100644 index 0000000..a314992 --- /dev/null +++ b/mobile-kt/Makefile @@ -0,0 +1,17 @@ +build: app/java/src/*.java + bazel build //app:image-sync + +dev: + #bazel mobile-install //app/java:dnsproxy --start_app #--debug_app --java_debug + $(MAKE) build && $(MAKE) install && adb shell am start -n org.pihole.dnsproxy/org.pihole.dnsproxy.MainActivity + +install: + #bazel mobile-install //app/java:dnsproxy + adb install bazel-bin/app/java/dnsproxy.apk + +emulate: + # avdmanager create --name dnsproxy -k "system-images;android-28;google_apis_playstore;x86_64" + emulator @dnsproxy -no-boot-anim + +adb_logcat: + adb logcat --pid=$(adb shell pidof -s org.pihole.dnsproxy) diff --git a/mobile-kt/WORKSPACE b/mobile-kt/WORKSPACE new file mode 100644 index 0000000..158184a --- /dev/null +++ b/mobile-kt/WORKSPACE @@ -0,0 +1,25 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + + +# Android + +android_sdk_repository( + name = "androidsdk", +) + + +# Kotlin + +rules_kotlin_version = "1.9.0" +rules_kotlin_sha = "5766f1e599acf551aa56f49dab9ab9108269b03c557496c54acaf41f98e2b8d6" +http_archive( + name = "rules_kotlin", + urls = ["https://github.com/bazelbuild/rules_kotlin/releases/download/v%s/rules_kotlin-v%s.tar.gz" % (rules_kotlin_version, rules_kotlin_version)], + sha256 = rules_kotlin_sha, +) + +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") +kotlin_repositories() + +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") +kt_register_toolchain() diff --git a/mobile-kt/app/AndroidManifest.xml b/mobile-kt/app/AndroidManifest.xml new file mode 100644 index 0000000..0c417b7 --- /dev/null +++ b/mobile-kt/app/AndroidManifest.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-kt/app/BUILD b/mobile-kt/app/BUILD new file mode 100644 index 0000000..c3e38c2 --- /dev/null +++ b/mobile-kt/app/BUILD @@ -0,0 +1,18 @@ +android_library( + name = "main", + manifest = "AndroidManifest.xml", + resource_files = glob(["res/**"]), +) + +load("@rules_kotlin//kotlin:android.bzl", "kt_android_library") +kt_android_library( + name = "main_kt", + srcs = glob(["src/*.kt"]), + deps = [":main"], +) + +android_binary( + name = "image-sync", + manifest = "AndroidManifest.xml", + deps = [":main", ":main_kt"], +) diff --git a/mobile-kt/app/res/drawable/logo.png b/mobile-kt/app/res/drawable/logo.png new file mode 100644 index 0000000..154b579 Binary files /dev/null and b/mobile-kt/app/res/drawable/logo.png differ diff --git a/mobile-kt/app/res/layout/main.xml b/mobile-kt/app/res/layout/main.xml new file mode 100644 index 0000000..d3bbcf5 --- /dev/null +++ b/mobile-kt/app/res/layout/main.xml @@ -0,0 +1,43 @@ + + + + + +