diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/onboarding/SimpleXInfo.kt b/apps/android/app/src/main/java/chat/simplex/app/views/onboarding/SimpleXInfo.kt index 5576150c6..9993136fd 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/onboarding/SimpleXInfo.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/onboarding/SimpleXInfo.kt @@ -18,8 +18,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp +import androidx.compose.ui.unit.* import chat.simplex.app.R import chat.simplex.app.model.ChatModel import chat.simplex.app.model.User @@ -47,15 +46,15 @@ fun SimpleXInfoLayout( .verticalScroll(rememberScrollState()) .padding(horizontal = DEFAULT_PADDING), ) { - Box(Modifier.fillMaxWidth().padding(top = 24.dp, bottom = 8.dp), contentAlignment = Alignment.Center) { + Box(Modifier.fillMaxWidth().padding(top = 8.dp), contentAlignment = Alignment.Center) { SimpleXLogo() } - Text(stringResource(R.string.next_generation_of_private_messaging), style = MaterialTheme.typography.h2, modifier = Modifier.padding(bottom = 24.dp), textAlign = TextAlign.Center) + Text(stringResource(R.string.next_generation_of_private_messaging), style = MaterialTheme.typography.h2, modifier = Modifier.padding(bottom = 36.dp).padding(horizontal = 48.dp), textAlign = TextAlign.Center) - InfoRow(painterResource(R.drawable.privacy), R.string.privacy_redefined, R.string.first_platform_without_user_ids) + InfoRow(painterResource(R.drawable.privacy), R.string.privacy_redefined, R.string.first_platform_without_user_ids, width = 80.dp) InfoRow(painterResource(R.drawable.shield), R.string.immune_to_spam_and_abuse, R.string.people_can_connect_only_via_links_you_share) - InfoRow(painterResource(R.drawable.decentralized), R.string.decentralized, R.string.opensource_protocol_and_code_anybody_can_run_servers) + InfoRow(painterResource(if (isInDarkTheme()) R.drawable.decentralized_light else R.drawable.decentralized), R.string.decentralized, R.string.opensource_protocol_and_code_anybody_can_run_servers) Spacer(Modifier.fillMaxHeight().weight(1f)) @@ -89,14 +88,14 @@ fun SimpleXLogo() { } @Composable -private fun InfoRow(icon: Painter, @StringRes titleId: Int, @StringRes textId: Int) { - Row(Modifier.padding(bottom = 20.dp), verticalAlignment = Alignment.Top) { +private fun InfoRow(icon: Painter, @StringRes titleId: Int, @StringRes textId: Int, width: Dp = 76.dp) { + Row(Modifier.padding(bottom = 27.dp), verticalAlignment = Alignment.Top) { Image(icon, contentDescription = null, modifier = Modifier - .width(60.dp) - .padding(top = 8.dp, end = 16.dp)) + .width(width) + .padding(top = 8.dp, start = 8.dp, end = 24.dp)) Column(horizontalAlignment = Alignment.Start) { Text(stringResource(titleId), fontWeight = FontWeight.Bold, style = MaterialTheme.typography.h3, lineHeight = 24.sp) - Text(stringResource(textId), lineHeight = 24.sp, style = MaterialTheme.typography.caption) + Text(stringResource(textId), lineHeight = 24.sp, style = MaterialTheme.typography.body1) } } } diff --git a/apps/android/app/src/main/res/drawable-hdpi/decentralized.png b/apps/android/app/src/main/res/drawable-hdpi/decentralized.png index d59a91102..056f507b1 100644 Binary files a/apps/android/app/src/main/res/drawable-hdpi/decentralized.png and b/apps/android/app/src/main/res/drawable-hdpi/decentralized.png differ diff --git a/apps/android/app/src/main/res/drawable-hdpi/decentralized_light.png b/apps/android/app/src/main/res/drawable-hdpi/decentralized_light.png new file mode 100644 index 000000000..6593ec269 Binary files /dev/null and b/apps/android/app/src/main/res/drawable-hdpi/decentralized_light.png differ diff --git a/apps/android/app/src/main/res/drawable-hdpi/privacy.png b/apps/android/app/src/main/res/drawable-hdpi/privacy.png index 8b8d644b4..b25b57cd7 100644 Binary files a/apps/android/app/src/main/res/drawable-hdpi/privacy.png and b/apps/android/app/src/main/res/drawable-hdpi/privacy.png differ diff --git a/apps/android/app/src/main/res/drawable-hdpi/shield.png b/apps/android/app/src/main/res/drawable-hdpi/shield.png index 8ea34bf6d..f184446c3 100644 Binary files a/apps/android/app/src/main/res/drawable-hdpi/shield.png and b/apps/android/app/src/main/res/drawable-hdpi/shield.png differ diff --git a/apps/android/app/src/main/res/drawable-mdpi/decentralized.png b/apps/android/app/src/main/res/drawable-mdpi/decentralized.png index bb5dc8332..fcbc2af60 100644 Binary files a/apps/android/app/src/main/res/drawable-mdpi/decentralized.png and b/apps/android/app/src/main/res/drawable-mdpi/decentralized.png differ diff --git a/apps/android/app/src/main/res/drawable-mdpi/decentralized_light.png b/apps/android/app/src/main/res/drawable-mdpi/decentralized_light.png new file mode 100644 index 000000000..67ad744d7 Binary files /dev/null and b/apps/android/app/src/main/res/drawable-mdpi/decentralized_light.png differ diff --git a/apps/android/app/src/main/res/drawable-mdpi/privacy.png b/apps/android/app/src/main/res/drawable-mdpi/privacy.png index ce3cf902b..4a2e7dc6a 100644 Binary files a/apps/android/app/src/main/res/drawable-mdpi/privacy.png and b/apps/android/app/src/main/res/drawable-mdpi/privacy.png differ diff --git a/apps/android/app/src/main/res/drawable-mdpi/shield.png b/apps/android/app/src/main/res/drawable-mdpi/shield.png index 91eeaf634..e57971281 100644 Binary files a/apps/android/app/src/main/res/drawable-mdpi/shield.png and b/apps/android/app/src/main/res/drawable-mdpi/shield.png differ diff --git a/apps/android/app/src/main/res/drawable-xhdpi/decentralized.png b/apps/android/app/src/main/res/drawable-xhdpi/decentralized.png index 535abf07f..b1cb8eea2 100644 Binary files a/apps/android/app/src/main/res/drawable-xhdpi/decentralized.png and b/apps/android/app/src/main/res/drawable-xhdpi/decentralized.png differ diff --git a/apps/android/app/src/main/res/drawable-xhdpi/decentralized_light.png b/apps/android/app/src/main/res/drawable-xhdpi/decentralized_light.png new file mode 100644 index 000000000..5f4b32914 Binary files /dev/null and b/apps/android/app/src/main/res/drawable-xhdpi/decentralized_light.png differ diff --git a/apps/android/app/src/main/res/drawable-xhdpi/privacy.png b/apps/android/app/src/main/res/drawable-xhdpi/privacy.png index 6ed47dbba..c9c311089 100644 Binary files a/apps/android/app/src/main/res/drawable-xhdpi/privacy.png and b/apps/android/app/src/main/res/drawable-xhdpi/privacy.png differ diff --git a/apps/android/app/src/main/res/drawable-xhdpi/shield.png b/apps/android/app/src/main/res/drawable-xhdpi/shield.png index d278b95a3..9ff97bf7f 100644 Binary files a/apps/android/app/src/main/res/drawable-xhdpi/shield.png and b/apps/android/app/src/main/res/drawable-xhdpi/shield.png differ diff --git a/apps/android/app/src/main/res/drawable-xxhdpi/decentralized.png b/apps/android/app/src/main/res/drawable-xxhdpi/decentralized.png index bf7f16bc7..8fc86f5b2 100644 Binary files a/apps/android/app/src/main/res/drawable-xxhdpi/decentralized.png and b/apps/android/app/src/main/res/drawable-xxhdpi/decentralized.png differ diff --git a/apps/android/app/src/main/res/drawable-xxhdpi/decentralized_light.png b/apps/android/app/src/main/res/drawable-xxhdpi/decentralized_light.png new file mode 100644 index 000000000..12cd090fa Binary files /dev/null and b/apps/android/app/src/main/res/drawable-xxhdpi/decentralized_light.png differ diff --git a/apps/android/app/src/main/res/drawable-xxhdpi/privacy.png b/apps/android/app/src/main/res/drawable-xxhdpi/privacy.png index 64bcc12a9..6f757bc18 100644 Binary files a/apps/android/app/src/main/res/drawable-xxhdpi/privacy.png and b/apps/android/app/src/main/res/drawable-xxhdpi/privacy.png differ diff --git a/apps/android/app/src/main/res/drawable-xxhdpi/shield.png b/apps/android/app/src/main/res/drawable-xxhdpi/shield.png index fae46e104..42a3ffe3a 100644 Binary files a/apps/android/app/src/main/res/drawable-xxhdpi/shield.png and b/apps/android/app/src/main/res/drawable-xxhdpi/shield.png differ diff --git a/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized.png b/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized.png index f6e4c474c..865f37bfc 100644 Binary files a/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized.png and b/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized.png differ diff --git a/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized_light.png b/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized_light.png new file mode 100644 index 000000000..c561422bd Binary files /dev/null and b/apps/android/app/src/main/res/drawable-xxxhdpi/decentralized_light.png differ diff --git a/apps/android/app/src/main/res/drawable-xxxhdpi/privacy.png b/apps/android/app/src/main/res/drawable-xxxhdpi/privacy.png index bfc2c63df..ca4688dcb 100644 Binary files a/apps/android/app/src/main/res/drawable-xxxhdpi/privacy.png and b/apps/android/app/src/main/res/drawable-xxxhdpi/privacy.png differ diff --git a/apps/android/app/src/main/res/drawable-xxxhdpi/shield.png b/apps/android/app/src/main/res/drawable-xxxhdpi/shield.png index 52d98993c..d98f67069 100644 Binary files a/apps/android/app/src/main/res/drawable-xxxhdpi/shield.png and b/apps/android/app/src/main/res/drawable-xxxhdpi/shield.png differ diff --git a/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/Contents.json b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/Contents.json new file mode 100644 index 000000000..f67189ee3 --- /dev/null +++ b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "decentralized_light.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "decentralized_light@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "decentralized_light@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light.png b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light.png new file mode 100644 index 000000000..6593ec269 Binary files /dev/null and b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light.png differ diff --git a/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light@2x.png b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light@2x.png new file mode 100644 index 000000000..12cd090fa Binary files /dev/null and b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light@2x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light@3x.png b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light@3x.png new file mode 100644 index 000000000..c561422bd Binary files /dev/null and b/apps/ios/Shared/Assets.xcassets/decentralized-light.imageset/decentralized_light@3x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized.png b/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized.png index 7af91b5df..056f507b1 100644 Binary files a/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized.png and b/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized.png differ diff --git a/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@2x.png b/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@2x.png index 77eae5137..8fc86f5b2 100644 Binary files a/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@2x.png and b/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@2x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@3x.png b/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@3x.png index 304191031..865f37bfc 100644 Binary files a/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@3x.png and b/apps/ios/Shared/Assets.xcassets/decentralized.imageset/decentralized@3x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy.png b/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy.png index da3609cbc..b25b57cd7 100644 Binary files a/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy.png and b/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy.png differ diff --git a/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@2x.png b/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@2x.png index d390f8c43..6f757bc18 100644 Binary files a/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@2x.png and b/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@2x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@3x.png b/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@3x.png index 87d4d4693..ca4688dcb 100644 Binary files a/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@3x.png and b/apps/ios/Shared/Assets.xcassets/privacy.imageset/privacy@3x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/shield.imageset/shield.png b/apps/ios/Shared/Assets.xcassets/shield.imageset/shield.png index 65684f7c7..f184446c3 100644 Binary files a/apps/ios/Shared/Assets.xcassets/shield.imageset/shield.png and b/apps/ios/Shared/Assets.xcassets/shield.imageset/shield.png differ diff --git a/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@2x.png b/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@2x.png index dd2ffcb5e..42a3ffe3a 100644 Binary files a/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@2x.png and b/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@2x.png differ diff --git a/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@3x.png b/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@3x.png index 82ebfee46..d98f67069 100644 Binary files a/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@3x.png and b/apps/ios/Shared/Assets.xcassets/shield.imageset/shield@3x.png differ diff --git a/apps/ios/Shared/Views/Onboarding/SimpleXInfo.swift b/apps/ios/Shared/Views/Onboarding/SimpleXInfo.swift index cdd5f0ce9..5a0cdff2c 100644 --- a/apps/ios/Shared/Views/Onboarding/SimpleXInfo.swift +++ b/apps/ios/Shared/Views/Onboarding/SimpleXInfo.swift @@ -16,64 +16,72 @@ struct SimpleXInfo: View { var body: some View { GeometryReader { g in - VStack(alignment: .leading) { - Image(colorScheme == .light ? "logo" : "logo-light") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: g.size.width * 0.7) + ScrollView { + VStack(alignment: .leading) { + Image(colorScheme == .light ? "logo" : "logo-light") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: g.size.width * 0.67) + .padding(.bottom, 8) + .frame(maxWidth: .infinity, minHeight: 48, alignment: .top) + + VStack(alignment: .leading) { + Text("The next generation of private messaging") + .font(.title2) + .padding(.bottom, 30) + .padding(.horizontal, 40) + .frame(maxWidth: .infinity) + .multilineTextAlignment(.center) + infoRow("privacy", "Privacy redefined", + "The 1st platform without any user identifiers – private by design.", width: 48) + infoRow("shield", "Immune to spam and abuse", + "People can connect to you only via the links you share.", width: 46) + infoRow(colorScheme == .light ? "decentralized" : "decentralized-light", "Decentralized", + "Open-source protocol and code – anybody can run the servers.", width: 44) + } + + Spacer() + if onboarding { + OnboardingActionButton() + Spacer() + } + + Button { + showHowItWorks = true + } label: { + Label("How it works", systemImage: "info.circle") + .font(.subheadline) + } .padding(.bottom, 8) .frame(maxWidth: .infinity) - - VStack(alignment: .leading) { - Text("The next generation of private messaging") - .font(.title) - .padding(.bottom, 24) - .frame(maxWidth: .infinity) - .multilineTextAlignment(.center) - infoRow("privacy", "Privacy redefined", - "The 1st platform without any user identifiers – private by design.") - infoRow("shield", "Immune to spam and abuse", - "People can connect to you only via the links you share.") - infoRow("decentralized", "Decentralized", - "Open-source protocol and code – anybody can run the servers.") } - - Spacer() - if onboarding { - OnboardingActionButton() - Spacer() - } - - Button { - showHowItWorks = true - } label: { - Label("How it works", systemImage: "info.circle") - .font(.subheadline) - } - .padding(.bottom, 8) - .frame(maxWidth: .infinity) + .frame(minHeight: g.size.height) } .sheet(isPresented: $showHowItWorks) { HowItWorks(onboarding: onboarding) } } + .frame(maxHeight: .infinity) .padding() } - private func infoRow(_ image: String, _ title: LocalizedStringKey, _ text: LocalizedStringKey) -> some View { + private func infoRow(_ image: String, _ title: LocalizedStringKey, _ text: LocalizedStringKey, width: CGFloat) -> some View { HStack(alignment: .top) { Image(image) .resizable() .scaledToFit() - .frame(width: 36, height: 40) + .frame(width: width, height: 54) + .frame(width: 54) .padding(.top, 4) - .padding(.trailing, 6) - VStack(alignment: .leading) { + .padding(.leading, 4) + .padding(.trailing, 10) + VStack(alignment: .leading, spacing: 4) { Text(title).font(.headline) - Text(text) + Text(text).frame(minHeight: 40, alignment: .top) } } - .padding(.bottom, 8) + .padding(.bottom, 20) + .padding(.trailing, 6) } } diff --git a/scripts/android/prepare.sh b/scripts/android/prepare.sh index a7ee5f7e8..5fbe70aa6 100755 --- a/scripts/android/prepare.sh +++ b/scripts/android/prepare.sh @@ -1,6 +1,7 @@ #!/bin/sh # libsimplex.so and libsupport.so binaries should be in ~/Downloads folder +mkdir -p ./apps/android/app/src/main/cpp/libs/arm64-v8a/ rm ./apps/android/app/src/main/cpp/libs/arm64-v8a/* cp ~/Downloads/libsupport.so ./apps/android/app/src/main/cpp/libs/arm64-v8a/ cp ~/Downloads/pkg-aarch64-android-libsimplex/libsimplex.so ./apps/android/app/src/main/cpp/libs/arm64-v8a/