Files
Evgeny 035a2f954c ui: new UX for making connections after / as part of onboarding (#6753)
* ui: additional images, views for making connections and creating groups (#6750)

* ios: setup for additional assets

* ios build config

* header

* fix

* update layout

* more views with images

* layout

* layout

* android images and view

* fix path

* fix desktop

* fix desktop build

* smaller image

* layout

* more layout

* more kotlin views

* group layout

* padding

* create group layout

* more create group layout

* layout

* tweak layout

* more tweak

* config

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* ios: connecting as part of onboarding (#6754)

* ios: implementation of "connecting" cards

* ios: revision

* fix flip

* fixes

* fix frame

* replace nav stack with tab view

* rename

* update gradient and card label material

* fix gradient

* debug

* remove debug code

* update card labels

* card label layout

* landscape cards

* layout

* safe area

* less bold

* debug landscape

* refactor titles, back inline with title in landscape

* remove ignoreSafeArea

* remove extra padding

* refactor

* clean

* layout spec added to plan

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* android, desktop: connecting during onboarding - new cards (#6757)

* android, desktop: connecting during onboarding - new cards

* fix

* change layout

* fixes

* fix

* fix

* layout

* fix layout

* animation

* import

* paddings

* 350ms

* font

* fonts

* layout

* box

* more layout

* layout

* simpler

* hide toolbar heading in onboarding mode

* simpler desktop layout

* better desktop

* revert desktop toolbar

* bigger font, landscape

* fix desktop

* cap width

* refactor, simplify

* qr code scanner icon

* use icon without assets

* cleaner

* fix

* fix

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* android, desktop: connect banner after onboarding (#6761)

* android, desktop: connect banner after onboarding

* improve

* smaller button

* bigger icon, same string

* fallback gradients

* improve build

* simpler connect screens during onboarding

* left-align

* update strings

* improve state machine

* text, padding

* strings

* primary color for tap to paste link

* fix race condition

* fix loading race

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* ios: banner and connect screens (#6767)

* ios: banner and connect screens

* fix

* return nav

* remove padding

* refactor

* refactor

* refactor 2

* refactor 3

* refactor 4

* header

* xcode files

* improve

* fix toolbar

* toolbar 2

* no assets

* no assets 2

* padding

* android padding

* simplify

* layout

* fix

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* fix refreshable

* text

* fix toolbar color

* rework address share logic

* padding

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-04-21 17:41:52 +01:00

115 lines
5.3 KiB
Kotlin

import java.io.File
import java.util.*
buildscript {
val prop = java.util.Properties().apply {
try {
load(java.io.FileInputStream(File(rootProject.rootDir, "local.properties")))
} catch (e: Exception) {
// No file was created
}
}
fun ExtraPropertiesExtension.getOrNull(name: String): Any? = if (has(name)) get("name") else null
extra.set("compose.version", prop["compose.version"] ?: extra["compose.version"])
extra.set("kotlin.version", prop["kotlin.version"] ?: extra["kotlin.version"])
extra.set("gradle.plugin.version", prop["gradle.plugin.version"] ?: extra["gradle.plugin.version"])
extra.set("abi_filter", prop["abi_filter"] ?: "arm64-v8a")
// Name that will be shown for debug build. By default, it is from strings
extra.set("app.name", prop["app.name"] ?: "@string/app_name")
// Whether the app is debuggable or not. Specify `false` if yo`u want good performance in debug builds
extra.set("enable_debuggable", prop["debuggable"] != "false")
// Ending part of package name.
// Provide, for example, `application_id.suffix=.debug` in local.properties
// to allow debug & release versions to coexist
extra.set("application_id.suffix", prop["application_id.suffix"] ?: "")
// Compression level for debug AND release apk. 0 = disable compression. Max is 9
extra.set("compression.level", (prop["compression.level"] as String?)?.toIntOrNull() ?: 0)
if (prop["simplex.assets.dir"] != null) {
extra.set("simplex.assets.dir", prop["simplex.assets.dir"])
}
// NOTE: If you need a different version of something, provide it in `local.properties`
// like so: compose.version=123, or gradle.plugin.version=1.2.3, etc
/** Mac signing and notarization */
// You can specify `compose.desktop.mac.*` keys and values from the right side of the command in `$HOME/.gradle/gradle.properties`.
// This will be project-independent setup without requiring to have `local.properties` file
extra.set("desktop.mac.signing.identity", prop["desktop.mac.signing.identity"] ?: extra.getOrNull("compose.desktop.mac.signing.identity"))
extra.set("desktop.mac.signing.keychain", prop["desktop.mac.signing.keychain"] ?: extra.getOrNull("compose.desktop.mac.signing.keychain"))
extra.set("desktop.mac.notarization.apple_id", prop["desktop.mac.notarization.apple_id"] ?: extra.getOrNull("compose.desktop.mac.notarization.appleID"))
extra.set("desktop.mac.notarization.password", prop["desktop.mac.notarization.password"] ?: extra.getOrNull("compose.desktop.mac.notarization.password"))
extra.set("desktop.mac.notarization.team_id", prop["desktop.mac.notarization.team_id"] ?: extra.getOrNull("compose.desktop.mac.notarization.teamID"))
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:${rootProject.extra["gradle.plugin.version"]}")
classpath(kotlin("gradle-plugin", version = rootProject.extra["kotlin.version"] as String))
classpath("dev.icerock.moko:resources-generator:0.23.0")
// Workaround gradle sync issue: https://github.com/gmazzo/gradle-buildconfig-plugin/issues/137#issuecomment-1935739759
classpath("com.squareup:kotlinpoet:1.16.0")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
/*plugins {
id "com.android.application" version "$gradle_plugin_version" apply false
id "com.android.library" version "$gradle_plugin_version" apply false
id "org.jetbrains.kotlin.android" version "$kotlin_version" apply false
id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version"
}*/
group = "chat.simplex"
version = extra["android.version_name"] as String
allprojects {
repositories {
google()
mavenCentral()
maven("https://oss.sonatype.org/content/repositories/snapshots")
maven("https://jitpack.io")
}
}
plugins {
kotlin("multiplatform") apply false
kotlin("android") apply false
id("com.android.application") apply false
id("com.android.library") apply false
id("org.jetbrains.compose") apply false
id("org.jetbrains.kotlin.plugin.serialization") apply false
}
// https://raymondctc.medium.com/configuring-your-sourcecompatibility-targetcompatibility-and-kotlinoptions-jvmtarget-all-at-once-66bf2198145f
val jvmVersion: Provider<String> = providers.gradleProperty("kotlin.jvm.target")
configure(subprojects) {
// Apply compileOptions to subprojects
plugins.withType<com.android.build.gradle.BasePlugin>().configureEach {
extensions.findByType<com.android.build.gradle.BaseExtension>()?.apply {
jvmVersion.map { JavaVersion.toVersion(it) }.orNull?.let {
compileOptions {
sourceCompatibility = it
targetCompatibility = it
}
}
}
}
// Apply kotlinOptions.jvmTarget to subprojects
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
kotlinOptions {
if (jvmVersion.isPresent) jvmTarget = jvmVersion.get()
}
}
}
tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}