diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b69094f --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,12 @@ +{ + "version": "0.2.0", + "configurations": [ + + { + "name": "flutter_billing_app", + "request": "launch", + "type": "dart", + "program": "lib/main.dart" + } + ] +} diff --git a/analysis_output.txt b/analysis_output.txt new file mode 100644 index 0000000..061a4ca Binary files /dev/null and b/analysis_output.txt differ diff --git a/analyze_output.txt b/analyze_output.txt new file mode 100644 index 0000000..5161c90 Binary files /dev/null and b/analyze_output.txt differ diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 043eead..0c656b3 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -1,5 +1,8 @@ plugins { id("com.android.application") + // START: FlutterFire Configuration + id("com.google.gms.google-services") + // END: FlutterFire Configuration id("kotlin-android") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") @@ -7,7 +10,7 @@ plugins { android { namespace = "com.example.billing_app" - compileSdk = flutter.compileSdkVersion + compileSdk = 36 ndkVersion = flutter.ndkVersion compileOptions { @@ -20,21 +23,29 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.example.billing_app" - // You can update the following values to match your application needs. - // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion - targetSdk = flutter.targetSdkVersion + targetSdk = 36 versionCode = flutter.versionCode versionName = flutter.versionName + } buildTypes { release { - // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.getByName("debug") + + // Enable R8 code shrinking + obfuscation + isMinifyEnabled = true + + // Remove unused resources (layouts, drawables, strings, etc.) + isShrinkResources = true + + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) } } } diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..b570670 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "173409243741", + "project_id": "mobile-billing-app-14875", + "storage_bucket": "mobile-billing-app-14875.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:173409243741:android:cd7f3b6e8d5d98ac70f3b4", + "android_client_info": { + "package_name": "com.example.billing_app" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDo5OwnOmMJYOxiem3mOEDutfFmci3OTE0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..ec45dda --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,46 @@ +# ─── Flutter Engine ───────────────────────────────────────────────────────── +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } +-keep class io.flutter.plugin.** { *; } +-dontwarn io.flutter.** + +# ─── Firebase / Google Play Services ──────────────────────────────────────── +-keep class com.google.firebase.** { *; } +-keep class com.google.android.gms.** { *; } +-dontwarn com.google.firebase.** +-dontwarn com.google.android.gms.** + +# ─── Hive ──────────────────────────────────────────────────────────────────── +-keep class com.hive.** { *; } +-keep class io.hive.** { *; } +# Keep all Hive-generated TypeAdapters (annotated with @HiveType) +-keep @com.hive.annotation.HiveType class * { *; } +-keepclassmembers class * { + @com.hive.annotation.HiveField *; +} + +# ─── General Dart/Flutter reflection ───────────────────────────────────────── +-keepattributes *Annotation* +-keepattributes EnclosingMethod +-keepattributes InnerClasses +-keepattributes Signature + +# ─── Kotlin ────────────────────────────────────────────────────────────────── +-keep class kotlin.** { *; } +-keep class kotlinx.** { *; } +-dontwarn kotlin.** + +# ─── Mobile Scanner (CameraX / MLKit) ──────────────────────────────────────── +-keep class com.google.mlkit.** { *; } +-keep class androidx.camera.** { *; } +-dontwarn com.google.mlkit.** + +# ─── Connectivity Plus ─────────────────────────────────────────────────────── +-dontwarn dev.fluttercommunity.plus.connectivity.** + +# ─── Remove verbose logging in release ─────────────────────────────────────── +-assumenosideeffects class android.util.Log { + public static *** d(...); + public static *** v(...); + public static *** i(...); +} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e571bc5..55ff290 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -8,9 +8,9 @@ + android:icon="@mipmap/launcher_icon"> - - - - - + + + + + + diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000..e7c47b1 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000..987ba9c Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000..fb7bb80 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000..8e21404 Binary files /dev/null and b/android/app/src/main/res/drawable/background.png differ diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml index 304732f..3cc4948 100644 --- a/android/app/src/main/res/drawable/launch_background.xml +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000..836475b Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png new file mode 100644 index 0000000..27fb2dc Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000..86350ca Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000..3b2d306 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000..4d36da4 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png 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 new file mode 100644 index 0000000..5fef228 --- /dev/null +++ b/android/app/src/main/res/values-night-v31/styles.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 06952be..dbc9ea9 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index cb1ef88..0d1fa8f 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges - + billing_app + + + - - - + + + + + + + + + \ No newline at end of file diff --git a/web/splash/img/dark-1x.png b/web/splash/img/dark-1x.png new file mode 100644 index 0000000..a33b104 Binary files /dev/null and b/web/splash/img/dark-1x.png differ diff --git a/web/splash/img/dark-2x.png b/web/splash/img/dark-2x.png new file mode 100644 index 0000000..e7c47b1 Binary files /dev/null and b/web/splash/img/dark-2x.png differ diff --git a/web/splash/img/dark-3x.png b/web/splash/img/dark-3x.png new file mode 100644 index 0000000..987ba9c Binary files /dev/null and b/web/splash/img/dark-3x.png differ diff --git a/web/splash/img/dark-4x.png b/web/splash/img/dark-4x.png new file mode 100644 index 0000000..fb7bb80 Binary files /dev/null and b/web/splash/img/dark-4x.png differ diff --git a/web/splash/img/light-1x.png b/web/splash/img/light-1x.png new file mode 100644 index 0000000..a33b104 Binary files /dev/null and b/web/splash/img/light-1x.png differ diff --git a/web/splash/img/light-2x.png b/web/splash/img/light-2x.png new file mode 100644 index 0000000..e7c47b1 Binary files /dev/null and b/web/splash/img/light-2x.png differ diff --git a/web/splash/img/light-3x.png b/web/splash/img/light-3x.png new file mode 100644 index 0000000..987ba9c Binary files /dev/null and b/web/splash/img/light-3x.png differ diff --git a/web/splash/img/light-4x.png b/web/splash/img/light-4x.png new file mode 100644 index 0000000..fb7bb80 Binary files /dev/null and b/web/splash/img/light-4x.png differ