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
+
+
+
-
-
-