diff --git a/.github/workflows/build-android-fcm.yml b/.github/workflows/build-android-fcm.yml
new file mode 100644
index 0000000..b603622
--- /dev/null
+++ b/.github/workflows/build-android-fcm.yml
@@ -0,0 +1,91 @@
+name: Build Android (FCM)
+
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - main
+ - master
+ paths:
+ - 'lib/**'
+ - 'android/**'
+ - 'pubspec.yaml'
+ - '.github/workflows/build-android-fcm.yml'
+ pull_request:
+ paths:
+ - 'lib/**'
+ - 'android/**'
+ - 'pubspec.yaml'
+ - '.github/workflows/build-android-fcm.yml'
+
+jobs:
+ build-android-fcm:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Setup Java
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '17'
+ - name: Setup Flutter
+ uses: subosito/flutter-action@v2
+ with:
+ flutter-version: '3.41.5'
+ channel: 'stable'
+
+ - name: Get dependencies
+ run: flutter pub get
+
+ - name: Configure Gradle
+ run: |
+ mkdir -p ~/.gradle
+ echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
+ echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
+
+ - name: Build Universal APK
+ run: flutter build apk --release --flavor oneme
+
+ - name: Build Split APKs
+ run: flutter build apk --release --split-per-abi --flavor oneme
+
+ - name: Upload Universal APK
+ uses: actions/upload-artifact@v4
+ with:
+ name: komet-android-fcm-universal
+ path: build/app/outputs/flutter-apk/app-oneme-release.apk
+ retention-days: 30
+
+ - name: Upload arm64-v8a APK
+ uses: actions/upload-artifact@v4
+ with:
+ name: komet-android-fcm-arm64-v8a
+ path: build/app/outputs/flutter-apk/app-oneme-arm64-v8a-release.apk
+ retention-days: 30
+
+ - name: Upload armeabi-v7a APK
+ uses: actions/upload-artifact@v4
+ with:
+ name: komet-android-fcm-armeabi-v7a
+ path: build/app/outputs/flutter-apk/app-oneme-armeabi-v7a-release.apk
+ retention-days: 30
+
+ - name: Upload x86_64 APK
+ uses: actions/upload-artifact@v4
+ with:
+ name: komet-android-fcm-x86_64
+ path: build/app/outputs/flutter-apk/app-oneme-x86_64-release.apk
+ retention-days: 30
+
+ - name: Build App Bundle
+ run: flutter build appbundle --release --flavor oneme
+
+ - name: Upload App Bundle artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: komet-android-fcm-aab
+ path: build/app/outputs/bundle/onemeRelease/app-oneme-release.aab
+ retention-days: 30
diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml
index 380cd38..4866fe6 100644
--- a/.github/workflows/build-android.yml
+++ b/.github/workflows/build-android.yml
@@ -45,47 +45,47 @@ jobs:
mkdir -p ~/.gradle
echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
-
+
- name: Build Universal APK
- run: flutter build apk --release
+ run: flutter build apk --release --flavor komet
- name: Build Split APKs
- run: flutter build apk --release --split-per-abi
+ run: flutter build apk --release --split-per-abi --flavor komet
- name: Upload Universal APK
uses: actions/upload-artifact@v4
with:
name: komet-android-universal
- path: build/app/outputs/flutter-apk/app-release.apk
+ path: build/app/outputs/flutter-apk/app-komet-release.apk
retention-days: 30
- name: Upload arm64-v8a APK
uses: actions/upload-artifact@v4
with:
name: komet-android-arm64-v8a
- path: build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
+ path: build/app/outputs/flutter-apk/app-komet-arm64-v8a-release.apk
retention-days: 30
- name: Upload armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
name: komet-android-armeabi-v7a
- path: build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk
+ path: build/app/outputs/flutter-apk/app-komet-armeabi-v7a-release.apk
retention-days: 30
- name: Upload x86_64 APK
uses: actions/upload-artifact@v4
with:
name: komet-android-x86_64
- path: build/app/outputs/flutter-apk/app-x86_64-release.apk
+ path: build/app/outputs/flutter-apk/app-komet-x86_64-release.apk
retention-days: 30
- name: Build App Bundle
- run: flutter build appbundle --release
+ run: flutter build appbundle --release --flavor komet
- name: Upload App Bundle artifact
uses: actions/upload-artifact@v4
with:
name: komet-android-aab
- path: build/app/outputs/bundle/release/app-release.aab
+ path: build/app/outputs/bundle/kometRelease/app-komet-release.aab
retention-days: 30
diff --git a/.github/workflows/flutter-dev.yml b/.github/workflows/flutter-dev.yml
index a1dc487..7e5d633 100644
--- a/.github/workflows/flutter-dev.yml
+++ b/.github/workflows/flutter-dev.yml
@@ -13,10 +13,17 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
+ - name: Setup Java
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '17'
+
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
- flutter-version: 'stable'
+ flutter-version: '3.41.5'
+ channel: 'stable'
- name: Install dependencies
run: flutter pub get
@@ -24,5 +31,11 @@ jobs:
- name: Flutter analyze
run: flutter analyze
+ - name: Configure Gradle
+ run: |
+ mkdir -p ~/.gradle
+ echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
+ echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
+
- name: Build Android APK
- run: flutter build apk --release
+ run: flutter build apk --release --flavor komet
diff --git a/.github/workflows/flutter-main.yml b/.github/workflows/flutter-main.yml
index 3255616..f43dd96 100644
--- a/.github/workflows/flutter-main.yml
+++ b/.github/workflows/flutter-main.yml
@@ -6,17 +6,23 @@ on:
- 'main'
jobs:
- analyze-and-build-all:
+ android:
runs-on: ubuntu-latest
-
steps:
- name: Checkout code
uses: actions/checkout@v3
+ - name: Setup Java
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '17'
+
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
- flutter-version: 'stable'
+ flutter-version: '3.41.5'
+ channel: 'stable'
- name: Install dependencies
run: flutter pub get
@@ -24,8 +30,34 @@ jobs:
- name: Flutter analyze
run: flutter analyze
+ - name: Configure Gradle
+ run: |
+ mkdir -p ~/.gradle
+ echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
+ echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
+
- name: Build Android APK
- run: flutter build apk --release
+ run: flutter build apk --release --flavor komet
+
+ web-linux:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Set up Flutter
+ uses: subosito/flutter-action@v2
+ with:
+ flutter-version: '3.41.5'
+ channel: 'stable'
+
+ - name: Install Linux desktop dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev
+
+ - name: Install dependencies
+ run: flutter pub get
- name: Build Web
run: flutter build web --release
@@ -33,13 +65,41 @@ jobs:
- name: Build Linux
run: flutter build linux --release
+ windows:
+ runs-on: windows-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Set up Flutter
+ uses: subosito/flutter-action@v2
+ with:
+ flutter-version: '3.41.5'
+ channel: 'stable'
+
+ - name: Install dependencies
+ run: flutter pub get
+
- name: Build Windows
run: flutter build windows --release
- - name: Build iOS (only macOS runners)
- if: runner.os == 'macOS'
- run: flutter build ios --release
+ apple:
+ runs-on: macos-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
- - name: Build macOS (only macOS runners)
- if: runner.os == 'macOS'
+ - name: Set up Flutter
+ uses: subosito/flutter-action@v2
+ with:
+ flutter-version: '3.41.5'
+ channel: 'stable'
+
+ - name: Install dependencies
+ run: flutter pub get
+
+ - name: Build iOS
+ run: flutter build ios --release --no-codesign
+
+ - name: Build macOS
run: flutter build macos --release
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 1e361bc..fa4342c 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -3,6 +3,7 @@ plugins {
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
+ id("com.google.gms.google-services")
}
android {
@@ -20,16 +21,27 @@ android {
}
defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "ru.komet.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
+ minSdk = maxOf(flutter.minSdkVersion, 23)
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
+ flavorDimensions += "distribution"
+
+ productFlavors {
+ create("komet") {
+ dimension = "distribution"
+ isDefault = true
+ applicationId = "ru.komet.app"
+ }
+ create("oneme") {
+ dimension = "distribution"
+ applicationId = "ru.oneme.app"
+ }
+ }
+
buildTypes {
release {
// TODO: Add your own signing config for the release build.
diff --git a/android/app/src/komet/google-services.json b/android/app/src/komet/google-services.json
new file mode 100644
index 0000000..9027e06
--- /dev/null
+++ b/android/app/src/komet/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "659634599081",
+ "project_id": "max-messenger-app",
+ "storage_bucket": "max-messenger-app.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:659634599081:android:00000000000000000000ab",
+ "android_client_info": {
+ "package_name": "ru.komet.app"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyABuDYeeDXIOrKTXLkUj30Ii143ofPe63Q"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index b2c538d..8dd5624 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -2,6 +2,7 @@
+
+