Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
4395f79
v0.40.10
konstantiniiv Oct 6, 2025
3bd1fec
l10n | Enhancement (#2786)
any-association Oct 6, 2025
6f36714
DROID-3914 Chats | Enhancement | Preloading media hotfixes (#2781)
uburoiubu Oct 6, 2025
6739a45
DROID-4045 Widgets | Diff fixes (#2788)
konstantiniiv Oct 7, 2025
c9f5e4a
DROID-4045 Widgets | Collapsed state by sections (#2789)
konstantiniiv Oct 7, 2025
d318703
DROID-4045 Widgets | Expanded states, kdoc (#2790)
konstantiniiv Oct 7, 2025
2cd6438
DROID-4016 Widgets | Data Space chat widget (#2791)
konstantiniiv Oct 7, 2025
bae8b7e
DROID-4055 Protocol | Integrate v0.44.3 (#2792)
konstantiniiv Oct 7, 2025
f72f27c
v0.40.11-beta
konstantiniiv Oct 7, 2025
12ac353
DROID-3970 Incentive | Fix ui (#2793)
konstantiniiv Oct 8, 2025
470c089
DROID-3985 Protocol | Null value handling when removing object covers…
konstantiniiv Oct 8, 2025
962836b
DROID-4010 Onboarding | Email screen placeholder (#2795)
konstantiniiv Oct 8, 2025
4994d36
DROID-4016 Onboarding | Splash screen, design fix (#2796)
konstantiniiv Oct 8, 2025
0357883
DROID-3830 Vault 2.0 | Notification behavior for chat spaces (#2797)
konstantiniiv Oct 8, 2025
f3e7861
DROID-3590 Vault 2.0 | Data Space with chats refactoring (#2798)
konstantiniiv Oct 8, 2025
53c62f9
DROID-4060 Protocol | Integrate 0.44.4 (#2799)
konstantiniiv Oct 8, 2025
76f3df1
v0.40.12-beta
konstantiniiv Oct 8, 2025
8320d86
DROID-4061 Vault 2.0 | Prevent showing errors during chat creation w…
konstantiniiv Oct 8, 2025
eb50307
DROID-4062 Protocol 0.44.5 (#2801)
konstantiniiv Oct 8, 2025
ab4e991
v0.40.13-beta
konstantiniiv Oct 8, 2025
20bca30
DROID-4004 App | Design | Update app icon (#2802)
uburoiubu Oct 8, 2025
56dcc0f
l10n | Enhancement (#2787)
any-association Oct 8, 2025
de2493a
DROID-4064 Invite link | Link default state (#2804)
konstantiniiv Oct 9, 2025
387b0fe
DROID-3864 Introduce | Chat space presentation (#2805)
konstantiniiv Oct 9, 2025
fc08a0f
DROID-3864 Chat introducing | Show badge on vault (#2806)
konstantiniiv Oct 9, 2025
15b8eb0
v0.40.14
konstantiniiv Oct 9, 2025
df1164e
DROID-3864 Introduce chats | fix dot l (#2807)
konstantiniiv Oct 10, 2025
b7692ca
DROID-4066 Protocol | Version 0.40.6 (#2808)
konstantiniiv Oct 10, 2025
3ef10f8
v0.40.15
konstantiniiv Oct 10, 2025
6a87b46
v0.40.16
konstantiniiv Oct 10, 2025
23d01d8
DROID-3864 Introduce chats | Fix reopen (#2809)
konstantiniiv Oct 10, 2025
0b18c91
v0.40.17
konstantiniiv Oct 10, 2025
757d325
DROID-3710 App | Tech | Fix license setup
uburoiubu Oct 10, 2025
450d3c5
DROID-3710 App | Tech | Fix license setup - 2
uburoiubu Oct 10, 2025
02f4325
DROID-3710 App | Tech | Fix license setup - 3
uburoiubu Oct 10, 2025
39c3a14
DROID-3710 App | Tech | Set mandatory email collection to true
uburoiubu Oct 10, 2025
aa4aa5e
#2810 | Fix | Add back monochrome icon with new logo path (#2811)
ThatOneCalculator Oct 11, 2025
f55a598
DROID-3983 Chats | Analytics | Add analytics for the introduce-chats …
uburoiubu Oct 11, 2025
c5d1010
DROID-3655 Spaces | Analytics | Add analytics for space creation and …
uburoiubu Oct 12, 2025
17db6b2
v0.40.18
uburoiubu Oct 12, 2025
07ac742
DROID-3710 App | Tech | Add monochrome icon layer
uburoiubu Oct 12, 2025
a9a7bf6
v0.40.19
uburoiubu Oct 12, 2025
56800d9
DROID-3710 App | Tech | Remove 'beta' postfix
uburoiubu Oct 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ jobs:
--project-path . \
--who "CI" \
--why "MIT (verified manually from anyproto/any-crypto-kotlin)"
license_finder permitted_licenses add "ML Kit Terms of Service" \
--project-path . \
--who "CI" \
--why "Google ML Kit components required; legal reviewed"

# finally run the scan
license_finder --gradle-command="./gradlew \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ jobs:
--project-path . \
--who "CI" \
--why "MIT (verified manually from anyproto/any-crypto-kotlin)"
license_finder permitted_licenses add "ML Kit Terms of Service" \
--project-path . \
--who "CI" \
--why "Google ML Kit components required; legal reviewed"

# finally run the scan
license_finder --gradle-command="./gradlew \
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ jobs:
--project-path . \
--who "CI" \
--why "MIT (verified manually from anyproto/any-crypto-kotlin)"
license_finder permitted_licenses add "ML Kit Terms of Service" \
--project-path . \
--who "CI" \
--why "Google ML Kit components required; legal reviewed"

# finally run the scan
license_finder --gradle-command="./gradlew \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ object EventsDictionary {
const val clickLogin = "ClickLogin"
const val screenOnboardingEnterEmail = "ScreenOnboardingEnterEmail"
const val screenOnboardingSkipEmail = "ScreenOnboardingSkipEmail"
const val onboardingTooltip = "OnboardingTooltip"

//Primitives
const val logScreenEditType = "ScreenEditType"
Expand Down Expand Up @@ -461,6 +462,7 @@ object EventsPropertiesKey {
const val tab = "tab"
const val route = "route"
const val type = "type"
const val uxType = "uxType"
const val format = "format"
const val objectType = "objectType"
const val length = "length"
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ android {
testInstrumentationRunner config.test_runner
buildConfigField "boolean", "USE_NEW_WINDOW_INSET_API", "true"
buildConfigField "boolean", "USE_EDGE_TO_EDGE", "true"
buildConfigField "boolean", "MANDATORY_EMAIL_COLLECTION", "false"
buildConfigField "boolean", "MANDATORY_EMAIL_COLLECTION", "true"
buildConfigField "boolean", "SHOW_CHATS", "true"
buildConfigField "boolean", "LOG_FROM_MW_LIBRARY", localProperties.getProperty("LOG_FROM_MW_LIBRARY", "false")
buildConfigField "boolean", "LOG_MW_INTERACTION", localProperties.getProperty("LOG_MW_INTERACTION", "true")
Expand Down
2 changes: 1 addition & 1 deletion app/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version.versionMajor=0
version.versionMinor=40
version.versionPatch=9
version.versionPatch=19
version.useDatedVersionName=false
3 changes: 1 addition & 2 deletions app/src/debug/res/drawable/ic_launcher_foreground.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="110"
Expand All @@ -14,7 +13,7 @@
<path
android:pathData="M62.5,45.43V38H41.5V45.5L62.5,45.43ZM62.5,45.5H70.5V72H62.5V45.5ZM48.5,72.5C54.58,72.5 59.5,67.58 59.5,61.5C59.5,55.42 54.58,50.5 48.5,50.5C42.42,50.5 37.5,55.42 37.5,61.5C37.5,67.58 42.42,72.5 48.5,72.5Z"
android:fillType="evenOdd"
android:fillColor="#000000">
android:fillColor="#FFFFFF">
</path>
</group>
</group>
Expand Down
13 changes: 13 additions & 0 deletions app/src/debug/res/drawable/ic_launcher_monochrome.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="110dp"
android:height="110dp"
android:viewportWidth="110"
android:viewportHeight="110"
>
<path
android:pathData="M 48.5 51.5 C 54.02 51.5 58.5 55.98 58.5 61.5 C 58.5 67.02 54.02 71.5 48.5 71.5 C 42.98 71.5 38.5 67.02 38.5 61.5 C 38.5 55.98 42.98 51.5 48.5 51.5 Z M 68.25 46 C 69.22 46 70 46.78 70 47.75 L 70 69.25 C 70 70.22 69.22 71 68.25 71 L 63.75 71 C 62.78 71 62 70.22 62 69.25 L 62 47.75 C 62 46.78 62.78 46 63.75 46 L 68.25 46 Z M 60.25 38 C 61.22 38 62 38.78 62 39.75 L 62 44.25 C 62 45.22 61.22 46 60.25 46 L 45.25 46 C 44.28 46 43.5 45.22 43.5 44.25 L 43.5 39.75 C 43.5 38.78 44.28 38 45.25 38 L 60.25 38 Z"
android:fillColor="#000000"
/>
</vector>
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.anytypeio.anytype.di.main.ConfigModule.DEFAULT_APP_COROUTINE_SCOPE
import com.anytypeio.anytype.domain.auth.interactor.CheckAuthorizationStatus
import com.anytypeio.anytype.domain.auth.model.AuthStatus
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
import com.anytypeio.anytype.domain.base.fold
import com.anytypeio.anytype.domain.device.DeviceTokenStoringService
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
Expand Down Expand Up @@ -56,9 +57,9 @@ class AnytypePushService : FirebaseMessagingService() {

private fun checkAuthorizationStatus(message: RemoteMessage) {
scope.launch(dispatchers.io) {
checkAuthorizationStatus(Unit).process(
failure = { e -> Timber.e(e, "Error while checking auth status") },
success = { status ->
checkAuthorizationStatus.async(Unit).fold(
onFailure = { e -> Timber.e(e, "Error while checking auth status") },
onSuccess = { (status, account) ->
if (status == AuthStatus.UNAUTHORIZED) {
Timber.w("User is unauthorized, skipping push message processing")
// If the user is unauthorized, we do not process push messages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.anytypeio.anytype.domain.auth.interactor.ResumeAccount
import com.anytypeio.anytype.domain.auth.repo.AuthRepository
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
import com.anytypeio.anytype.domain.config.ConfigStorage
import com.anytypeio.anytype.domain.config.ObserveShowSpacesIntroduction
import com.anytypeio.anytype.domain.config.UserSettingsRepository
import com.anytypeio.anytype.domain.deeplink.PendingIntentStore
import com.anytypeio.anytype.domain.device.PathProvider
Expand All @@ -24,6 +25,7 @@ import com.anytypeio.anytype.domain.notifications.SystemNotificationService
import com.anytypeio.anytype.domain.platform.InitialParamsProvider
import com.anytypeio.anytype.domain.subscriptions.GlobalSubscriptionManager
import com.anytypeio.anytype.domain.theme.GetTheme
import com.anytypeio.anytype.domain.vault.SetSpacesIntroductionShown
import com.anytypeio.anytype.domain.wallpaper.ObserveSpaceWallpaper
import com.anytypeio.anytype.domain.workspace.SpaceManager
import com.anytypeio.anytype.other.DefaultSpaceInviteResolver
Expand Down Expand Up @@ -88,7 +90,10 @@ object MainEntryModule {
observeSpaceWallpaper: ObserveSpaceWallpaper,
urlBuilder: UrlBuilder,
appShutdown: AppShutdown,
scope: CoroutineScope
scope: CoroutineScope,
observeShowSpacesIntroduction: ObserveShowSpacesIntroduction,
setSpacesIntroductionShown: SetSpacesIntroductionShown,
appInfo: com.anytypeio.anytype.core_utils.tools.AppInfo
): MainViewModelFactory = MainViewModelFactory(
resumeAccount = resumeAccount,
analytics = analytics,
Expand All @@ -111,7 +116,10 @@ object MainEntryModule {
observeSpaceWallpaper = observeSpaceWallpaper,
urlBuilder = urlBuilder,
appShutdown = appShutdown,
scope = scope
scope = scope,
observeShowSpacesIntroduction = observeShowSpacesIntroduction,
setSpacesIntroductionShown = setSpacesIntroductionShown,
appInfo = appInfo
)

@JvmStatic
Expand Down Expand Up @@ -181,8 +189,9 @@ object MainEntryModule {
@PerScreen
@Provides
fun provideCheckAuthStatus(
repo: AuthRepository
): CheckAuthorizationStatus = CheckAuthorizationStatus(repo)
repo: AuthRepository,
dispatchers: AppCoroutineDispatchers
): CheckAuthorizationStatus = CheckAuthorizationStatus(repo, dispatchers)

@JvmStatic
@PerScreen
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
import com.anytypeio.anytype.domain.block.repo.BlockRepository
import com.anytypeio.anytype.domain.config.UserSettingsRepository
import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
import com.anytypeio.anytype.domain.search.ProfileSubscriptionManager
import com.anytypeio.anytype.domain.workspace.SpaceManager
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
import com.anytypeio.anytype.presentation.spaces.CreateSpaceViewModel
Expand Down Expand Up @@ -55,4 +57,6 @@ interface CreateSpaceDependencies : ComponentDependencies {
fun analyticSpaceHelper(): AnalyticSpaceHelperDelegate
fun spaceViews(): SpaceViewSubscriptionContainer
fun userSettingsRepo(): UserSettingsRepository
fun permissions(): UserPermissionProvider
fun profileContainer(): ProfileSubscriptionManager
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import com.anytypeio.anytype.domain.resources.StringResourceProvider
import com.anytypeio.anytype.domain.search.ProfileSubscriptionManager
import com.anytypeio.anytype.domain.wallpaper.GetSpaceWallpapers
import com.anytypeio.anytype.domain.workspace.SpaceManager
import com.anytypeio.anytype.core_utils.tools.AppInfo
import com.anytypeio.anytype.other.DefaultSpaceInviteResolver
import com.anytypeio.anytype.presentation.navigation.DeepLinkToObjectDelegate
import com.anytypeio.anytype.presentation.notifications.NotificationPermissionManager
Expand Down Expand Up @@ -119,5 +120,6 @@ interface VaultComponentDependencies : ComponentDependencies {
fun provideChatEventChannel(): ChatEventChannel
fun provideStorelessSubscriptionContainer(): StorelessSubscriptionContainer
fun provideVaultChatPreviewContainer(): ChatPreviewContainer
fun appInfo(): AppInfo
@Named(DEFAULT_APP_COROUTINE_SCOPE) fun scope(): CoroutineScope
}
25 changes: 14 additions & 11 deletions app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,6 @@ private fun WidgetList(
onDropDownMenuAction = { action ->
onWidgetMenuAction(item.id, action)
},
mode = mode,
onWidgetSourceClicked = onWidgetSourceClicked,
)
}
Expand Down Expand Up @@ -613,6 +612,7 @@ private fun WidgetList(

WidgetView.Section.ObjectTypes -> {
SpaceObjectTypesSectionHeader(
mode = mode,
onCreateNewTypeClicked = onCreateNewTypeClicked,
onSectionClicked = { onSectionClicked(SECTION_OBJECT_TYPE) }
)
Expand Down Expand Up @@ -658,6 +658,7 @@ fun WidgetEditModeButton(

@Composable
private fun SpaceObjectTypesSectionHeader(
mode: InteractionMode,
onSectionClicked: () -> Unit,
onCreateNewTypeClicked: () -> Unit
) {
Expand All @@ -675,16 +676,18 @@ private fun SpaceObjectTypesSectionHeader(
style = Caption1Medium,
color = colorResource(id = R.color.control_transparent_secondary)
)
Image(
painter = painterResource(id = R.drawable.ic_default_plus),
contentDescription = "Create new type",
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(end = 20.dp, bottom = 12.dp)
.size(18.dp)
.noRippleClickable { onCreateNewTypeClicked() },
contentScale = ContentScale.Inside
)
if (mode !is InteractionMode.ReadOnly) {
Image(
painter = painterResource(id = R.drawable.ic_default_plus),
contentDescription = "Create new type",
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(end = 20.dp, bottom = 12.dp)
.size(18.dp)
.noRippleClickable { onCreateNewTypeClicked() },
contentScale = ContentScale.Inside
)
}
}
}

Expand Down
32 changes: 32 additions & 0 deletions app/src/main/java/com/anytypeio/anytype/ui/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import androidx.activity.SystemBarStyle
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentContainerView
Expand Down Expand Up @@ -74,6 +76,9 @@ import javax.inject.Inject
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import timber.log.Timber
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy
import com.anytypeio.anytype.ui.vault.SpacesIntroductionScreen

class MainActivity : AppCompatActivity(R.layout.activity_main), AppNavigation.Provider {

Expand Down Expand Up @@ -116,6 +121,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main), AppNavigation.Pr
)
inject()
setupTheme()
setupFeatureIntroductions()

if (savedInstanceState != null) vm.onRestore()

Expand Down Expand Up @@ -777,6 +783,32 @@ class MainActivity : AppCompatActivity(R.layout.activity_main), AppNavigation.Pr

override fun nav(): AppNavigation = navigator

/**
* Sets up feature introductions using Compose.
* Shows SpacesIntroductionScreen only after account starts and only to existing users.
*/
private fun setupFeatureIntroductions() {
findViewById<ComposeView>(R.id.composeOverlay).apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent {
val showSpacesIntroduction by vm.showSpacesIntroduction.collectAsState()
if (showSpacesIntroduction != null) {
SpacesIntroductionScreen(
onDismiss = {
vm.onSpacesIntroductionDismissed()
},
onComplete = {
vm.onSpacesIntroductionDismissed()
},
onPageChanged = { step ->
vm.sendOnboardingTooltipEvent(step)
}
)
}
}
}
}

fun inject() {
componentManager().mainEntryComponent.get().inject(this)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,13 +192,12 @@ private fun OnboardingEmailScreen(
isFocused = focusState.isFocused
},
placeholder = {
if (innerValue.text.isEmpty() && !isFocused) {
Text(
text = stringResource(id = R.string.onboarding_enter_email),
style = PreviewTitle1Regular,
color = colorResource(id = R.color.text_tertiary)
)
}
Text(
modifier = Modifier.padding(start = 1.dp),
text = stringResource(id = R.string.onboarding_enter_email),
style = PreviewTitle1Regular,
color = colorResource(id = R.color.text_tertiary)
)
},
textStyle = PreviewTitle1Regular.copy(
color = colorResource(id = R.color.text_primary)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import com.anytypeio.anytype.core_utils.ext.toast
import com.anytypeio.anytype.core_utils.ui.BaseBottomSheetComposeFragment
import com.anytypeio.anytype.di.common.componentManager
import com.anytypeio.anytype.presentation.spaces.CreateSpaceViewModel
import com.anytypeio.anytype.presentation.spaces.SpaceIconView
import com.anytypeio.anytype.ui.chats.ChatFragment
import com.anytypeio.anytype.ui.editor.EditorFragment
import com.anytypeio.anytype.ui.home.HomeScreenFragment
Expand Down
Loading