Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
198 changes: 198 additions & 0 deletions design/api/current.api

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions design/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ dependencies {
implementation libs.composeDependencies.composePreview
implementation libs.composeDependencies.composeMaterial3
implementation libs.composeDependencies.composeMaterial2
implementation libs.composeDependencies.composeMaterialIconsCore
implementation libs.composeDependencies.composeNavigation
implementation libs.composeDependencies.composeConstraintLayout
implementation libs.composeDependencies.lifecycleRuntime
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.urlaunched.android.design.ui.accountbinding.constants

import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.ui.unit.dp
import com.urlaunched.android.design.resources.dimens.Dimens

internal object SocialAccountDimens {

val providerIconSize = 24.dp

private val defaultSocialAccountCardPadding = 14.dp

val defaultContentPadding = PaddingValues(
end = Dimens.spacingNormal,
start = defaultSocialAccountCardPadding,
top = defaultSocialAccountCardPadding,
bottom = defaultSocialAccountCardPadding
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.urlaunched.android.design.ui.accountbinding.models

import androidx.compose.ui.unit.Dp
import com.urlaunched.android.design.resources.dimens.Dimens

data class AccountBindingDimens(
val sectionsSpacing: Dp = Dimens.spacingBig,
val accountsSpacing: Dp = Dimens.spacingNormalSpecial
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.urlaunched.android.design.ui.accountbinding.models

import androidx.compose.ui.text.TextStyle

data class AccountBindingTextStyles(
val sectionTitleStyle: TextStyle = TextStyle(),
val providerStyle: TextStyle = TextStyle(),
val accountIdentifierStyle: TextStyle = TextStyle(),
val passwordStyle: TextStyle = TextStyle(),
val addAccountStyle: TextStyle = TextStyle(),
val currentAccountStyle: TextStyle = TextStyle(),
val deleteAccountStyle: TextStyle = TextStyle()
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.urlaunched.android.design.ui.accountbinding.models

data class AccountBindingTitles(
val passwordTitle: String,
val addAccountTitle: String,
val currentAccountTitle: String,
val deleteAccountTitle: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.urlaunched.android.design.ui.accountbinding.models

import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.unit.Dp
import com.urlaunched.android.design.resources.dimens.Dimens
import com.urlaunched.android.design.ui.accountbinding.constants.SocialAccountDimens
import com.urlaunched.android.design.ui.shadow.models.ShadowStyle

data class AccountCardStyle(
val containerColor: Color = Color.White,
val shape: Shape = RoundedCornerShape(Dimens.cornerRadiusBig),
val shadow: ShadowStyle? = null,
val socialContentPadding: PaddingValues = SocialAccountDimens.defaultContentPadding,
val passwordBasedContentPadding: PaddingValues = PaddingValues(Dimens.spacingNormal),
val supportingContentPadding: PaddingValues = PaddingValues(top = Dimens.spacingSmall),
val providerIconSize: Dp = SocialAccountDimens.providerIconSize,
val providerIconPadding: PaddingValues = PaddingValues(end = Dimens.spacingSmall),
val trailingIconSpacing: Dp = Dimens.spacingSmall
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.urlaunched.android.design.ui.accountbinding.models

data class AccountData(
val identifier: String?,
val isCurrent: Boolean
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.urlaunched.android.design.ui.accountbinding.models

import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import com.urlaunched.android.design.R

interface AccountProvider {
@get:StringRes
val nameResId: Int

@get:DrawableRes
val iconResId: Int?
get() = null
}

interface PasswordBasedAccountProvider : AccountProvider

class EmailAccountProvider(override val nameResId: Int = R.string.email_provider) : PasswordBasedAccountProvider

sealed class SocialAccountProvider : AccountProvider {
object Apple : SocialAccountProvider() {
override val nameResId = R.string.apple_provider
override val iconResId = R.drawable.ic_apple_icon
}

object Google : SocialAccountProvider() {
override val nameResId = R.string.google_provider
override val iconResId = R.drawable.ic_google_icon
}

object Facebook : SocialAccountProvider() {
override val nameResId = R.string.facebook_provider
override val iconResId = R.drawable.ic_facebook_icon
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.urlaunched.android.design.ui.accountbinding.models

import androidx.compose.foundation.layout.RowScope
import androidx.compose.runtime.Composable

data class AccountsSection(
val title: String,
val accounts: Map<AccountProvider, AccountData?>,
val trailingContent: (@Composable RowScope.() -> Unit)? = null
)
Loading