diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index f65db03..4eb222a 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -44,6 +44,11 @@ jobs: - name: Install dependencies run: flutter pub get + - name: Generate icons and splash screens + run: | + dart run flutter_launcher_icons + dart run flutter_native_splash:create + - name: Decode Keystore run: | echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/keystore.jks @@ -88,6 +93,11 @@ jobs: - name: Install dependencies run: flutter pub get + - name: Generate icons and splash screens + run: | + dart run flutter_launcher_icons + dart run flutter_native_splash:create + - name: Decode Keystore run: | echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/keystore.jks @@ -125,14 +135,17 @@ jobs: - name: Install dependencies run: flutter pub get + - name: Generate icons and splash screens + run: | + dart run flutter_launcher_icons + dart run flutter_native_splash:create + # - name: Build iOS .ipa # run: flutter build ipa --release - name: Build iOS .app - run: flutter build ios --release --no-codesign - - - name: Convert to IPA run: | + flutter build ios --release --no-codesign ./app2ipa.sh build/ios/iphoneos/Runner.app - name: Upload IPA artifact diff --git a/.gitignore b/.gitignore index b7dd43f..42d8ba3 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,11 @@ android/app/profile/ android/app/release/ *.iml +# Generated icons and splash screens (exclude manually maintained files) +android/app/src/main/res/drawable*/ +android/app/src/main/res/mipmap*/ +!android/app/src/main/res/values*/ + # ─────────────────────────────── # iOS / macOS # ─────────────────────────────── @@ -37,10 +42,18 @@ ios/Runner.xcworkspace/ macos/Pods/ macos/.generated/ macos/Flutter/ephemeral/ -# CocoaPods – commit Podfile.lock if you need reproducible iOS builds +# CocoaPods – commit Podfile.lock if you need reproducible iOS builds Podfile.lock Pods/ +# Generated icons and splash screens +ios/Runner/Assets.xcassets/AppIcon.appiconset/* +ios/Runner/Assets.xcassets/LaunchImage.imageset/* +ios/Runner/Assets.xcassets/LaunchBackground.imageset/* +!ios/Runner/Assets.xcassets/AppIcon.appiconset/.gitkeep +!ios/Runner/Assets.xcassets/LaunchImage.imageset/.gitkeep +!ios/Runner/Assets.xcassets/LaunchBackground.imageset/.gitkeep + # Xcode user data & build artifacts *.xcworkspace *.xcuserstate diff --git a/README.md b/README.md index 4c8e984..a1111a4 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ A comprehensive Flutter app for mapping public surveillance infrastructure with - **Map surveillance infrastructure** including cameras, ALPRs, gunshot detectors, and more with precise location, direction, and manufacturer details - **Upload to OpenStreetMap** with OAuth2 integration (live or sandbox modes) - **Work completely offline** with downloadable map areas and device data, plus upload queue -- **Multiple map types** including satellite imagery from Google, Esri, Mapbox, and OpenStreetMap, plus custom map tile provider support +- **Multiple map types** including satellite imagery from USGS, Esri, Mapbox, and topographic maps from OpenTopoMap, plus custom map tile provider support - **Editing Ability** to update existing device locations and properties - **Built-in device profiles** for Flock Safety, Motorola, Genetec, Leonardo, and other major manufacturers, plus custom profiles for more specific tag sets @@ -22,7 +22,7 @@ A comprehensive Flutter app for mapping public surveillance infrastructure with ## Key Features ### Map & Navigation -- **Multi-source tiles**: Switch between OpenStreetMap, Google Satellite, Esri imagery, Mapbox, and any custom providers +- **Multi-source tiles**: Switch between OpenStreetMap, USGS imagery, Esri imagery, Mapbox, OpenTopoMap, and any custom providers - **Offline-first design**: Download a region for complete offline operation - **Smooth UX**: Intuitive controls, follow-me mode with GPS rotation, and gesture-friendly interactions - **Device visualization**: Color-coded markers showing real devices (blue), pending uploads (purple), pending edits (grey), devices being edited (orange), and pending deletions (red) @@ -79,9 +79,10 @@ cp lib/keys.dart.example lib/keys.dart ## Roadmap ### Needed Bugfixes -- Pull version from pubspec.yaml instead of dev_config.dart; surely there's some kind of state we can pull from already +- Are offline areas really working? Are they preferred for fast loading even when online? Check working. ### Current Development +- Swap in alprwatch.org/directions avoidance routing API - Help button with links to email, discord, and website - Move download button? - Clean cache when nodes have disappeared / been deleted by others / queue item was deleted @@ -92,7 +93,7 @@ cp lib/keys.dart.example lib/keys.dart ### Future Features & Wishlist - Update offline area nodes while browsing? - Suspected locations toggle (alprwatch.com/flock/utilities) -- Route planning that avoids surveillance devices (alprwatch.com/directions) +- Offline navigation ### Maybes - Yellow ring for devices missing specific tag details? diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ffccb1b..1a19ce3 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -23,7 +23,7 @@ android:hardwareAccelerated="true" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustNothing"> - - - - - - - - diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png deleted file mode 100644 index 1830788..0000000 Binary files a/android/app/src/main/res/drawable-xhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png deleted file mode 100644 index 6f1fa13..0000000 Binary files a/android/app/src/main/res/drawable-xxhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png deleted file mode 100644 index 96da8f7..0000000 Binary files a/android/app/src/main/res/drawable-xxxhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png deleted file mode 100644 index 6208dfc..0000000 Binary files a/android/app/src/main/res/drawable/background.png and /dev/null differ diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 3cc4948..0000000 --- a/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 3ff1cb0..0000000 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index a8ccbe3..0000000 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4342270..0000000 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index cee83f3..0000000 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 37fcf16..0000000 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml index 5fef228..99c851b 100644 --- a/android/app/src/main/res/values-night-v31/styles.xml +++ b/android/app/src/main/res/values-night-v31/styles.xml @@ -2,6 +2,9 @@