Skip to content
Snippets Groups Projects
Commit 7bf8a921 authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Cleaned up username registration fragment UI

parent 7e436b0a
No related branches found
No related tags found
No related merge requests found
...@@ -2,9 +2,26 @@ package io.elixxir.core.ui.util ...@@ -2,9 +2,26 @@ package io.elixxir.core.ui.util
import android.widget.TextView import android.widget.TextView
import androidx.databinding.BindingAdapter import androidx.databinding.BindingAdapter
import androidx.lifecycle.LiveData
import androidx.lifecycle.findViewTreeLifecycleOwner
import com.google.android.material.textfield.TextInputLayout
import io.elixxir.core.ui.model.UiText import io.elixxir.core.ui.model.UiText
@BindingAdapter("uiText") @BindingAdapter("uiText")
fun TextView.setUiText(uiText: UiText) { fun TextView.setUiText(uiText: UiText) {
text = uiText.asString(context) text = uiText.asString(context)
} }
@BindingAdapter("uiText")
fun TextView.setUiText(uiTextLive: LiveData<UiText>) {
findViewTreeLifecycleOwner()?.let {
uiTextLive.observe(it) { text ->
setUiText(text)
}
}
}
@BindingAdapter("error")
fun TextInputLayout.setUiTextError(uiText: UiText) {
error = uiText.asString(context)
}
\ No newline at end of file
<vector android:height="24dp" android:tint="@color/brand_default"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M11,7h2v2h-2zM11,11h2v6h-2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
</vector>
...@@ -13,13 +13,18 @@ ...@@ -13,13 +13,18 @@
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item> <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
</style> </style>
<style name="AppFont" parent="TextAppearance.AppCompat"> <style name="RegularFont" parent="TextAppearance.AppCompat">
<item name="android:fontFamily">@font/mulish_regular</item> <item name="android:fontFamily">@font/mulish_regular</item>
<item name="fontFamily">@font/mulish_regular</item> <item name="fontFamily">@font/mulish_regular</item>
</style> </style>
<style name="BoldFont" parent="TextAppearance.AppCompat">
<item name="android:fontFamily">@font/mulish_bold</item>
<item name="fontFamily">@font/mulish_bold</item>
</style>
<!-- Base text style --> <!-- Base text style -->
<style name="BasicText" parent="AppFont"> <style name="BasicText" parent="RegularFont">
<item name="android:textColor">@color/neutral_body</item> <item name="android:textColor">@color/neutral_body</item>
<item name="android:textColorLink">@color/accent_safe</item> <item name="android:textColorLink">@color/accent_safe</item>
<item name="android:textColorHint">@color/neutral_weak</item> <item name="android:textColorHint">@color/neutral_weak</item>
...@@ -38,7 +43,7 @@ ...@@ -38,7 +43,7 @@
</style> </style>
<!-- Was: dialog_title --> <!-- Was: dialog_title -->
<style name="SubtitleText" parent="AppFont"> <style name="SubtitleText" parent="RegularFont">
<item name="android:layout_width">0dp</item> <item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginStart">@dimen/inner_view_marginVertical</item> <item name="android:layout_marginStart">@dimen/inner_view_marginVertical</item>
...@@ -50,7 +55,7 @@ ...@@ -50,7 +55,7 @@
</style> </style>
<!-- Was: dialog_button --> <!-- Was: dialog_button -->
<style name="OutlinedButton" parent="AppFont"> <style name="OutlinedButton" parent="RegularFont">
<item name="android:layout_width">@dimen/button_layoutWidth</item> <item name="android:layout_width">@dimen/button_layoutWidth</item>
<item name="android:layout_height">@dimen/button_layoutHeight</item> <item name="android:layout_height">@dimen/button_layoutHeight</item>
<item name="android:layout_marginStart">@dimen/inner_view_marginHorizontal</item> <item name="android:layout_marginStart">@dimen/inner_view_marginHorizontal</item>
...@@ -70,7 +75,7 @@ ...@@ -70,7 +75,7 @@
</style> </style>
<!-- Was: dialog_body --> <!-- Was: dialog_body -->
<style name="BodyText" parent="AppFont"> <style name="BodyText" parent="RegularFont">
<item name="android:layout_width">0dp</item> <item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginStart">@dimen/inner_view_marginHorizontal</item> <item name="android:layout_marginStart">@dimen/inner_view_marginHorizontal</item>
...@@ -82,7 +87,7 @@ ...@@ -82,7 +87,7 @@
<item name="android:focusable">true</item> <item name="android:focusable">true</item>
</style> </style>
<style name="SplashText" parent="AppFont"> <style name="SplashText" parent="RegularFont">
<item name="android:layout_width">0dp</item> <item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginStart">@dimen/splash_text_horizontal_margin</item> <item name="android:layout_marginStart">@dimen/splash_text_horizontal_margin</item>
...@@ -95,7 +100,7 @@ ...@@ -95,7 +100,7 @@
</style> </style>
<!-- Was: registration_step_next_button --> <!-- Was: registration_step_next_button -->
<style name="ButtonFilled" parent="AppFont"> <style name="ButtonFilled" parent="RegularFont">
<item name="android:layout_width">0dp</item> <item name="android:layout_width">0dp</item>
<item name="android:layout_height">@dimen/registration_button_height</item> <item name="android:layout_height">@dimen/registration_button_height</item>
<item name="android:layout_marginStart">@dimen/registration_horizontal_margin</item> <item name="android:layout_marginStart">@dimen/registration_horizontal_margin</item>
...@@ -106,4 +111,32 @@ ...@@ -106,4 +111,32 @@
<item name="android:backgroundTint">@color/selector_btn_default</item> <item name="android:backgroundTint">@color/selector_btn_default</item>
<item name="android:textAllCaps">false</item> <item name="android:textAllCaps">false</item>
</style> </style>
<!-- Was: xx_title, bold_title -->
<style name="TitleBold" parent="BoldFont">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginStart">@dimen/registration_horizontal_margin</item>
<item name="android:layout_marginEnd">@dimen/registration_horizontal_margin</item>
<item name="android:layout_marginTop">@dimen/registration_vertical_margin</item>
<item name="android:textSize">@dimen/registration_title_text_size</item>
<item name="android:textColor">@color/neutral_active</item>
</style>
<!-- Was: registration_text_input -->
<style name="OutlinedTextInput" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginStart">@dimen/registration_horizontal_margin</item>
<item name="android:layout_marginTop">@dimen/registration_edittext_top_margin</item>
<item name="android:layout_marginEnd">@dimen/registration_horizontal_margin</item>
<item name="errorEnabled">true</item>
<item name="android:fontFamily">@font/mulish_regular</item>
<item name="fontFamily">@font/mulish_regular</item>
</style>
<!-- Was: registration_text_input_edittext -->
<style name="TextInputEditTextStyle" parent="RegularFont">
<item name="android:singleLine">true</item>
</style>
</resources> </resources>
\ No newline at end of file
package io.elixxir.data.userdiscovery.data package io.elixxir.data.userdiscovery.data
import io.elixxir.data.userdiscovery.UserRepository import io.elixxir.data.userdiscovery.UserRepository
import javax.inject.Inject
class UserDataSource : UserRepository { class UserDataSource @Inject internal constructor(): UserRepository {
override suspend fun registerUsername(username: String): Result<Unit> { override suspend fun registerUsername(username: String): Result<Unit> {
// Save name to preferences if successful // Save name to preferences if successful
TODO("Not yet implemented") TODO("Not yet implemented")
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
type="io.elixxir.feature.registration.registration.username.UsernameRegistrationUI" /> type="io.elixxir.feature.registration.registration.username.UsernameRegistrationUI" />
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout style="@style/registration_flow_root_view"> <androidx.constraintlayout.widget.ConstraintLayout style="@style/RegistrationRootView">
<TextView <TextView
android:id="@+id/registration_username_title_text" android:id="@+id/registration_username_title_text"
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/registration_username_body_text" app:layout_constraintBottom_toTopOf="@id/registration_username_body_text"
style="@style/bold_title" style="@style/TitleBold"
tools:text="@string/registration_username_title"/> tools:text="@string/registration_username_title"/>
<TextView <TextView
...@@ -29,11 +29,11 @@ ...@@ -29,11 +29,11 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registration_username_title_text" app:layout_constraintTop_toBottomOf="@+id/registration_username_title_text"
app:layout_constraintBottom_toTopOf="@id/registration_username_input" app:layout_constraintBottom_toTopOf="@id/registration_username_input"
style="@style/dialog_body" /> style="@style/BodyText" />
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/registration_username_input" android:id="@+id/registration_username_input"
style="@style/registration_text_input" style="@style/OutlinedTextInput"
android:enabled="@{ui.usernameInputEnabled}" android:enabled="@{ui.usernameInputEnabled}"
app:endIconDrawable="@drawable/ic_outline_info_24" app:endIconDrawable="@drawable/ic_outline_info_24"
app:endIconMode="custom" app:endIconMode="custom"
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
app:layout_constraintTop_toBottomOf="@+id/registration_username_body_text"> app:layout_constraintTop_toBottomOf="@+id/registration_username_body_text">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
style="@style/registration_text_input_edittext" style="@style/TextInputEditTextStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/registration_choose_username_hint" android:hint="@string/registration_choose_username_hint"
...@@ -55,9 +55,9 @@ ...@@ -55,9 +55,9 @@
app:inputFilters="@{ui.usernameFilters}" /> app:inputFilters="@{ui.usernameFilters}" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<io.xxlabs.messenger.support.view.SingleClickButton <io.elixxir.core.ui.view.SingleClickButton
android:id="@+id/registration_username_next_btn" android:id="@+id/registration_username_next_btn"
style="@style/registration_step_next_button" style="@style/ButtonFilled"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:enabled="@{ui.usernameNextButtonEnabled}" android:enabled="@{ui.usernameNextButtonEnabled}"
android:onClick="@{() -> ui.onUsernameNextClicked()}" android:onClick="@{() -> ui.onUsernameNextClicked()}"
...@@ -94,9 +94,9 @@ ...@@ -94,9 +94,9 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/registration_username_restore_btn" app:layout_constraintBottom_toTopOf="@id/registration_username_restore_btn"
style="@style/dialog_title" /> style="@style/SubtitleText" />
<io.xxlabs.messenger.support.view.SingleClickButton <io.elixxir.core.ui.view.SingleClickButton
android:id="@+id/registration_username_restore_btn" android:id="@+id/registration_username_restore_btn"
android:text="@string/registration_username_restore_button" android:text="@string/registration_username_restore_button"
android:onClick="@{() -> ui.onRestoreAccountClicked()}" android:onClick="@{() -> ui.onRestoreAccountClicked()}"
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
style="@style/dialog_button" /> style="@style/OutlinedButton" />
<ProgressBar <ProgressBar
android:id="@+id/registration_username_progressbar" android:id="@+id/registration_username_progressbar"
......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Was: registration_flow_root_view -->
<style name="RegistrationRootView">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:background">@color/background</item>
</style>
</resources>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment