Implement Phase 1 Android client: Flutter share receiver + upload service

- Register ACTION_SEND IntentFilter for image/* in AndroidManifest
- Kotlin MethodChannel bridge: extract image URI, original filename, resolve to file
- Flutter bottom sheet UI: thumbnail preview, note input (200 char), submit/cancel
- Upload service: multipart POST, Bearer auth, 10MB limit, offline cache, exponential backoff retry
- Configurable server URL and API token via SharedPreferences
- Minimal home screen with usage instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Misaka_Company
2026-05-21 17:05:44 +08:00
parent ff95d75eed
commit d11f33380c
133 changed files with 5672 additions and 2 deletions

View File

@@ -0,0 +1,14 @@
// Application-level settings for the Runner target.
//
// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
// future. If not, the values below would default to using the project name when this becomes a
// 'flutter create' template.
// The application's name. By default this is also the title of the Flutter window.
PRODUCT_NAME = snapledger
// The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.snapledger.snapledger
// The copyright displayed in application information
PRODUCT_COPYRIGHT = Copyright © 2026 com.snapledger. All rights reserved.