From 2607e34063f931e485a167223e7d36c545c5aab2 Mon Sep 17 00:00:00 2001 From: aki-chang-dev <7299525+aki-chang-dev@users.noreply.github.com> Date: Wed, 5 Feb 2025 06:08:27 +0000 Subject: [PATCH] feat(android): sign-in with google & magic-link & email (#9868) - [chore(android): migrate to version catalog](https://github.com/toeverything/AFFiNE/pull/9868/commits/16c0fb66e758abe9371f93d369e33db49f27807a) - [feat(android): integrate apollo](https://github.com/toeverything/AFFiNE/pull/9868/commits/4dcf93b4f94b8a0c8cf6ba9ede21b8b7e0499004) - [fix(android): fix android email sign-in](https://github.com/toeverything/AFFiNE/pull/9868/commits/752cf34f33db47721d013d2fab868029781b1132) - [chore(android): add stable/canary environment](https://github.com/toeverything/AFFiNE/pull/9868/commits/72a96bfa5f741c690759f1fd09efa3cd812ab232) - [feat(android): set cookies for apollo client](https://github.com/toeverything/AFFiNE/pull/9868/commits/7664cc4f1939b9dd42a2a616dc676ca9500c27d4) - [feat(android): google & magic-link sign-in](https://github.com/toeverything/AFFiNE/pull/9868/commits/c54ce3b43b4d2f7d927a7784796ee3d20cd55dc9) - [eat(android): change logo](https://github.com/toeverything/AFFiNE/pull/9868/commits/8c5062adbc44545851c998572f01a16caf6ce83b) - [chore(android): fix pipleline](https://github.com/toeverything/AFFiNE/pull/9868/commits/4a68299be4b04935b101e32b0da74cc07f43b785) - [fix(android): rebase issues](https://github.com/toeverything/AFFiNE/pull/9868/commits/c6858c5ecfa9288b2bad4b4bd6c800f5d8aef47e) - [docs(android): update README for compat with java 21](https://github.com/toeverything/AFFiNE/pull/9868/commits/6eac3ba0dca3af8e1bace20a260390b57b7d590b) - [fix(android): android pipeline](https://github.com/toeverything/AFFiNE/pull/9868/commits/1103c87880a5a01a8fd55e01c80a43934b8b61ef) --- .github/workflows/release-mobile.yml | 4 +- .../apps/android/App/app/build.gradle | 81 +- .../android/App/app/capacitor.build.gradle | 7 +- .../App/app/src/main/AndroidManifest.xml | 12 + .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 28591 bytes .../main/java/app/affine/pro/MainActivity.kt | 13 +- .../app/affine/pro/service/AffineClient.kt | 30 + .../service/interceptor/CookieInterceptor.kt | 18 + .../main/res/drawable-land-hdpi/splash.png | Bin 7705 -> 0 bytes .../main/res/drawable-land-mdpi/splash.png | Bin 4040 -> 0 bytes .../main/res/drawable-land-xhdpi/splash.png | Bin 9251 -> 0 bytes .../main/res/drawable-land-xxhdpi/splash.png | Bin 13984 -> 0 bytes .../main/res/drawable-land-xxxhdpi/splash.png | Bin 17683 -> 0 bytes .../main/res/drawable-port-hdpi/splash.png | Bin 7934 -> 0 bytes .../main/res/drawable-port-mdpi/splash.png | Bin 4096 -> 0 bytes .../main/res/drawable-port-xhdpi/splash.png | Bin 9875 -> 0 bytes .../main/res/drawable-port-xxhdpi/splash.png | Bin 13346 -> 0 bytes .../main/res/drawable-port-xxxhdpi/splash.png | Bin 17489 -> 0 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 - .../res/drawable/ic_launcher_background.xml | 171 +- .../res/drawable/ic_launcher_foreground.xml | 15 + .../App/app/src/main/res/drawable/splash.png | Bin 4040 -> 0 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 4 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 4 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2786 -> 0 bytes .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1172 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 3450 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4341 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2524 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1869 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 754 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 2110 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2725 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1508 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3981 -> 0 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1672 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 5036 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6593 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3700 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6644 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2672 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 9793 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10455 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5980 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9441 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 4166 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 15529 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 15916 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 8974 bytes .../res/values/ic_launcher_background.xml | 4 - .../App/app/src/main/res/values/styles.xml | 2 +- .../frontend/apps/android/App/build.gradle | 43 +- .../android/App/capacitor.settings.gradle | 6 + .../android/App/gradle/libs.versions.toml | 41 + .../apps/android/App/service/.gitignore | 1 + .../apps/android/App/service/build.gradle | 18 + .../affine/CreateCopilotSession.graphql | 3 + .../src/main/graphql/affine/schema.graphqls | 2027 +++++++++++++++++ .../frontend/apps/android/App/settings.gradle | 17 +- .../apps/android/App/variables.gradle | 13 +- packages/frontend/apps/android/README.md | 11 + .../frontend/apps/android/capacitor.config.ts | 8 + packages/frontend/apps/android/package.json | 2 + packages/frontend/apps/android/src/app.tsx | 55 + yarn.lock | 11 + 65 files changed, 2377 insertions(+), 278 deletions(-) create mode 100644 packages/frontend/apps/android/App/app/src/main/ic_launcher-playstore.png create mode 100644 packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/AffineClient.kt create mode 100644 packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/interceptor/CookieInterceptor.kt delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-land-hdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-land-mdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-land-xhdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-land-xxhdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-land-xxxhdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-port-hdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-port-mdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-port-xhdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-port-xxhdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-port-xxxhdpi/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_foreground.xml delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/drawable/splash.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp delete mode 100644 packages/frontend/apps/android/App/app/src/main/res/values/ic_launcher_background.xml create mode 100644 packages/frontend/apps/android/App/gradle/libs.versions.toml create mode 100644 packages/frontend/apps/android/App/service/.gitignore create mode 100644 packages/frontend/apps/android/App/service/build.gradle create mode 100644 packages/frontend/apps/android/App/service/src/main/graphql/affine/CreateCopilotSession.graphql create mode 100644 packages/frontend/apps/android/App/service/src/main/graphql/affine/schema.graphqls diff --git a/.github/workflows/release-mobile.yml b/.github/workflows/release-mobile.yml index 917234c6b146f..1908ec94d4289 100644 --- a/.github/workflows/release-mobile.yml +++ b/.github/workflows/release-mobile.yml @@ -231,7 +231,7 @@ jobs: - name: Build run: | echo -n "${{ env.AFFINE_ANDROID_SIGN_KEYSTORE }}" | base64 --decode > packages/frontend/apps/android/affine.keystore - yarn workspace @affine/android cap build android + yarn workspace @affine/android cap build android --flavor ${{ env.BUILD_TYPE }} --androidreleasetype AAB env: AFFINE_ANDROID_KEYSTORE_PASSWORD: ${{ secrets.AFFINE_ANDROID_KEYSTORE_PASSWORD }} AFFINE_ANDROID_KEYSTORE_ALIAS_PASSWORD: ${{ secrets.AFFINE_ANDROID_KEYSTORE_ALIAS_PASSWORD }} @@ -243,7 +243,7 @@ jobs: with: serviceAccountJson: ${{ steps.auth.outputs.credentials_file_path }} packageName: app.affine.pro - releaseFiles: packages/frontend/apps/android/App/app/build/outputs/bundle/release/app-release-signed.aab + releaseFiles: packages/frontend/apps/android/App/app/build/outputs/bundle/${{ env.BUILD_TYPE }}Release/app-${{ env.BUILD_TYPE }}-release-signed.aab track: internal status: draft existingEditId: ${{ steps.bump.outputs.EDIT_ID }} diff --git a/packages/frontend/apps/android/App/app/build.gradle b/packages/frontend/apps/android/App/app/build.gradle index 8b57cb84b3ede..5f3a4a6a7dd8a 100644 --- a/packages/frontend/apps/android/App/app/build.gradle +++ b/packages/frontend/apps/android/App/app/build.gradle @@ -1,12 +1,16 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinVersion -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' +plugins { + alias libs.plugins.android.application + alias libs.plugins.kotlin.android + alias libs.plugins.rust.android +} + apply from: 'capacitor.build.gradle' android { - namespace "app.affine.pro" + namespace "app.affine.pro" compileSdk rootProject.ext.compileSdkVersion ndkVersion = new File(sdkDirectory, "ndk").listFiles().sort().last().name defaultConfig { @@ -17,20 +21,35 @@ android { versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { - // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. - // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' } ndk { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' } } + buildFeatures { + buildConfig true + } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + flavorDimensions = ['chanel'] + productFlavors { + stable { + buildConfigField 'String', 'BASE_URL', '"https://app.affine.pro"' + resValue 'string', 'host', '"app.affine.pro"' + } + canary { + buildConfigField 'String', 'BASE_URL', '"https://affine.fail"' + resValue 'string', 'host', '"affine.fail"' + } + } + compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 @@ -42,20 +61,22 @@ repositories { dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' } } - dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" - implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" - implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" implementation project(':capacitor-android') - testImplementation "junit:junit:$junitVersion" - androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" - androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" implementation project(':capacitor-cordova-android-plugins') - implementation "net.java.dev.jna:jna:5.16.0@aar" - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1" - implementation 'androidx.core:core-ktx:1.15.0' + implementation project(':service') + implementation libs.kotlinx.coroutines.core + implementation libs.androidx.appcompat + implementation libs.androidx.browser + implementation libs.androidx.coordinatorlayout + implementation libs.androidx.core.splashscreen + implementation libs.androidx.core.ktx + implementation libs.apollo.runtime + implementation libs.jna + testImplementation libs.junit + androidTestImplementation libs.androidx.junit + androidTestImplementation libs.androidx.espresso.core } try { @@ -63,28 +84,26 @@ try { if (servicesJSON.text) { apply plugin: 'com.google.gms.google-services' } -} catch(Exception ignored) { +} catch (Exception ignored) { logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") } -apply plugin: 'org.mozilla.rust-android-gradle.rust-android' - cargo { - module = "../../../../mobile-native" - libname = "affine_mobile_native" - targets = ["arm64"] - pythonCommand = "python3.12" - targetDirectory = "../../../../../../target" - apiLevel = 28 - targetIncludes = ["libaffine_mobile_native.so"] - profile = "release" + module = "../../../../mobile-native" + libname = "affine_mobile_native" + targets = ["arm64"] + pythonCommand = "python3.12" + targetDirectory = "../../../../../../target" + apiLevel = 28 + targetIncludes = ["libaffine_mobile_native.so"] + profile = "release" } kotlin { - compilerOptions { - apiVersion = KotlinVersion.KOTLIN_2_0 - jvmTarget = JvmTarget.JVM_21 - } + compilerOptions { + apiVersion = KotlinVersion.KOTLIN_2_1 + jvmTarget = JvmTarget.JVM_21 + } } afterEvaluate { @@ -103,7 +122,7 @@ android.applicationVariants.configureEach { variant -> def t = tasks.register("generate${variant.name.capitalize()}UniFFIBindings", Exec) { workingDir "${project.projectDir}" // Runs the bindings generation, note that you must have uniffi-bindgen installed and in your PATH environment variable - commandLine 'cargo', 'run', '--bin', 'uniffi-bindgen', 'generate', '--library', "${buildDir}/rustJniLibs/android/arm64-v8a/libaffine_mobile_native.so", '--language', 'kotlin', '--out-dir', "${project.projectDir}/src/main/java" + commandLine "${System.getenv("CARGO_HOME")}/bin/cargo", 'run', '--bin', 'uniffi-bindgen', 'generate', '--library', "${buildDir}/rustJniLibs/android/arm64-v8a/libaffine_mobile_native.so", '--language', 'kotlin', '--out-dir', "${project.projectDir}/src/main/java" dependsOn("cargoBuild") } variant.javaCompileProvider.get().dependsOn(t) diff --git a/packages/frontend/apps/android/App/app/capacitor.build.gradle b/packages/frontend/apps/android/App/app/capacitor.build.gradle index fdb4970c41fb6..aebef209b3729 100644 --- a/packages/frontend/apps/android/App/app/capacitor.build.gradle +++ b/packages/frontend/apps/android/App/app/capacitor.build.gradle @@ -2,14 +2,15 @@ android { compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 } } apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { - + implementation project(':capacitor-app') + implementation project(':capgo-inappbrowser') } diff --git a/packages/frontend/apps/android/App/app/src/main/AndroidManifest.xml b/packages/frontend/apps/android/App/app/src/main/AndroidManifest.xml index 4d7ca3804143f..d8249c6476aab 100644 --- a/packages/frontend/apps/android/App/app/src/main/AndroidManifest.xml +++ b/packages/frontend/apps/android/App/app/src/main/AndroidManifest.xml @@ -1,6 +1,12 @@ + + + + + + + + + + + + {oQuIQMw$MkI@@ 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

L*WjAQt~Ud+gH)PiMA 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 b|CN8xoKAtf>ZmDy+|59#>8e($ScUx`R)Tec literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt index a80bb581632c4..8d50a9f2f69a3 100644 --- a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt +++ b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt @@ -2,14 +2,23 @@ package app.affine.pro import android.os.Build import android.os.Bundle -import android.util.Log import androidx.annotation.RequiresApi import com.getcapacitor.BridgeActivity -import uniffi.affine_mobile_native.hashcashMint; +import com.getcapacitor.plugin.CapacitorCookies +import com.getcapacitor.plugin.CapacitorHttp +import ee.forgr.capacitor_inappbrowser.InAppBrowserPlugin + class MainActivity : BridgeActivity() { @RequiresApi(Build.VERSION_CODES.R) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + registerPlugins( + listOf( + CapacitorHttp::class.java, + CapacitorCookies::class.java, + InAppBrowserPlugin::class.java + ) + ) } } diff --git a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/AffineClient.kt b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/AffineClient.kt new file mode 100644 index 0000000000000..81b108be79111 --- /dev/null +++ b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/AffineClient.kt @@ -0,0 +1,30 @@ +package app.affine.pro.service + +import app.affine.pro.BuildConfig +import app.affine.pro.service.interceptor.CookieInterceptor +import com.apollographql.apollo.ApolloClient +import com.apollographql.apollo.api.ApolloResponse +import com.apollographql.apollo.api.Mutation +import com.apollographql.apollo.api.Query +import com.apollographql.apollo.api.Subscription + +object AffineClient { + + private val _client: ApolloClient by lazy { + ApolloClient.Builder().serverUrl(BuildConfig.BASE_URL) + .addHttpInterceptor(CookieInterceptor) + .build() + } + + suspend fun query(query: Query): ApolloResponse { + return _client.query(query).execute() + } + + suspend fun mutation(mutation: Mutation): ApolloResponse { + return _client.mutation(mutation).execute() + } + + suspend fun subscription(subscription: Subscription): ApolloResponse { + return _client.subscription(subscription).execute() + } +} \ No newline at end of file diff --git a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/interceptor/CookieInterceptor.kt b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/interceptor/CookieInterceptor.kt new file mode 100644 index 0000000000000..8f557a63e0d23 --- /dev/null +++ b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/service/interceptor/CookieInterceptor.kt @@ -0,0 +1,18 @@ +package app.affine.pro.service.interceptor + +import android.webkit.CookieManager +import app.affine.pro.BuildConfig +import com.apollographql.apollo.api.http.HttpRequest +import com.apollographql.apollo.network.http.HttpInterceptor +import com.apollographql.apollo.network.http.HttpInterceptorChain + +object CookieInterceptor : HttpInterceptor { + override suspend fun intercept( + request: HttpRequest, + chain: HttpInterceptorChain + ) = chain.proceed( + request.newBuilder().addHeader( + "Cookie", CookieManager.getInstance().getCookie(BuildConfig.BASE_URL) + ).build() + ) +} \ No newline at end of file diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-land-hdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-land-hdpi/splash.png deleted file mode 100644 index e31573b4fc93e60d171f4046c0220e1463075d9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7705 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 wKmFJ0_JHhk1&0B>;%YXATM diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-land-mdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-land-mdpi/splash.png deleted file mode 100644 index f7a64923ea1a0565d25fa139c176d6bf42184e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-land-xhdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-land-xhdpi/splash.png deleted file mode 100644 index 807725501bdd92e94e51e7b2b0006f69e0083a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9251 zcmeHMX;@R&){a`F6@fZ2$YhHaL=+Jr%uy6^0u)3B$1ZwbY4hL4)@C5Hq9nWtKai&>vt*`@mZjzr1xZ}*Z6 zvgY>gvv`p7;!Rzjr(o`O34vcjdYF{)$z!T*a&SycFz1b6e3rb*uPVY}wgGm=b~tQR z0Nz`60*}qnC&z)&r?-H|=k>tjKs>OVQy}2qc+ht7NazfF{q4hlko+SZe=hQ;)Bd5z zzqj;XMgGF#ekbx*{jn*s>6zaN|9iv!vhOy3{1^ZK`7EE_65ITjP5H}uH-G#)jDJuG z|EP&SkI8RN{%!OhBJ_6{|G=&P4b}L0{og?O&!M@ezrF)>>ndL*nYiLH97H8|Tw3jB zFMlW{H5{ok0*!s50Fs+bKsHfFl&Q541OEp;$5Q3ZSr6kbAZyjl!-I>v%UJmE4R>z$ zA?hIz0Ga_oVqK!^_C$xqMGaf++K7-Iw92R=GcZ`%_faH}<1)$@%nsFo4?N=?C-2rpCjJdVPqNUW@~ z_g6^xF!iK|(6-y5n^nV9ENtwtZPZ>&g*PVorB11{QoLO4971)DR^};j;vPDEy=h%8 zzhWtBNE9QmIfC6NyD1==u45_SQAIVJkxX9~lDm?)s8K&sI@GQwB`vPwg8>9#7-f=PxHYcTNWPNYWSk zFuJvYjOoka-V26p7IEuo%ao&m;hlIy5!?2KTTe|$;eeE{+q2ERUpYcrY@Rll0=Vnb0O|(;I&+pE-lJRTo1)k#EpJTQ${t7 zSX&Xn25)>?lA`eqvnAkwvhLo6MRE>-lHO)CpURpHh8ASd`F%yviicyFYuHM1bT={IV7Q)3x5nB-lIK#-LdxlL&z+mf2PxMD(UsH)5$>l!bqe1$|m zPevgJ+MV#em++j|hCSLR#c_G3dNYlPGYT_1u3h~ea+Vos=u*PWw-nYejK7*u2V-0( zwL=_JuqLDbF>N+~apFC)-Tt%Z8=`h2TaVBb*;A4fJ_i82YlW(XwB8RmX>73-a^|0b{ z=hClOdx#NKhrBQGakXqJW?|~`jB>b_FJ3qiE-GDa-U{@9_!?B>t+Uqbg3aWaO!pC zg*OZx*m+vdY^KIs2qz*}IbD6E3R0ZR8sO=BRcVlj)lPR1m{{Ub6%g7$?t)`nyK+T! zHlj@%ta{rlsO42E$8C=MBy{V?<-k>6KIR<=$wTy&3`u3YOu$8)afva7tH+FErsv=* z?~c<=Tcj|!gEmVhxZJ}kGH|QjOFlHHP8eTmGtUbXa_9-n31vgG?aI1yaR`Fa;ro~K z2CGAgu@u+2S@@G@m*5F`Vb)e|yI7Tyie;ClkCH%5HC)yd7CudLRjr+kOq5C*B2Vp`Ns`0P2 zxnNVQS=w)HRVR909HbL+tcRO0ug*zapMVC6;6g05-110VR>x%UzJ{n-Hh;Wa+DDXK zJ==s3ZW^J{RbNHQ6f71NPbHo)3g97%7R*LKyn~^0&8WG=b#kq+g|0bKSrh&X0Tym2 zn~78m((AsU54QZZc!t{o$5$#KQ3$zVF@@Zut}3*6dn0ie_JJbc>B zBll+H@@bg7gn3=EmzOnm>HVZ0XzL9iZWHST};m_&P@aYqiP6&d~{_5kuKF!#hr zU<14>hUnF9G-yx#`CKLlK2*6Nd3JQgMSm%(C#73QT*P0S;dd+bHfMY5O5-EPBFdGI zm^C{0V42yqt_DY&Bw_nEgja&8{*V<@y(>^MLd#J%>SzETkwOcdl@~kkvWiQZY^)Aq z{fA`~y$PqUvGmKT6NAujE%*`qdg`FzIa1RUrnnH3x?ys{TFw?kVK$3)F#zj%pkLz{GfNeJ%bhtoQx2)UbC^# z>owl!8xQn@_jPp+E@#L$`5s8(!rg9yLk9tcj;S4(ZkdyR-#{LrI}^VeUGd@W_aut< zJ_iO{=uH1~sL<|A<-(U!zVybYbe%hL#;nGo?P(s9AtEQ;c6JZ@g9yI~oI%HAu1bhOJx{W5DJn{DMY&<0W!r!kwC$KPtY3T4H?WI<+BW(+At|$L zwPiFyb|>8e(@6^PFGXi#sg95#xPmyKD3VYA^Uus%gYQiPwJ7}I_) z&fBh}AqQ1@U7z|-?#7(sb!Mzvg>PinlCk9mqk&iPg9DpM^&o5^;wG_HP`IFNr-wv6 zOCJmKtQ?Z7mXGA9tMJ0A4p|0f`pZm@hn_pTqSz@ceZ90pJavewOBxg2%#Mk$nxq`Gf?29dAFZw=i90v0-nG5BK%blDno5nRJ(s>d zEh2aI@%SmG0x5A4Jz<&9o(a1`&+2-QMB?uhX^q;eehR18r(`9L?sBaI6XGM%*L$Zj zG3RtDkZpccY-KW>s2LlT;;#cz&JdHE@Dt%HdbIA)GGk~?Ll3*ULWt#BT^m7OX9>~E z?`3JIS~vF~yVAQ})_9f#wm;!-N}NTJ?DbBCa4%rv$gG1`^LDy>lVFUTn@Jmk}U-8PN{wqZTBcfh8kWn5sXg$Hn||M zT?8ZmMsbh_>sgwAi|Nc}3^#O;<`+x!41P@9E>36O{^k2&a*-an)x&GKhCia zb)|9={g9IFva8SN^-Dj)N%RIwRWO!vDR9KyBYz9fAL?)DNfGo^U0O~LkR~YvU6`>$ z>baj#;i}8YmOw45n5_=M!z1?R%Ak24lq`c9XOt#xezf%*AbEtZrm9*|a;IDhmrlK) zMJ_U0J4!03l_RXpRo`KL>5*S6Oc**!>3L!J`7ytp$G}1QgAEMhk!L4G%WZs%ZDJIu zk&bR???>`21oUEBk3FiPzx#R2?m`>bB#aT&<@m7UV3={TD(fZtNqG4gw78#3!gkAh z-P-i|AOV7*D$17ZDTJz~KmBj;97ez0L!K6%L&Y3*teL%c0sFdF? zF4xw_p832UtE=YGIn${cw8CIi|HX=V0tL*1hAIUZOR_8PP9?C6q1T7ae$MrY=sNt- zFAmvGjB@$N#YTVq!M#v`6rpjNoj6}wC8SDZ=TZ}@3y@=$;`>ThJLqWYwS7KiI8r<* zU3y4LT3no}1qo;cs?kY7^4KD2$?$C9hW0l)Atq90yo+C+!%{{TLtV$pX7xY*Jv|tD zpprTYz`xO+cPL@FC*ob|_*?~y0b}G$>jz|2m#rQOm3-?3>3t~;n0Fvv;y9?dlat6s zNFD=UeJa1JX*u$RX@<*pjJJG?LSceN23sbR-@Is3Lxc)--u-c}2^2Cf114*fp*WaUUtkbZRQ z46{va@|Ji9pyf_YvIt~|{SJl}kP}HepmW-bY16S|nwSH}IA^j)OBcx~)d z^b3Mo^+th?`FdTdh#wc%Z|r7u?K4ux-~^3F7{8TfJ|iP_4;c8hfO?e`h&ORt{b zgvJ>TIw;}0u4fZ5nT<{4d6vYOJavDZ1SsH9>|%hjd1sx&5`11pcR*A*i$2jQfw!Kz zK9kywbX~a}9Re@DY%|-WUGlIBs!%#;ch^^VsA#P~SURj~RmCB54tEL1#+N(I>Z(Ad zhYh!Ek9S*eg(Rm_M;v`(8>`}q!k(NlRFRSg@9k+4qRbwa4BAil(zU;q!wo&u$7Z5U z<=BWlX&oIQ>#l+0S={wYG_S&CnavPBCr z3ji~OhTwN)-e*FKaaA)Co(5H0{71)3c8a<8AeL%7=k*nmY1*0V-<5Z`b@nl4Qbi^y z#r+!enrke7>;7tpraKZObsVF4a%D@|V^H+{t< za#CzZRX&6UW?V66S_?DWJbtXnjaF6LI5!&aKwc?*9}8QCF*KE`M942C&13WxBfa>Z4PA*eqPV6GMm9LQJP46**CXx$HT4 z@iNZ>(fK9nPQfub6Z&CB`IRCJ5UGkRy0!9=tBRF**jIoS z>QMBw6qtl0^nWDyr>+vMW;^l-yHLBP##4dD?H!_xkA<#%<6eFQoeh`noYfnTt_l#C z&Rclo`!C0?F~+Co`r17=Ib%`Mym|!( z*~@W8sFa3#@c6PajnXEx`i0zF40;@byxdvH@+jfWGD3C`Saa12FO(EE^(?Q(aAyc* zClu`r?u69m$e*U0VxA)%FrDgkU65F2@I)2DD0PqCCPSwsl(c~xTC7*1M4D|;^5F~;7FS|YQB=I-!TIF`X9ox0uAl} zp=>x$FpVi$-81%uIl4o_(jg-MY80(QsY=;i6b3X|XxYa6viS=KvV!gP9{!6MleqrM z;E9XBc6`+yFs_B(UA5AlAGCChO~ysn&fcp@8Lu*B8qR_NI>3(@J8v}76lP|_jr5@R zwi;swfhYi_AAYi}7Y!f_zRY{U$jzNlh%L3UjY}r9{HY&$ zmWrGhdmDoNY?8+tT7RWQsMTiM39O(w$asl`#XcHUZs<84WQr{*%8EAEiRCG3te;pV zP>zW7-)1QAz4V1h4N-?5H2q6_dsM#t7yc$DnEw5j_HXW0ey9s`9bSe6-d#IW`e;bA z>J$lo=mzW4#hj|#Yoh7xetZixn{>s(qzBAB`IEKPpm?|O z4e<7{3*+ph>plL)Atm?UwrwLd?5P|vL5DGWoDmiAt9iz8_ITE}hQ3~v&FJo`1|DJN zX^0c7VCZoXUj&IXlu_XlB;wtsK2eC*NJOeUOy@l0%%u!49&vf~UR^!&g}%O+k_l;N zoB0|lY6h^#@EZO;L;kem%4g%*BQnA zAn!6YUHpEWVLV#SSZ$LYZnNlf;9k7bE~-aCokCq+8I3M|JD_)0e6x1SKVrAq&>m{+ zEf?a7-1FxNygNk|J`;lW)J!u`S>%N_7-I-HnG4mA68Nv|PTDrERq2I-W?9Sy5sWca{uHO`+q{1}a;WO%lCWLM+I*Ae zy3L=*QksY_C03hxsts6b*7nglbY7xgI!dES{S8zK?)jE%LNF5QuWVAyw4M%+d|{k} zu5W7}gzrf#fC_g(MT5;~)R+8U{9fvQ425`0?T8RIDl|^Q5Po zF`<|TZZbjm1KmVihTpGXDN8i)ifL5>u)Latp{_A{g(ne!eepivVNO;efO#DAUBFy^ zI*a#?jF4xh=L9Try7jN854kT)r3n1bvZG-~$rebW?r2y70R2FFeRUv7!+M*)kv@#O zh|J6^cXN$qk+{8dL*eE|`}Y^005b)NjrliMpyHPBQRKJLUl0+u>;KC|>$d;@+dT29 zH0bZk-hYb3e?=Jo&$oo4qd@KfnDp1833P`)zW)DR?*EqYzm0%e`;W8yU17fmn7=FR rf2ZVsMTKqF%74gb8_I^%agb$tWlX#2_ijMygDzOwoW)q&`u2YSCS7pS diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-land-xxhdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-land-xxhdpi/splash.png deleted file mode 100644 index 14c6c8fe39fcd51a0414866ad28cbe8ff3acb060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13984 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®q@N z14_H8ofW)l{|J8q+a)eH)I0r)>WXdzV%7J>PA~6_J)KLT90iYa^K=Wz7D!OybzqSru=f4?|KFl;Y)gP_H6V4x`~kZ6fE(xM1&;?72-TZNk+0 zr+Crr5yl%Iy@vfmt3eYFl!jIvPGFz^8Ek+2`48O1_pCX3xNWh-zBa{rIcc%+=|XVj zANYTg&s}TKb#OztQrCW(Xk?V^i{`q~%HtcveTxq(_HKeC9GzrtguMT4Nvs@KakPTA z9>*8bBZmLz`lK5=l)=b|=dT3a5ag^a1^znZyx5QKfUb1b9yacArRp%3@QWo(hrsCU z-K!-=jDmv!zb7XT>)r|-Z0Ry}lk2;dk-ECqMwr_nKN#x*X6~B5hVIN>6$1HwBz3Of z=Pk){AL5*=d90f17_qZEJLm;Q%WMdX=*N&!ki@E&cy7?>{1ssAH(tACtp*r@d^til z)x(1#6(kPD+joSF&J3sxJU@{-sWCS+pZq{Gsx=?z4wP;>?)1yHv0?X?VP{}cX4~aH zxeBPKw_rgW8rvewS1W2#^y+c>-183iMbJCqc38RN_o~__9-n|jcd&oA`m7*&Fqqpc z;Tev*0LS-ZK47Sq1unfvP1S43uA12P?PJmI8BeTYPr~R*tYUm^0;U%Hmu?bSZHEK6 zPjsW=E67Kq-&trmf;)UkmRABH2U)V)-eRT$j(%G12lLMsThSsU10iP#{)ZnvjzN$d z*K%P3`}oqyvpWP~venr>3viH8^`)Ma*=B31hw*Q+tqE>i2y7w!(o^lI^Yss^=tHW( z;cnCT(%B1gLz+TRGW9roFjI1EQTu-u`(f#RmZ8;FSN(bsC1J;+(i_R6mrW=yYx$cy z#%QKVrEx~kVMg~yo?^N28Wnk6x%L;J8i|*|ANEiNjq(Vhzuzl3ikpA*G!Z}kLAzAI z9qnySo%D|AuJj12%h;Otqjs(>LPj?rNdeU8so>P(C>XMzlho94ZD#w=cCOOU;=3&^ zsqAG!i{~lY271D|m>ztPV`)X@FO_;`wPjppYNQpM+ncvtz1lZjN>!Q^*I}T%uP78Z7tbV2$q3W_)14=kLFyJ z1GqL6T>ClgeZorL!}xP4f%OB_EsmJ`uw7dGWNV9OLlhb|UMpVhc{4@Bhh`tO!ZqzD zhusd<=K^ah!L@gQ?6dOpI-ge^e>S5W9eII57Zu16eU?GRbgKTeVk9yS{iK|O(zLR> zheb?;jwGCHS80NCn=jKxgJ>}qu4l%5NPihjzazGv#J?Jcyl;<#IW&x4mm>nrW8>}C z3U@aeD~)*F(0o^2{GnKVm$Jr#aZE ztl~TOkM^SdzJapQ((!-i8b!RkVQBKkL`2ZCBuy!qI1L{3Er526plVols~68U-^9Px zR(3{j;Z9RHX^muc0dUywJ|`yyZFf=k&-Gb#m4u73Lm5Ks%BfHj%2|gjn#i> zLC5pO$2Em9H;qoKQmMtl<@wgtPF1%2HariD5O~u>8=^*J&au~JH%Ih@&2Uging3U_ z0bzfKucW$ZHSx}!#buB?+-J)%RQbbXM-!BJTS&#dU_@lxU6>te2O+9 z@F{F{Nb!;{Cd`Gx+$G?11aB~S#wIH%D=*=7f7H@D@%B1)&bF$@t3JDq4l*%(wJTlh zo`?uMq{YilKUewPNaC)GuOr<8j9&ofqRU__BRUX^x8Cj3a;a$rXzgXqW>LR#CUn%~m)t zYC&ol(gAkbc^fd`xWU&bk5vT6KbFmsR=O78Bn%t7 znbw&=c+|T&#r+bls5rU6D#HMvqA<|;)BV%jOMonkm^p$7Vcel-Wwn$=uAJv&(8W>% z9))Fxpl*(%E#wFm_m!U~2HqgZs^2vaGeY(UfYKrSHV}w^D0N6!se5Ewy)Yy-!(2

aKj2hWG7>znxs|SE zN4rHtiSPqLskWp(?(_YYwgq+1@8v+~8As|(bC>$D(atG3ZE8-ZM3SVcg|vHQz$I=!(A`k`5= zOqR>&%G)$)k*QLz7MTB9wleWpv&N9Sta64wy}3Ytd?x!Ja8z>(z~(3UNFu^eFmn#6 zw!!gUxOuZi$PQIs*ixfZR3iLyADJ z5&s%tPfk>V!x|A-;oq%1!yk9H$UBP0ToA*EDtz(^!_AnF1bBQ7joj|? z5b)gSI8c8O$PYFE!vXJ<4gebg*9G9P2wcB{#kv0FItc5T@PDNo)}Rh4Us}L{e}xzW zhwt`)j`M)mP=G6H0;^&q=I0{jU%bIRkF#uLF;{vVC&H|_uc diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-land-xxxhdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-land-xxxhdpi/splash.png deleted file mode 100644 index 244ca2506dbe0fd8f6a05520ac7d1a629ea81438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17683 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 diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-port-xxhdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-port-xxhdpi/splash.png deleted file mode 100644 index bfabe6871a17a5e95b78fb30d49b7d2b4d2fe4c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13346 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

VwO4Hu8X}%XHUAz_J@50rzbkIsat>4oWtQt< zIO?tf?{oTz>?^ zcs#99X^>a=*D4${xG>cbA~mO3ZB$EhO>H1&*Qy(>+hed@=A`jR^=cJ!Z`3E3@Q919 z2|Hx$qrVsGlLkcgkxI#|*OEWCg`R(Dc|W-FsVh3ffkA6Wv&KS*mI`Jy*shMmL7i+p zTFI~6ZFWUah0_YM!qjNfUerrcYR5kNd~_l?c|YSYK1lXrX5Jvyw-?I=YZ@JeEE%@9 zjRTcK5e%p8vf?4Sh{hzPvSvD(2@OVsjP%1al3iOnJ&B_;o}k*g_q;O$pCZhIqr&H| zY#=4Rd9@be`U)0}1?QdC*8SRC^1=|6G+G5*sZD$CQBd)0LT4s=)~2U7>V#!lV~)IP z(A=7y3q%qKn8bQyn==u2VP>MVj74-!pq6>dfw`-qSu zWt_c|DI&(Tu?wK=$0|DMG5AVR%fnRhsvGt>gVq>qQa-a%jIS1C(_O;l7xOdTCCy}G zdpgQnJk@syL$7a$8c)vb)|K+W-^e*><2yLWb@AY2#TUsMB(~%vT!S2o)HZqn)MBf z)}?AORn^g2%th^rZhz+$aKGTi!3gbXBhzmj%2d+Rk-s$D9?SlyV17a;D!N`yL_J>0 z))rDiB6LyF=wahV7f`<^zHiirz#5k(xz3JFDY=&Uk(aE}#H?1HkkvW#9$wiT-o{Yt zHUV6OZzYk*Do;k^-may;=hZA^=cR?>o|n#u**Hf8z=8hdNlLAD{wj_40-)Fs24)PV zvxo#<4(|Fjyy!~saI035lJ#JIOY|Q!IWLf~cK~S9MFbMBTwPVX-jg~rRILU)2m>uw z@9A+)Ui2fckc;0eUpp15 z82@-Mfp#!sUH^ef6tiN@>@in!eX92e0Xd!)+RThBIYld6W0}p9lbUWv5m;Zi%?0wt zvTA1twcT+E6@F9mi7KmaJHV1H9*yk3_~l$p#Hz=<*@m6j@bO&RTXq8sLbmIPY40^- zLZ?zlKu>7ZUJxUa<%J5xJ4TM(lR_mKX~)%_*bAD=*eWDQ z*YOO3v-{8j_Wg%>p0qDME8dN{n~0f_W26%vD&}^JNYU}ha6B))EXB`_J5EUFl=^9w zXS>>$`kCB#;;)*jT`0TqK*&TE`V!VC_Y#bww3?$HiRno=c!N|((tv9Qr>P#Mm|6^n z(P7%Zh4Vg;n4zUfbX%SjVWC62B{W`|*S2lGTFf`Ua)*Ww+WPast=FQY*$&$gS`^AP&tW@ge3GVsSaZvqVk7pPkhna!(6vsXlIzmtuPGAi5^za!%%`rg9Iop%cjweBc{ z7H6WieGAC$BIP0+!GX?)pnH~%NjF71Wr?Y?Eu~t!deImju;fD{V+{`}8%!CFbjks% zOnO@|Nuk_AiptP}!8dYVG|4}Qz69R3Rrt@LCD#a56{6i#==cjc&m&Y%K~yzjv@~=A+lR=i4=}^>X-7 zZ%5RZ(@Cy-7>!})9abu8c;huoVe3bL@fMeZul7P27`sq{zAHmuLZ4vrO}7XU#SLuI zPu&mqN;3)85rn&U5#Jz3cz1yuaH{!3nwUSj|br7tX(-WErI zH_*1IBI|HYZ-OqrGVj&PWF6O+qsQ5T^L5K#+=c_DF@OfPy$OhtS zE(9E}A<7){-2x7LgEy{&9oEl!k`JfI4XDU|98-8pT$) zx~;Oy!G+AhazhR#k!~r!>rm-@+YDa@w9aB3=z(`ryPdyy@s7SPpb*Agi1DqIfDWpt zO1s*_k@i=(TbXXAi&FoBXuYWmR-i|-ulY~bbHn4!DX!4?)hrACs~9<985~ogu1Khz zphk*H$bj)l{p^9~8mc3?E6Z=SP?xS$&84dY8@c?z=B#J+$tmm9Zu|*1RVEzrxR638 zxM`2ri3^rICyG;TggrGwb)5HP*7JLajV7BYLyZ#DwU|?^pk|#pEoNyh>Vt_Ia2bBq zqwbxjKHSz4Sw^oL*`V8i7(8)#P`=&Tm*Yz{PIhNINO;XUaeA0UlDa|SZk)%UwlW^U zn0W*fIL;)noS}=zU#l^qLMiV$Wqkmyg*y7Vf~#+3_{aiO%!eWQ1l3-wG#Ab4Quptt zRyRe&x3Py_D_;+VN5`6k*E-t`^TY*x%jgI@R(;qSTSa5e_odFLA~keDhV{RW5=p`MF`GuPop&b^MlArKeA=|b_?XN634nxovcGmBpJZ2bk6PYcoQhSGvN zScz+-z32@xSX~sd>|}kNSL_MzE|~UJgAL7d-$uS+)}K0Q;jLp(9Ci32cUx(U!7ZGw z>e;WV9!1zZj65?4(LO#tO}P^o;8Q}J?SZeDOX%T|YEXmJPY4ymP89tR!75Qr zz-*`VUja)?MAWGWMqO44`(QR~#z$t*B5t~zDeLWd$D)b?*)n&Fn}Hgi!jt^u+O`GN z9|afa=dBg4yFaQxPEAHs*;95)v*U42a?(O;A0s0FxHOsDypRC7?^pBjkULCr^Qwh+DuZ|wU!jOpY$GJ$OO$a5A)bUlIx0a`Cec%iHu@s zymUiv!Bd--1_U=>Lt0GG0}LcGMuKg$5rlX2_N230xJDyXw_`TNDS{IpH;htFsZm*g~T=o?zN1$j~IJ zcM8cIb`I$WL>idBdc2P3Q-xMsdM)Zx1w59h4~HOtIWgZw(EH6P7Eno#2#P6E-UR;S zhM{;JeOI8;+#yN(v!uyzZ&n}(+4sJ5qGVpE(&{mBFT*DdK-LZo>AEOYJX zFX9ef)gYA*An2Z5Jypnjlg0E`beI_mOG1hgY0!_=aCRhY!VV@(*QMT}So#IUy&~V1 z8SIo3k;`t(EL#@c|A0w^9`DJDUI%_NRY@A=Z1p7Go5flJXBLawU8b@t4h2H_>ca|A zT$gVXk5D(3=`~|ieLErgM2+?=lcbw8#mo86gLcCG{I4T*|8??h^9LbVZrbYGam>wN z*bD|?p|cqb|8Kx@aijc3i|B+l;NDu{Qf&5d;rH)E*8PWTpXikFKV0WT!2J&w;CCTv z{nPbN!bQ*iNx10QKM5B-`$yrT2{$MB+hm(2`d3u_ZIb`~+%(aqiT*caY+}*B^5Xv% eO>gcz4Y;lHQ)5=gT!Uz5xom8Dq3D;JcmD@1>d%<~ diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-port-xxxhdpi/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable-port-xxxhdpi/splash.png deleted file mode 100644 index 6929071268eb03ee0f088142b6523566b78550e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17489 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 KR&><$`~L^lv%S~= diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/packages/frontend/apps/android/App/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21dbd8699..0000000000000 --- a/packages/frontend/apps/android/App/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_background.xml b/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_background.xml index d5fccc538c179..90460888e205f 100644 --- a/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_background.xml +++ b/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_background.xml @@ -1,170 +1,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:viewportWidth="108" + android:viewportHeight="108"> + diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_foreground.xml b/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000000000..9661c4f52d748 --- /dev/null +++ b/packages/frontend/apps/android/App/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/packages/frontend/apps/android/App/app/src/main/res/drawable/splash.png b/packages/frontend/apps/android/App/app/src/main/res/drawable/splash.png deleted file mode 100644 index f7a64923ea1a0565d25fa139c176d6bf42184e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 036d09bc5fd52..bbd3e021239ce 100644 --- a/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 036d09bc5fd52..bbd3e021239ce 100644 --- a/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/packages/frontend/apps/android/App/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c023e50595074292c7361183a64de08cf9686c9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2786 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 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..a9304aee6c1d2c283ca4d55f58322f2d872aa378 GIT binary patch literal 1172 zcmV;F1Z(?JNk&GD1ONb6MM6+kP&iC~1ONapN5Byfb%ub1;Qw)15D{r(G{~Z@?Us|3vhE0^r!zo;LbclmS=Mr5)PSEFqg1 zTtK>kikZu4nHi+NlXCnIm7nQXgwtx8$Wql1p-z^#9CY1L!)x zJQKkGccCIw7CjI~r70?r(vYrGDL!$stHK~I7h0Td`}-7e zxzw|Nh&f;B**pF`!n>LC-v1QthY-T={{*5-Q!WW562-ShX})pY!CX;u})Q<|w`-rLp@fw$N1LV@yeE zVi&_PwdSNh<+yvNjWx>&`&=_(E@?HVMew;Owb^b{kXPMfJ9FCly`Etm8Q)G;ERw$k zWO>uCbg;TwkT(B>-kv#6PBblkXQM^jJx!yS1#?G<7CUxzHJB=8v<{u5+&fc|<|%Kz zDC?Kwsso`O|2nu_u3!R?r=faxM)czByoY`Z>m9PkD<@f7Ns?sqZJHBWi*Fyj=XtK| z<*AZAF|_e!V@L9R#PB$2==+9>LK!KIgo+6~ZP2?NWw&LE*XhQ1r0&SjIqUWEwsD_! zrXV8>n>hNElR7b>r|Q#k-6WqOw#!$nV~eI-bF;07xqKEv?$7*8R;GN2$ej7@^Q{}h z7FR7)I52gQJ;OqhDj!aGR#vW>&dpnY#axE_G=xp}Ka+d>B{gZA42m$b|%>Vzq!4jyT3{%&(dPZ&Dfa6RNBtN zdYR=e1BNLV0b#|~r|~a2p`)Kgm9BP|ldmEj48T2;Y!e5O1!%B?A-0t51#|csjFjXS zT&3-%Tdxz?*Byf>|7YjDu+gPRNjh#we{5VXl_g81nfotBe)oAYK6hShbxN5#IXNA9 z>Ht`?C;!lJRE%*Ru4J&8oNi5X863cV=AhG0#eoaH|Kgo5_3RyDE>~I#J2=LiO+A!2 z{R6A3nB}&E)4!mBUVp%32Vzr(2n9#-^!X*AM|G}@w?y4Q|U6+=#t mNYKoM1hU8>pZlgnyyXUsAv4(yWRX@Z_f?Te_OwyR|5N}TIz~eP literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 2127973b2d318df7085734d236d0ec649a2b0292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3450 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 literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 72905b854cb4d39e8717090424302e370239a08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1869 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 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/packages/frontend/apps/android/App/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..2ccff768d91bd8a327b92784466e3f5b3cc3421d GIT binary patch literal 1508 zcmVYWHh+NaS=&~7Us{jt$&7dyxNW2;S>9uqyEn+TZQGEfh_Y?lwr$(C zZL95mvTfV8ZQDx3$au@V@e7SpRz&|5xNW1f$27c8kgF&$fZ9@?)>xEOpy;5YoS2At zSXOH=w{U!WyWF7-y@y>W4z2)7D!sfym_WvJ*16 zOa{x$(h8%o!pyC>%uvaAz!G6^)mCO{gjZvo&chIG1cI!WjO&yysR^GwSg*12D`DF4b zkzA{&)mTd#FV7H#Ol2~JHh?H;?ss!9Bc07qo0#93J_EJcWHy8NbmIkl2qa4cS+h!V48H>m28m6#qiL zF-!PPq;2yRb&M zNqSy=a!S;ETkS*r)@`;myeTVG0ary}!N%L4_U+wzeD>sQ3+xS6<2 z)mrQO_W=^oFMDc>wF!g=m&8Fj~%UH{k$V!&^sGnX%fiNuBm5OlaW{Z7Xku_{JX zkE=d5=~VADqg}odgPQT8t5FEQUsC~s=B6dXI?PlbJaRf>)1vPG{YT)sBDGBmWJP(+ zQTQ31m`wyRp%?kECgJm7jT&LH*4=yRbgyW?os*PpBgL_4EY62MwLv@xRG_|}$>+9? z?*}qDgD~7Azsx{UJ7tRf=(^{`5>frToO$y2B4|{oK|Wd~k+$NX6gxU+|)12A}GW#5EY;6AKe9lkFN3mdo&egAG`XLtva3fdI=w?ix{XB>mPZ(S@rZe|lxnSf`fupY~XU-m#D z?Fu-me;KWpM$rWP=kJa~)-@9~dbp53clz_LB#QqHVYE@OQZ+%j z{;X^E%+?;RZdS9gT`r_S-S%DYLkT3lFO4vH)_k86*sZ&vzOu{p_&ah(Lk#4$Yh1hO z;nUw=lVp%6kgR2{r}*>r(bJ#`x%v0o%U~JeAO~v3jNG{O($!~epTa-i{QKBa`W$}V zcIoQIt#zmkYN+(K9z0}7*)-S&MZbg&6)4K{>Z!ZS^&t)tAgS77 KeL@|$?}Pwi;qf^D literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4d1e077104cd61e6a4c3707e87363b523077245a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3981 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 nm0GElTB(&OnKI&V600000NkvXXu0mjff+~0a diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..841ff065d91f0a7ad6da17508571b0fb109ebd70 GIT binary patch literal 1672 zcmV;326y>VNk&G11^@t8MM6+kP&iC<1^@srU%(d-b%uhrZJ2~V?EN8#hza1<*r0Yy zo@|5iRIaq`iBNrafxDGlfkW-kGSpVm)6u)sRPNqc$NTWH$ni zZEMG#m%nY>w#$G06Nr=1{3~Vp)Txru*s5%scLJzg+jcyzt|v~$c5U0XZQHhO+qUg? z*S2ljZIVfzPnoUc{Q=V}gNXi50RLi5jJN~SFX25q(R*Vgm`Re4A{4ef<^Y5vL!QY* zLt3V5dZNeBY99s(4avmBjYLct+9N1PxG++CuX9Yo0C9e4QTqz=OZ>=R2L?&>`e5G< z;!S*>C5UhNFX6;ket*FEoB?9Isg$b<;#b0vNqBFwM+ZVo$MacO-b#o+SHy&ecQY9# zt_6COlP@lL{5o9+)dSnhJLS>KL<39@e68q|N3X*z@Sil+GuyXZh*mK3a33&WT&!~a zWdcc$!;1B(05rXO#j?<6rJ4p7mn;U(RH%n3;C)8&gcp)OP^PY6TS>Ax*hP`f1|sT- z!~Jl$&nQrIMX=y!2ToF{cAs{|#vAV7|h zodzbeU>Q4p6Dl?*Hjfux_b+ zriP_{+BZ{$!qKj7o1rx}gg*stTTU`xy3G3P7{my5~vZb4>Qd>JXLKCV6R4 z6x4N#d3lc9rwTrQBoS#J!?sRfd-*M=>TO_=9{QV{h$>&(8bRCBFPWZn>1bGQ{XuImA8ofls4M2-x?`?RM|=k4QLPlhgzr;O(gN(N94CevMVkx6v+RelR%{ ztohp&)(PaWN%C@l*I}|S&RGhEU#(2vqDGe4VU>>OXSDX$3XrO8F7PHNbbBPp1xRa^ zOp81AqPn~)sN-uK_$6sQKBr!orvTjvH5zM?_nq^N7pP{FWI_qFkz^?D%jzKYRZjf= zdUSEsR6Znq3pbc^<+0gTkz$I|-Hd?$6-n|&xOyW=6YgKjMV~4M53MYb(Hr#4US`+C!EkGq4d?auWmDbl=% zp$rP!W$b+&NTE_kW@@->-&>pf*H2R-`7`G_?1}nzhsTka`D$;AaH#$Ml%KNhu{3O} z3-2S&^*9-PTeT-yS|E=fNqQD(+x~xS;fus4&c&W^`rgvXehu+*uEgPHXQS=w7pIO( zkWS~)zr#FwF|tu|%A?oOwu#w{xO2(f{ZLhpSWsnuzoj64U6Dj*`<32cmh148gzV_0ObDdQd%vD7PV2+h1HfIl6qjeY<`2R;T{zDVbZU9w1g~hX64M3T1^S zMj^Y~KGHqeHDNjX>>dhn7=W5!FsO>08DYecM#lOO@gRjN0x|0$q0O-tx(eKR9?R3n SGbAX8aSsjwX?+@i@~@?1_F9tw literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index df0f15880bee46332dfc6622583215194f948b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5036 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 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..8a2b6c4a2b7dbc4177b9c2a2227f1afd9b02ae1a GIT binary patch literal 3700 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 literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6cdf97c1196d48e9833487ff6de7c4cfc4e1232d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6644 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 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..b84f0659a7952bb46e71a997719ceddb4cb8dfc1 GIT binary patch literal 2672 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 QEEcnEYwxv9p!I)U1l?k=EdT%j literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index d2ea9abed395c5fb38369a54896c51c8e8bdff72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15529 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 y3vD~Wi9;mL_v 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 diff --git a/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/packages/frontend/apps/android/App/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index a40d73e9c68ea638c28c7b13e4bcd1e179a3a102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15916 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 literal 0 HcmV?d00001 diff --git a/packages/frontend/apps/android/App/app/src/main/res/values/ic_launcher_background.xml b/packages/frontend/apps/android/App/app/src/main/res/values/ic_launcher_background.xml deleted file mode 100644 index c5d5899fdf0a1..0000000000000 --- a/packages/frontend/apps/android/App/app/src/main/res/values/ic_launcher_background.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #FFFFFF - \ No newline at end of file diff --git a/packages/frontend/apps/android/App/app/src/main/res/values/styles.xml b/packages/frontend/apps/android/App/app/src/main/res/values/styles.xml index be874e54a4a64..96e93520981d8 100644 --- a/packages/frontend/apps/android/App/app/src/main/res/values/styles.xml +++ b/packages/frontend/apps/android/App/app/src/main/res/values/styles.xml @@ -17,6 +17,6 @@ \ No newline at end of file diff --git a/packages/frontend/apps/android/App/build.gradle b/packages/frontend/apps/android/App/build.gradle index 524bc0a59e3e5..0a09f92da6f5d 100644 --- a/packages/frontend/apps/android/App/build.gradle +++ b/packages/frontend/apps/android/App/build.gradle @@ -1,33 +1,42 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - buildscript { - - repositories { - google() - mavenCentral() - maven { - url "https://plugins.gradle.org/m2/" + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } } + mavenCentral() + gradlePluginPortal() } dependencies { - classpath 'com.android.tools.build:gradle:8.8.0' - classpath 'com.google.gms:google-services:4.4.2' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + classpath libs.android.gradlePlugin + classpath libs.google.services } } plugins { - id("org.mozilla.rust-android-gradle.rust-android") version "0.9.6" - id("org.jetbrains.kotlin.jvm") version "2.1.0" + alias libs.plugins.android.application apply false + alias libs.plugins.android.library apply false + alias libs.plugins.kotlin.android apply false + alias libs.plugins.rust.android apply false + alias libs.plugins.apollo.android apply false + alias(libs.plugins.jetbrains.kotlin.jvm) apply false } apply from: "variables.gradle" allprojects { repositories { - google() + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } mavenCentral() + gradlePluginPortal() } -} +} \ No newline at end of file diff --git a/packages/frontend/apps/android/App/capacitor.settings.gradle b/packages/frontend/apps/android/App/capacitor.settings.gradle index 60dade133ec96..ac95c8a8797df 100644 --- a/packages/frontend/apps/android/App/capacitor.settings.gradle +++ b/packages/frontend/apps/android/App/capacitor.settings.gradle @@ -1,3 +1,9 @@ // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN include ':capacitor-android' project(':capacitor-android').projectDir = new File('../../../../../node_modules/@capacitor/android/capacitor') + +include ':capacitor-app' +project(':capacitor-app').projectDir = new File('../../../../../node_modules/@capacitor/app/android') + +include ':capgo-inappbrowser' +project(':capgo-inappbrowser').projectDir = new File('../../../../../node_modules/@capgo/inappbrowser/android') diff --git a/packages/frontend/apps/android/App/gradle/libs.versions.toml b/packages/frontend/apps/android/App/gradle/libs.versions.toml new file mode 100644 index 0000000000000..8d48c250c7a3a --- /dev/null +++ b/packages/frontend/apps/android/App/gradle/libs.versions.toml @@ -0,0 +1,41 @@ +[versions] +androidxEspressoCoreVersion = "3.6.1" +androidxJunitVersion = "1.2.1" +browser = "1.8.0" +coreKtx = "1.15.0" +coreSplashScreenVersion = "1.0.1" +jna = "5.16.0" +junitVersion = "4.13.2" +kotlin = "2.1.0" +kotlinxCoroutinesCore = "1.10.1" +rustAndroid = "0.9.6" +appcompat = "1.7.0" +coordinatorLayout = "1.2.0" +googleServices = "4.4.2" +androidGradlePlugin = "8.8.0" +apollo = "4.1.0" + +[libraries] +androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } +androidx-browser = { module = "androidx.browser:browser", version.ref = "browser" } +androidx-coordinatorlayout = { module = "androidx.coordinatorlayout:coordinatorlayout", version.ref = "coordinatorLayout" } +androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" } +androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "coreSplashScreenVersion" } +androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidxEspressoCoreVersion" } +androidx-junit = { module = "androidx.test.ext:junit", version.ref = "androidxJunitVersion" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" } + +google-services = { module = "com.google.gms:google-services", version.ref = "googleServices" } +android-gradlePlugin = { module = "com.android.tools.build:gradle", version.ref = "androidGradlePlugin" } +jna = { module = "net.java.dev.jna:jna", version.ref = "jna" } +junit = { module = "junit:junit", version.ref = "junitVersion" } +apollo-runtime = { module = "com.apollographql.apollo:apollo-runtime", version.ref = "apollo" } +apollo-api = { module = "com.apollographql.apollo:apollo-api", version.ref = "apollo" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } +android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +rust-android = { id = "org.mozilla.rust-android-gradle.rust-android", version.ref = "rustAndroid" } +apollo-android = { id = "com.apollographql.apollo", version.ref = "apollo" } +jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } diff --git a/packages/frontend/apps/android/App/service/.gitignore b/packages/frontend/apps/android/App/service/.gitignore new file mode 100644 index 0000000000000..42afabfd2abeb --- /dev/null +++ b/packages/frontend/apps/android/App/service/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/packages/frontend/apps/android/App/service/build.gradle b/packages/frontend/apps/android/App/service/build.gradle new file mode 100644 index 0000000000000..337d0ebaee987 --- /dev/null +++ b/packages/frontend/apps/android/App/service/build.gradle @@ -0,0 +1,18 @@ +plugins { + alias libs.plugins.jetbrains.kotlin.jvm + alias libs.plugins.apollo.android +} + +dependencies { + implementation libs.apollo.api +} + +apollo { + service("affine") { + packageName.set("com.affine.pro.graphql") + introspection { + endpointUrl.set("https://app.affine.pro/graphql") + schemaFile.set(file("src/main/graphql/affine/schema.graphqls")) + } + } +} \ No newline at end of file diff --git a/packages/frontend/apps/android/App/service/src/main/graphql/affine/CreateCopilotSession.graphql b/packages/frontend/apps/android/App/service/src/main/graphql/affine/CreateCopilotSession.graphql new file mode 100644 index 0000000000000..0a9b74750cd4a --- /dev/null +++ b/packages/frontend/apps/android/App/service/src/main/graphql/affine/CreateCopilotSession.graphql @@ -0,0 +1,3 @@ +mutation CreateCopilotSession($options: CreateChatSessionInput!) { + createCopilotSession(options: $options) +} diff --git a/packages/frontend/apps/android/App/service/src/main/graphql/affine/schema.graphqls b/packages/frontend/apps/android/App/service/src/main/graphql/affine/schema.graphqls new file mode 100644 index 0000000000000..c37c48e88b50e --- /dev/null +++ b/packages/frontend/apps/android/App/service/src/main/graphql/affine/schema.graphqls @@ -0,0 +1,2027 @@ +type AlreadyInSpaceDataType { + spaceId: String! +} + +type BlobNotFoundDataType { + blobId: String! + + spaceId: String! +} + +enum ChatHistoryOrder { + asc + + desc +} + +type ChatMessage { + attachments: [String!] + + content: String! + + createdAt: DateTime! + + id: ID + + params: JSON + + role: String! +} + +type Copilot { + """ + Get the session list of actions in the workspace + """ + actions: [String!]! + + """ + Get the session list of chats in the workspace + """ + chats: [String!]! + + histories( + docId: String + options: QueryChatHistoriesInput + ): [CopilotHistories!]! + + """ + Get the quota of the user in the workspace + """ + quota: CopilotQuota! + + workspaceId: ID +} + +type CopilotHistories { + """ + An mark identifying which view to use to display the session + """ + action: String + + createdAt: DateTime! + + messages: [ChatMessage!]! + + sessionId: String! + + """ + The number of tokens used in the session + """ + tokens: Int! +} + +type CopilotMessageNotFoundDataType { + messageId: String! +} + +enum CopilotModels { + DallE3 + + Gpt4Omni + + Gpt4Omni0806 + + Gpt4OmniMini + + Gpt4OmniMini0718 + + TextEmbedding3Large + + TextEmbedding3Small + + TextEmbeddingAda002 + + TextModerationLatest + + TextModerationStable +} + +input CopilotPromptConfigInput { + frequencyPenalty: Float + + jsonMode: Boolean + + presencePenalty: Float + + temperature: Float + + topP: Float +} + +type CopilotPromptConfigType { + frequencyPenalty: Float + + jsonMode: Boolean + + presencePenalty: Float + + temperature: Float + + topP: Float +} + +input CopilotPromptMessageInput { + content: String! + + params: JSON + + role: CopilotPromptMessageRole! +} + +enum CopilotPromptMessageRole { + assistant + + system + + user +} + +type CopilotPromptMessageType { + content: String! + + params: JSON + + role: CopilotPromptMessageRole! +} + +type CopilotPromptNotFoundDataType { + name: String! +} + +type CopilotPromptType { + action: String + + config: CopilotPromptConfigType + + messages: [CopilotPromptMessageType!]! + + model: String! + + name: String! +} + +type CopilotProviderSideErrorDataType { + kind: String! + + message: String! + + provider: String! +} + +type CopilotQuota { + limit: SafeInt + + used: SafeInt! +} + +input CreateChatMessageInput { + attachments: [String!] + + blobs: [Upload!] + + content: String + + params: JSON + + sessionId: String! +} + +input CreateChatSessionInput { + docId: String! + + """ + The prompt name to use for the session + """ + promptName: String! + + workspaceId: String! +} + +input CreateCheckoutSessionInput { + args: JSONObject + + coupon: String + + idempotencyKey: String + + plan: SubscriptionPlan = Pro + + recurring: SubscriptionRecurring = Yearly + + successCallbackLink: String! + + variant: SubscriptionVariant +} + +input CreateCopilotPromptInput { + action: String + + config: CopilotPromptConfigInput + + messages: [CopilotPromptMessageInput!]! + + model: CopilotModels! + + name: String! +} + +input CreateUserInput { + email: String! + + name: String +} + +type CredentialsRequirementType { + password: PasswordLimitsType! +} + +""" +A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format. +""" +scalar DateTime + +type DeleteAccount { + success: Boolean! +} + +input DeleteSessionInput { + docId: String! + + sessionIds: [String!]! + + workspaceId: String! +} + +type DocAccessDeniedDataType { + docId: String! + + spaceId: String! +} + +type DocHistoryNotFoundDataType { + docId: String! + + spaceId: String! + + timestamp: Int! +} + +type DocHistoryType { + editor: EditorType + + id: String! + + timestamp: DateTime! + + workspaceId: String! +} + +type DocNotFoundDataType { + docId: String! + + spaceId: String! +} + +type EditorType { + avatarUrl: String + + name: String! +} + +union ErrorDataUnion = + | AlreadyInSpaceDataType + | BlobNotFoundDataType + | CopilotMessageNotFoundDataType + | CopilotPromptNotFoundDataType + | CopilotProviderSideErrorDataType + | DocAccessDeniedDataType + | DocHistoryNotFoundDataType + | DocNotFoundDataType + | InvalidEmailDataType + | InvalidHistoryTimestampDataType + | InvalidPasswordLengthDataType + | InvalidRuntimeConfigTypeDataType + | MemberNotFoundInSpaceDataType + | MissingOauthQueryParameterDataType + | NotInSpaceDataType + | RuntimeConfigNotFoundDataType + | SameSubscriptionRecurringDataType + | SpaceAccessDeniedDataType + | SpaceNotFoundDataType + | SpaceOwnerNotFoundDataType + | SubscriptionAlreadyExistsDataType + | SubscriptionNotExistsDataType + | SubscriptionPlanNotFoundDataType + | UnknownOauthProviderDataType + | UnsupportedSubscriptionPlanDataType + | VersionRejectedDataType + | WrongSignInCredentialsDataType + +enum ErrorNames { + ACCESS_DENIED + + ACTION_FORBIDDEN + + ALREADY_IN_SPACE + + AUTHENTICATION_REQUIRED + + BLOB_NOT_FOUND + + BLOB_QUOTA_EXCEEDED + + CANNOT_DELETE_ALL_ADMIN_ACCOUNT + + CANNOT_DELETE_OWN_ACCOUNT + + CANT_UPDATE_ONETIME_PAYMENT_SUBSCRIPTION + + CAPTCHA_VERIFICATION_FAILED + + COPILOT_ACTION_TAKEN + + COPILOT_FAILED_TO_CREATE_MESSAGE + + COPILOT_FAILED_TO_GENERATE_TEXT + + COPILOT_MESSAGE_NOT_FOUND + + COPILOT_PROMPT_INVALID + + COPILOT_PROMPT_NOT_FOUND + + COPILOT_PROVIDER_SIDE_ERROR + + COPILOT_QUOTA_EXCEEDED + + COPILOT_SESSION_DELETED + + COPILOT_SESSION_NOT_FOUND + + CUSTOMER_PORTAL_CREATE_FAILED + + DOC_ACCESS_DENIED + + DOC_HISTORY_NOT_FOUND + + DOC_NOT_FOUND + + EARLY_ACCESS_REQUIRED + + EMAIL_ALREADY_USED + + EMAIL_TOKEN_NOT_FOUND + + EMAIL_VERIFICATION_REQUIRED + + EXPECT_TO_PUBLISH_PAGE + + EXPECT_TO_REVOKE_PUBLIC_PAGE + + FAILED_TO_CHECKOUT + + FAILED_TO_SAVE_UPDATES + + FAILED_TO_UPSERT_SNAPSHOT + + INTERNAL_SERVER_ERROR + + INVALID_CHECKOUT_PARAMETERS + + INVALID_EMAIL + + INVALID_EMAIL_TOKEN + + INVALID_HISTORY_TIMESTAMP + + INVALID_OAUTH_CALLBACK_STATE + + INVALID_PASSWORD_LENGTH + + INVALID_RUNTIME_CONFIG_TYPE + + INVALID_SUBSCRIPTION_PARAMETERS + + LINK_EXPIRED + + MAILER_SERVICE_IS_NOT_CONFIGURED + + MEMBER_NOT_FOUND_IN_SPACE + + MEMBER_QUOTA_EXCEEDED + + MISSING_OAUTH_QUERY_PARAMETER + + NOT_FOUND + + NOT_IN_SPACE + + NO_COPILOT_PROVIDER_AVAILABLE + + OAUTH_ACCOUNT_ALREADY_CONNECTED + + OAUTH_STATE_EXPIRED + + PAGE_IS_NOT_PUBLIC + + PASSWORD_REQUIRED + + RUNTIME_CONFIG_NOT_FOUND + + SAME_EMAIL_PROVIDED + + SAME_SUBSCRIPTION_RECURRING + + SIGN_UP_FORBIDDEN + + SPACE_ACCESS_DENIED + + SPACE_NOT_FOUND + + SPACE_OWNER_NOT_FOUND + + SUBSCRIPTION_ALREADY_EXISTS + + SUBSCRIPTION_EXPIRED + + SUBSCRIPTION_HAS_BEEN_CANCELED + + SUBSCRIPTION_HAS_NOT_BEEN_CANCELED + + SUBSCRIPTION_NOT_EXISTS + + SUBSCRIPTION_PLAN_NOT_FOUND + + TOO_MANY_REQUEST + + UNKNOWN_OAUTH_PROVIDER + + UNSPLASH_IS_NOT_CONFIGURED + + UNSUPPORTED_SUBSCRIPTION_PLAN + + USER_AVATAR_NOT_FOUND + + USER_NOT_FOUND + + VERSION_REJECTED + + WORKSPACE_ID_REQUIRED_FOR_TEAM_SUBSCRIPTION + + WORKSPACE_ID_REQUIRED_TO_UPDATE_TEAM_SUBSCRIPTION + + WRONG_SIGN_IN_CREDENTIALS + + WRONG_SIGN_IN_METHOD +} + +""" +The type of workspace feature +""" +enum FeatureType { + AIEarlyAccess + + Admin + + Copilot + + EarlyAccess + + UnlimitedCopilot + + UnlimitedWorkspace +} + +input ForkChatSessionInput { + docId: String! + + """ + Identify a message in the array and keep it with all previous messages into a forked session. + """ + latestMessageId: String! + + sessionId: String! + + workspaceId: String! +} + +type HumanReadableQuotaType { + blobLimit: String! + + copilotActionLimit: String + + historyPeriod: String! + + memberLimit: String! + + name: String! + + storageQuota: String! +} + +type InvalidEmailDataType { + email: String! +} + +type InvalidHistoryTimestampDataType { + timestamp: String! +} + +type InvalidPasswordLengthDataType { + max: Int! + + min: Int! +} + +type InvalidRuntimeConfigTypeDataType { + get: String! + + key: String! + + want: String! +} + +type InvitationType { + """ + Invitee information + """ + invitee: UserType! + + """ + User information + """ + user: UserType! + + """ + Workspace information + """ + workspace: InvitationWorkspaceType! +} + +type InvitationWorkspaceType { + """ + Base64 encoded avatar + """ + avatar: String! + + id: ID! + + """ + Workspace name + """ + name: String! +} + +type InviteLink { + """ + Invite link expire time + """ + expireTime: DateTime! + + """ + Invite link + """ + link: String! +} + +type InviteResult { + email: String! + + """ + Invite id, null if invite record create failed + """ + inviteId: String + + """ + Invite email sent success + """ + sentSuccess: Boolean! +} + +type InviteUserType { + """ + User accepted + """ + accepted: Boolean! @deprecated(reason: "Use `status` instead") + + """ + User avatar url + """ + avatarUrl: String + + """ + User email verified + """ + createdAt: DateTime @deprecated(reason: "useless") + + """ + User email + """ + email: String + + """ + User email verified + """ + emailVerified: Boolean + + """ + User password has been set + """ + hasPassword: Boolean + + id: ID! + + """ + Invite id + """ + inviteId: String! + + """ + User name + """ + name: String + + """ + User permission in workspace + """ + permission: Permission! + + """ + Member invite status in workspace + """ + status: WorkspaceMemberStatus! +} + +enum InvoiceStatus { + Draft + + Open + + Paid + + Uncollectible + + Void +} + +type InvoiceType { + amount: Int! + + createdAt: DateTime! + + currency: String! + + id: String @deprecated(reason: "removed") + + lastPaymentError: String + + link: String + + plan: SubscriptionPlan @deprecated(reason: "removed") + + reason: String! + + recurring: SubscriptionRecurring @deprecated(reason: "removed") + + status: InvoiceStatus! + + updatedAt: DateTime! +} + +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSON + +""" +The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSONObject + +type LimitedUserType { + """ + User email + """ + email: String! + + """ + User password has been set + """ + hasPassword: Boolean +} + +input ListUserInput { + first: Int = 20 + + skip: Int = 0 +} + +type ListedBlob { + createdAt: String! + + key: String! + + mime: String! + + size: Int! +} + +input ManageUserInput { + """ + User email + """ + email: String + + """ + User name + """ + name: String +} + +type MemberNotFoundInSpaceDataType { + spaceId: String! +} + +type MissingOauthQueryParameterDataType { + name: String! +} + +type Mutation { + acceptInviteById( + inviteId: String! + sendAcceptMail: Boolean + workspaceId: String! + ): Boolean! + + addWorkspaceFeature(feature: FeatureType!, workspaceId: String!): Int! + + approveMember(userId: String!, workspaceId: String!): String! + + cancelSubscription( + idempotencyKey: String @deprecated(reason: "use header `Idempotency-Key`") + plan: SubscriptionPlan = Pro + workspaceId: String + ): SubscriptionType! + + changeEmail(email: String!, token: String!): UserType! + + changePassword(newPassword: String!, token: String!, userId: String): Boolean! + + """ + Cleanup sessions + """ + cleanupCopilotSession(options: DeleteSessionInput!): [String!]! + + """ + Create change password url + """ + createChangePasswordUrl(callbackUrl: String!, userId: String!): String! + + """ + Create a subscription checkout link of stripe + """ + createCheckoutSession(input: CreateCheckoutSessionInput!): String! + + """ + Create a chat message + """ + createCopilotMessage(options: CreateChatMessageInput!): String! + + """ + Create a copilot prompt + """ + createCopilotPrompt(input: CreateCopilotPromptInput!): CopilotPromptType! + + """ + Create a chat session + """ + createCopilotSession(options: CreateChatSessionInput!): String! + + """ + Create a stripe customer portal to manage payment methods + """ + createCustomerPortal: String! + + createInviteLink( + expireTime: WorkspaceInviteLinkExpireTime! + workspaceId: String! + ): InviteLink! + + """ + Create a new user + """ + createUser(input: CreateUserInput!): UserType! + + """ + Create a new workspace + """ + createWorkspace(init: Upload): WorkspaceType! + + deleteAccount: DeleteAccount! + + deleteBlob( + hash: String @deprecated(reason: "use parameter [key]") + key: String + permanently: Boolean! = false + workspaceId: String! + ): Boolean! + + """ + Delete a user account + """ + deleteUser(id: String!): DeleteAccount! + + deleteWorkspace(id: String!): Boolean! + + """ + Create a chat session + """ + forkCopilotSession(options: ForkChatSessionInput!): String! + + grantMember( + permission: Permission! + userId: String! + workspaceId: String! + ): String! + + invite( + email: String! + permission: Permission @deprecated(reason: "never used") + sendInviteMail: Boolean + workspaceId: String! + ): String! + + inviteBatch( + emails: [String!]! + sendInviteMail: Boolean + workspaceId: String! + ): [InviteResult!]! + + leaveWorkspace( + sendLeaveMail: Boolean + workspaceId: String! + workspaceName: String @deprecated(reason: "no longer used") + ): Boolean! + + publishPage( + mode: PublicPageMode = Page + pageId: String! + workspaceId: String! + ): WorkspacePage! + + recoverDoc( + guid: String! + timestamp: DateTime! + workspaceId: String! + ): DateTime! + + releaseDeletedBlobs(workspaceId: String!): Boolean! + + """ + Remove user avatar + """ + removeAvatar: RemoveAvatar! + + removeWorkspaceFeature(feature: FeatureType!, workspaceId: String!): Int! + + resumeSubscription( + idempotencyKey: String @deprecated(reason: "use header `Idempotency-Key`") + plan: SubscriptionPlan = Pro + workspaceId: String + ): SubscriptionType! + + revoke(userId: String!, workspaceId: String!): Boolean! + + revokeInviteLink(workspaceId: String!): Boolean! + + revokePage(pageId: String!, workspaceId: String!): Boolean! + @deprecated(reason: "use revokePublicPage") + + revokePublicPage(pageId: String!, workspaceId: String!): WorkspacePage! + + sendChangeEmail(callbackUrl: String!, email: String): Boolean! + + sendChangePasswordEmail( + callbackUrl: String! + email: String @deprecated(reason: "fetched from signed in user") + ): Boolean! + + sendSetPasswordEmail( + callbackUrl: String! + email: String @deprecated(reason: "fetched from signed in user") + ): Boolean! + + sendVerifyChangeEmail( + callbackUrl: String! + email: String! + token: String! + ): Boolean! + + sendVerifyEmail(callbackUrl: String!): Boolean! + + setBlob(blob: Upload!, workspaceId: String!): String! + + setWorkspaceExperimentalFeature( + enable: Boolean! + feature: FeatureType! + workspaceId: String! + ): Boolean! + + sharePage(pageId: String!, workspaceId: String!): Boolean! + @deprecated(reason: "renamed to publishPage") + + """ + Update a copilot prompt + """ + updateCopilotPrompt( + messages: [CopilotPromptMessageInput!]! + name: String! + ): CopilotPromptType! + + updateProfile(input: UpdateUserInput!): UserType! + + """ + update server runtime configurable setting + """ + updateRuntimeConfig(id: String!, value: JSON!): ServerRuntimeConfigType! + + """ + update multiple server runtime configurable settings + """ + updateRuntimeConfigs(updates: JSONObject!): [ServerRuntimeConfigType!]! + + updateSubscriptionRecurring( + idempotencyKey: String @deprecated(reason: "use header `Idempotency-Key`") + plan: SubscriptionPlan = Pro + recurring: SubscriptionRecurring! + workspaceId: String + ): SubscriptionType! + + """ + Update a user + """ + updateUser(id: String!, input: ManageUserInput!): UserType! + + """ + update user enabled feature + """ + updateUserFeatures(features: [FeatureType!]!, id: String!): [FeatureType!]! + + """ + Update workspace + """ + updateWorkspace(input: UpdateWorkspaceInput!): WorkspaceType! + + """ + Upload user avatar + """ + uploadAvatar(avatar: Upload!): UserType! + + verifyEmail(token: String!): Boolean! +} + +type NotInSpaceDataType { + spaceId: String! +} + +enum OAuthProviderType { + GitHub + + Google + + OIDC +} + +type PasswordLimitsType { + maxLength: Int! + + minLength: Int! +} + +""" +User permission in workspace +""" +enum Permission { + Admin + + Owner + + Read + + Write +} + +""" +The mode which the public page default in +""" +enum PublicPageMode { + Edgeless + + Page +} + +type Query { + collectAllBlobSizes: WorkspaceBlobSizes! + @deprecated(reason: "use `user.quotaUsage` instead") + + """ + Get current user + """ + currentUser: UserType + + error(name: ErrorNames!): ErrorDataUnion! + + """ + send workspace invitation + """ + getInviteInfo(inviteId: String!): InvitationType! + + """ + Get is admin of workspace + """ + isAdmin(workspaceId: String!): Boolean! + + """ + Get is owner of workspace + """ + isOwner(workspaceId: String!): Boolean! + + """ + List blobs of workspace + """ + listBlobs(workspaceId: String!): [String!]! + @deprecated(reason: "use `workspace.blobs` instead") + + """ + List all copilot prompts + """ + listCopilotPrompts: [CopilotPromptType!]! + + listWorkspaceFeatures(feature: FeatureType!): [WorkspaceType!]! + + prices: [SubscriptionPrice!]! + + """ + server config + """ + serverConfig: ServerConfigType! + + """ + get all server runtime configurable settings + """ + serverRuntimeConfig: [ServerRuntimeConfigType!]! + + serverServiceConfigs: [ServerServiceConfig!]! + + """ + Get user by email + """ + user(email: String!): UserOrLimitedUser + + """ + Get user by email for admin + """ + userByEmail(email: String!): UserType + + """ + Get user by id + """ + userById(id: String!): UserType! + + """ + List registered users + """ + users(filter: ListUserInput!): [UserType!]! + + """ + Get users count + """ + usersCount: Int! + + """ + Get workspace by id + """ + workspace(id: String!): WorkspaceType! + + """ + Get all accessible workspaces for current user + """ + workspaces: [WorkspaceType!]! +} + +input QueryChatHistoriesInput { + action: Boolean + + fork: Boolean + + limit: Int + + messageOrder: ChatHistoryOrder + + sessionId: String + + sessionOrder: ChatHistoryOrder + + skip: Int +} + +type QuotaQueryType { + blobLimit: SafeInt! + + copilotActionLimit: SafeInt + + historyPeriod: SafeInt! + + humanReadable: HumanReadableQuotaType! + + memberCount: SafeInt! + + memberLimit: SafeInt! + + name: String! + + storageQuota: SafeInt! + + usedSize: SafeInt! +} + +type RemoveAvatar { + success: Boolean! +} + +type RuntimeConfigNotFoundDataType { + key: String! +} + +enum RuntimeConfigType { + Array + + Boolean + + Number + + Object + + String +} + +""" +The `SafeInt` scalar type represents non-fractional signed whole numeric values that are considered safe as defined by the ECMAScript specification. +""" +scalar SafeInt + +type SameSubscriptionRecurringDataType { + recurring: String! +} + +type ServerConfigType { + """ + Features for user that can be configured + """ + availableUserFeatures: [FeatureType!]! + + """ + server base url + """ + baseUrl: String! + + """ + credentials requirement + """ + credentialsRequirement: CredentialsRequirementType! + + """ + enable telemetry + """ + enableTelemetry: Boolean! + + """ + enabled server features + """ + features: [ServerFeature!]! + + """ + server flags + """ + flags: ServerFlagsType! + + """ + server flavor + """ + flavor: String! @deprecated(reason: "use `features`") + + """ + whether server has been initialized + """ + initialized: Boolean! + + """ + server identical name could be shown as badge on user interface + """ + name: String! + + oauthProviders: [OAuthProviderType!]! + + """ + server type + """ + type: ServerDeploymentType! + + """ + server version + """ + version: String! +} + +enum ServerDeploymentType { + Affine + + Selfhosted +} + +enum ServerFeature { + Captcha + + Copilot + + OAuth + + Payment +} + +type ServerFlagsType { + earlyAccessControl: Boolean! + + syncClientVersionCheck: Boolean! +} + +type ServerRuntimeConfigType { + description: String! + + id: String! + + key: String! + + module: String! + + type: RuntimeConfigType! + + updatedAt: DateTime! + + value: JSON! +} + +type ServerServiceConfig { + config: JSONObject! + + name: String! +} + +type SpaceAccessDeniedDataType { + spaceId: String! +} + +type SpaceNotFoundDataType { + spaceId: String! +} + +type SpaceOwnerNotFoundDataType { + spaceId: String! +} + +type SubscriptionAlreadyExistsDataType { + plan: String! +} + +type SubscriptionNotExistsDataType { + plan: String! +} + +enum SubscriptionPlan { + AI + + Enterprise + + Free + + Pro + + SelfHosted + + Team +} + +type SubscriptionPlanNotFoundDataType { + plan: String! + + recurring: String! +} + +type SubscriptionPrice { + amount: Int + + currency: String! + + lifetimeAmount: Int + + plan: SubscriptionPlan! + + type: String! + + yearlyAmount: Int +} + +enum SubscriptionRecurring { + Lifetime + + Monthly + + Yearly +} + +enum SubscriptionStatus { + Active + + Canceled + + Incomplete + + IncompleteExpired + + PastDue + + Paused + + Trialing + + Unpaid +} + +type SubscriptionType { + canceledAt: DateTime + + createdAt: DateTime! + + end: DateTime + + id: String @deprecated(reason: "removed") + + nextBillAt: DateTime + + """ + The 'Free' plan just exists to be a placeholder and for the type convenience of frontend. + There won't actually be a subscription with plan 'Free' + """ + plan: SubscriptionPlan! + + recurring: SubscriptionRecurring! + + start: DateTime! + + status: SubscriptionStatus! + + trialEnd: DateTime + + trialStart: DateTime + + updatedAt: DateTime! + + variant: SubscriptionVariant +} + +enum SubscriptionVariant { + EA + + Onetime +} + +type UnknownOauthProviderDataType { + name: String! +} + +type UnsupportedSubscriptionPlanDataType { + plan: String! +} + +input UpdateUserInput { + """ + User name + """ + name: String +} + +input UpdateWorkspaceInput { + """ + Enable AI + """ + enableAi: Boolean + + """ + Enable url previous when sharing + """ + enableUrlPreview: Boolean + + id: ID! + + """ + is Public workspace + """ + public: Boolean +} + +""" +The `Upload` scalar type represents a file upload. +""" +scalar Upload + +union UserOrLimitedUser = LimitedUserType | UserType + +type UserQuota { + blobLimit: SafeInt! + + historyPeriod: SafeInt! + + humanReadable: UserQuotaHumanReadable! + + memberLimit: Int! + + name: String! + + storageQuota: SafeInt! +} + +type UserQuotaHumanReadable { + blobLimit: String! + + historyPeriod: String! + + memberLimit: String! + + name: String! + + storageQuota: String! +} + +type UserQuotaUsage { + storageQuota: SafeInt! +} + +type UserType { + """ + User avatar url + """ + avatarUrl: String + + copilot(workspaceId: String): Copilot! + + """ + User email verified + """ + createdAt: DateTime @deprecated(reason: "useless") + + """ + User email + """ + email: String! + + """ + User email verified + """ + emailVerified: Boolean! + + """ + Enabled features of a user + """ + features: [FeatureType!]! + + """ + User password has been set + """ + hasPassword: Boolean + + id: ID! + + """ + Get user invoice count + """ + invoiceCount: Int! + + invoices(skip: Int, take: Int = 8): [InvoiceType!]! + + """ + User name + """ + name: String! + + quota: UserQuota + + quotaUsage: UserQuotaUsage! + + subscriptions: [SubscriptionType!]! + + token: tokenType! + @deprecated(reason: "use [/api/auth/sign-in?native=true] instead") +} + +type VersionRejectedDataType { + serverVersion: String! + + version: String! +} + +type WorkspaceBlobSizes { + size: SafeInt! +} + +""" +Workspace invite link expire time +""" +enum WorkspaceInviteLinkExpireTime { + OneDay + + OneMonth + + OneWeek + + ThreeDays +} + +""" +Member invite status in workspace +""" +enum WorkspaceMemberStatus { + Accepted + + NeedMoreSeat + + NeedMoreSeatAndReview + + Pending + + UnderReview +} + +type WorkspacePage { + id: String! + + mode: PublicPageMode! + + public: Boolean! + + workspaceId: String! +} + +type WorkspacePageMeta { + createdAt: DateTime! + + createdBy: EditorType + + updatedAt: DateTime! + + updatedBy: EditorType +} + +type WorkspaceType { + """ + Available features of workspace + """ + availableFeatures: [FeatureType!]! + + """ + List blobs of workspace + """ + blobs: [ListedBlob!]! + + """ + Blobs size of workspace + """ + blobsSize: Int! + + """ + Workspace created date + """ + createdAt: DateTime! + + """ + Enable AI + """ + enableAi: Boolean! + + """ + Enable url previous when sharing + """ + enableUrlPreview: Boolean! + + """ + Enabled features of workspace + """ + features: [FeatureType!]! + + histories(before: DateTime, guid: String!, take: Int): [DocHistoryType!]! + + id: ID! + + """ + is current workspace initialized + """ + initialized: Boolean! + + """ + invite link for workspace + """ + inviteLink: InviteLink + + """ + Get user invoice count + """ + invoiceCount: Int! + + invoices(skip: Int, take: Int = 8): [InvoiceType!]! + + """ + member count of workspace + """ + memberCount: Int! + + """ + Members of workspace + """ + members(skip: Int, take: Int): [InviteUserType!]! + + """ + Owner of workspace + """ + owner: UserType! + + """ + Cloud page metadata of workspace + """ + pageMeta(pageId: String!): WorkspacePageMeta! + + """ + Permission of current signed in user in workspace + """ + permission: Permission! + + """ + is Public workspace + """ + public: Boolean! + + """ + Get public page of a workspace by page id. + """ + publicPage(pageId: String!): WorkspacePage + + """ + Public pages of a workspace + """ + publicPages: [WorkspacePage!]! + + """ + quota of workspace + """ + quota: QuotaQueryType! + + """ + Shared pages of workspace + """ + sharedPages: [String!]! @deprecated(reason: "use WorkspaceType.publicPages") + + """ + The team subscription of the workspace, if exists. + """ + subscription: SubscriptionType + + """ + if workspace is team workspace + """ + team: Boolean! +} + +type WrongSignInCredentialsDataType { + email: String! +} + +""" +A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + +In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. +""" +type __Directive { + name: String! + + description: String + + isRepeatable: Boolean! + + locations: [__DirectiveLocation!]! + + args(includeDeprecated: Boolean = false): [__InputValue!]! +} + +""" +A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies. +""" +enum __DirectiveLocation { + """ + Location adjacent to a query operation. + """ + QUERY + + """ + Location adjacent to a mutation operation. + """ + MUTATION + + """ + Location adjacent to a subscription operation. + """ + SUBSCRIPTION + + """ + Location adjacent to a field. + """ + FIELD + + """ + Location adjacent to a fragment definition. + """ + FRAGMENT_DEFINITION + + """ + Location adjacent to a fragment spread. + """ + FRAGMENT_SPREAD + + """ + Location adjacent to an inline fragment. + """ + INLINE_FRAGMENT + + """ + Location adjacent to a variable definition. + """ + VARIABLE_DEFINITION + + """ + Location adjacent to a schema definition. + """ + SCHEMA + + """ + Location adjacent to a scalar definition. + """ + SCALAR + + """ + Location adjacent to an object type definition. + """ + OBJECT + + """ + Location adjacent to a field definition. + """ + FIELD_DEFINITION + + """ + Location adjacent to an argument definition. + """ + ARGUMENT_DEFINITION + + """ + Location adjacent to an interface definition. + """ + INTERFACE + + """ + Location adjacent to a union definition. + """ + UNION + + """ + Location adjacent to an enum definition. + """ + ENUM + + """ + Location adjacent to an enum value definition. + """ + ENUM_VALUE + + """ + Location adjacent to an input object type definition. + """ + INPUT_OBJECT + + """ + Location adjacent to an input object field definition. + """ + INPUT_FIELD_DEFINITION +} + +""" +One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. +""" +type __EnumValue { + name: String! + + description: String + + isDeprecated: Boolean! + + deprecationReason: String +} + +""" +Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. +""" +type __Field { + name: String! + + description: String + + args(includeDeprecated: Boolean = false): [__InputValue!]! + + type: __Type! + + isDeprecated: Boolean! + + deprecationReason: String +} + +""" +Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. +""" +type __InputValue { + name: String! + + description: String + + type: __Type! + + """ + A GraphQL-formatted string representing the default value for this input value. + """ + defaultValue: String + + isDeprecated: Boolean! + + deprecationReason: String +} + +""" +A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. +""" +type __Schema { + description: String + + """ + A list of all types supported by this server. + """ + types: [__Type!]! + + """ + The type that query operations will be rooted at. + """ + queryType: __Type! + + """ + If this server supports mutation, the type that mutation operations will be rooted at. + """ + mutationType: __Type + + """ + If this server support subscription, the type that subscription operations will be rooted at. + """ + subscriptionType: __Type + + """ + A list of all directives supported by this server. + """ + directives: [__Directive!]! +} + +""" +The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + +Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. +""" +type __Type { + kind: __TypeKind! + + name: String + + description: String + + specifiedByURL: String + + fields(includeDeprecated: Boolean = false): [__Field!] + + interfaces: [__Type!] + + possibleTypes: [__Type!] + + enumValues(includeDeprecated: Boolean = false): [__EnumValue!] + + inputFields(includeDeprecated: Boolean = false): [__InputValue!] + + ofType: __Type + + isOneOf: Boolean +} + +""" +An enum describing what kind of type a given `__Type` is. +""" +enum __TypeKind { + """ + Indicates this type is a scalar. + """ + SCALAR + + """ + Indicates this type is an object. `fields` and `interfaces` are valid fields. + """ + OBJECT + + """ + Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields. + """ + INTERFACE + + """ + Indicates this type is a union. `possibleTypes` is a valid field. + """ + UNION + + """ + Indicates this type is an enum. `enumValues` is a valid field. + """ + ENUM + + """ + Indicates this type is an input object. `inputFields` is a valid field. + """ + INPUT_OBJECT + + """ + Indicates this type is a list. `ofType` is a valid field. + """ + LIST + + """ + Indicates this type is a non-null. `ofType` is a valid field. + """ + NON_NULL +} + +type tokenType { + refresh: String! + + sessionToken: String + + token: String! +} + +""" +Marks an element of a GraphQL schema as no longer supported. +""" +directive @deprecated( + "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/)." + reason: String = "No longer supported" +) on ARGUMENT_DEFINITION | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION + +""" +Directs the executor to include this field or fragment only when the `if` argument is true. +""" +directive @include( + "Included when true." + if: Boolean! +) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + +""" +Indicates exactly one field must be supplied and this field must not be `null`. +""" +directive @oneOf on INPUT_OBJECT + +""" +Directs the executor to skip this field or fragment when the `if` argument is true. +""" +directive @skip( + "Skipped when true." + if: Boolean! +) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + +""" +Exposes a URL that specifies the behavior of this scalar. +""" +directive @specifiedBy( + "The URL that specifies the behavior of this scalar." + url: String! +) on SCALAR + +schema { + query: Query + mutation: Mutation +} diff --git a/packages/frontend/apps/android/App/settings.gradle b/packages/frontend/apps/android/App/settings.gradle index 944c98f42395b..c00cf3aebe4d3 100644 --- a/packages/frontend/apps/android/App/settings.gradle +++ b/packages/frontend/apps/android/App/settings.gradle @@ -1,5 +1,18 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} + include ':app' +include ':service' include ':capacitor-cordova-android-plugins' -project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') - apply from: 'capacitor.settings.gradle' diff --git a/packages/frontend/apps/android/App/variables.gradle b/packages/frontend/apps/android/App/variables.gradle index 3abba966dbb0c..5eb63f6959643 100644 --- a/packages/frontend/apps/android/App/variables.gradle +++ b/packages/frontend/apps/android/App/variables.gradle @@ -2,15 +2,4 @@ ext { minSdkVersion = 22 compileSdkVersion = 35 targetSdkVersion = 35 - androidxActivityVersion = '1.8.0' - androidxAppCompatVersion = '1.7.0' - androidxCoordinatorLayoutVersion = '1.2.0' - androidxCoreVersion = '1.12.0' - androidxFragmentVersion = '1.6.2' - coreSplashScreenVersion = '1.0.1' - androidxWebkitVersion = '1.9.0' - junitVersion = '4.13.2' - androidxJunitVersion = '1.2.1' - androidxEspressoCoreVersion = '3.6.1' - cordovaAndroidVersion = '10.1.1' -} +} \ No newline at end of file diff --git a/packages/frontend/apps/android/README.md b/packages/frontend/apps/android/README.md index 6d64273332825..283eb33824ac5 100644 --- a/packages/frontend/apps/android/README.md +++ b/packages/frontend/apps/android/README.md @@ -2,6 +2,17 @@ AFFiNE Android app. +## Setup + +- set CARGO_HOME to your system environment +- add + + `rust.cargoCommand={replace_with_your_own_cargo_home_absolute_path}/bin/cargo` + + `rust.rustcCommand={replace_with_your_own_cargo_home_absolute_path}/bin/rustc` + + to App/local.properties + ## Build - yarn install diff --git a/packages/frontend/apps/android/capacitor.config.ts b/packages/frontend/apps/android/capacitor.config.ts index 10b3e64199ea8..f1c73e4311d01 100644 --- a/packages/frontend/apps/android/capacitor.config.ts +++ b/packages/frontend/apps/android/capacitor.config.ts @@ -16,6 +16,14 @@ const config: CapacitorConfig = { releaseType: 'AAB', }, }, + plugins: { + CapacitorHttp: { + enabled: true, + }, + CapacitorCookies: { + enabled: true, + }, + }, }; export default config; diff --git a/packages/frontend/apps/android/package.json b/packages/frontend/apps/android/package.json index 1dd529a2b2e0c..4f04cb6b016a4 100644 --- a/packages/frontend/apps/android/package.json +++ b/packages/frontend/apps/android/package.json @@ -15,7 +15,9 @@ "@blocksuite/affine": "workspace:*", "@blocksuite/icons": "2.2.2", "@capacitor/android": "^7.0.0", + "@capacitor/app": "^7.0.0", "@capacitor/core": "^7.0.0", + "@capgo/inappbrowser": "^6.9.35", "@sentry/react": "^8.44.0", "@toeverything/infra": "workspace:*", "react": "^19.0.0", diff --git a/packages/frontend/apps/android/src/app.tsx b/packages/frontend/apps/android/src/app.tsx index 4ff63212a2369..8e0c809632ede 100644 --- a/packages/frontend/apps/android/src/app.tsx +++ b/packages/frontend/apps/android/src/app.tsx @@ -3,15 +3,20 @@ import { AppFallback } from '@affine/core/mobile/components/app-fallback'; import { configureMobileModules } from '@affine/core/mobile/modules'; import { router } from '@affine/core/mobile/router'; import { configureCommonModules } from '@affine/core/modules'; +import { AuthService, DefaultServerService } from '@affine/core/modules/cloud'; import { I18nProvider } from '@affine/core/modules/i18n'; import { LifecycleService } from '@affine/core/modules/lifecycle'; import { configureLocalStorageStateStorageImpls, NbstoreProvider, } from '@affine/core/modules/storage'; +import { PopupWindowProvider } from '@affine/core/modules/url'; +import { ClientSchemeProvider } from '@affine/core/modules/url/providers/client-schema'; import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench'; import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspace-engine'; import { WorkerClient } from '@affine/nbstore/worker/client'; +import { App as CapacitorApp } from '@capacitor/app'; +import { InAppBrowser } from '@capgo/inappbrowser'; import { Framework, FrameworkRoot, getCurrentStore } from '@toeverything/infra'; import { OpClient } from '@toeverything/infra/op'; import { Suspense } from 'react'; @@ -43,12 +48,62 @@ framework.impl(NbstoreProvider, { }); const frameworkProvider = framework.provider(); +framework.impl(PopupWindowProvider, { + open: (url: string) => { + InAppBrowser.open({ + url: url, + }).catch(console.error); + }, +}); + +framework.impl(ClientSchemeProvider, { + getClientScheme() { + return 'affine'; + }, +}); + // setup application lifecycle events, and emit application start event window.addEventListener('focus', () => { frameworkProvider.get(LifecycleService).applicationFocus(); }); frameworkProvider.get(LifecycleService).applicationStart(); +CapacitorApp.addListener('appUrlOpen', ({ url }) => { + // try to close browser if it's open + InAppBrowser.close().catch(e => console.error('Failed to close browser', e)); + + const urlObj = new URL(url); + + if (urlObj.hostname === 'authentication') { + const method = urlObj.searchParams.get('method'); + const payload = JSON.parse(urlObj.searchParams.get('payload') ?? 'false'); + + if ( + !method || + (method !== 'magic-link' && method !== 'oauth') || + !payload + ) { + console.error('Invalid authentication url', url); + return; + } + + const authService = frameworkProvider + .get(DefaultServerService) + .server.scope.get(AuthService); + if (method === 'oauth') { + authService + .signInOauth(payload.code, payload.state, payload.provider) + .catch(console.error); + } else if (method === 'magic-link') { + authService + .signInMagicLink(payload.email, payload.token) + .catch(console.error); + } + } +}).catch(e => { + console.error(e); +}); + export function App() { return ( diff --git a/yarn.lock b/yarn.lock index ed88bb3c7a99a..e5bcf39943cf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -226,8 +226,10 @@ __metadata: "@blocksuite/affine": "workspace:*" "@blocksuite/icons": "npm:2.2.2" "@capacitor/android": "npm:^7.0.0" + "@capacitor/app": "npm:^7.0.0" "@capacitor/cli": "npm:^7.0.0" "@capacitor/core": "npm:^7.0.0" + "@capgo/inappbrowser": "npm:^6.9.35" "@sentry/react": "npm:^8.44.0" "@toeverything/infra": "workspace:*" "@types/react": "npm:^19.0.1" @@ -4261,6 +4263,15 @@ __metadata: languageName: node linkType: hard +"@capgo/inappbrowser@npm:^6.9.35": + version: 6.9.35 + resolution: "@capgo/inappbrowser@npm:6.9.35" + peerDependencies: + "@capacitor/core": ^6.0.0 + checksum: 10/81d3ef7fd89ddb1d9862a0d1db44b75620191678e19f8c5ee99859cbb2b883c9afee3960bf0b7c4847384929e6dd3ff2c223bbdd293ceefd3fd51fc42a7010ef + languageName: node + linkType: hard + "@chromatic-com/storybook@npm:^3.2.2": version: 3.2.4 resolution: "@chromatic-com/storybook@npm:3.2.4"