diff --git a/app/build.gradle b/app/build.gradle index 4b52352..96e23db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -120,6 +120,8 @@ dependencies { implementation 'com.google.android.exoplayer:exoplayer-core:2.11.4' implementation 'com.google.android.exoplayer:exoplayer-ui:2.11.4' + implementation 'com.hbb20:ccp:2.4.0' + // Koin for Android implementation "org.koin:koin-android:$koin_version" // Koin AndroidX Scope features diff --git a/app/src/main/java/app/nexd/android/ui/auth/register/RegisterDetailedViewModel.kt b/app/src/main/java/app/nexd/android/ui/auth/register/RegisterDetailedViewModel.kt index ce88b45..d443445 100644 --- a/app/src/main/java/app/nexd/android/ui/auth/register/RegisterDetailedViewModel.kt +++ b/app/src/main/java/app/nexd/android/ui/auth/register/RegisterDetailedViewModel.kt @@ -2,6 +2,7 @@ package app.nexd.android.ui.auth.register import android.util.Log import androidx.annotation.StringRes +import androidx.databinding.BindingAdapter import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import app.nexd.android.Api @@ -10,6 +11,7 @@ import app.nexd.android.R import app.nexd.android.api.model.BackendErrorEntry.ErrorCodeEnum.VALIDATION_PHONENUMBER_INVALID import app.nexd.android.api.model.UpdateUserDto import app.nexd.android.network.BackendError +import com.hbb20.CountryCodePicker import io.reactivex.android.schedulers.AndroidSchedulers class RegisterDetailedViewModel( @@ -24,6 +26,8 @@ class RegisterDetailedViewModel( object Finished : Progress() } + val countryCode = MutableLiveData("") + val phoneNumber = MutableLiveData("") val phoneNumberError = MutableLiveData(0) @@ -85,7 +89,7 @@ class RegisterDetailedViewModel( with(api) { userControllerUpdateMyself( UpdateUserDto() - .phoneNumber(phoneNumber.value) + .phoneNumber("" + countryCode.value + phoneNumber.value!!.substring(1)) .street(street.value) .number(houseNumber.value) .zipCode(zipCode.value) @@ -99,7 +103,8 @@ class RegisterDetailedViewModel( error.errorCodes.forEach { when (it) { VALIDATION_PHONENUMBER_INVALID -> { - phoneNumberError.value = R.string.error_message_input_validation_phone_number_invalid + phoneNumberError.value = + R.string.error_message_input_validation_phone_number_invalid } else -> { Log.e( @@ -125,4 +130,13 @@ class RegisterDetailedViewModel( } } + object CountryPickerBindings { + @JvmStatic + @BindingAdapter("selectedCountry") + fun selectedCountry(ccp: CountryCodePicker, result: MutableLiveData) { + with(ccp.selectedCountryCodeWithPlus) { + result.postValue(this) + } + } + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_register_detailed.xml b/app/src/main/res/layout/fragment_register_detailed.xml index 40e90cd..b02dc99 100644 --- a/app/src/main/res/layout/fragment_register_detailed.xml +++ b/app/src/main/res/layout/fragment_register_detailed.xml @@ -1,7 +1,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> @@ -19,14 +19,14 @@ android:id="@+id/register_detailed_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" app:navigationIcon="?attr/homeAsUpIndicator" /> + app:layout_constraintTop_toBottomOf="@id/register_detailed_toolbar"> + android:visibility="gone" /> + android:orientation="vertical" + android:paddingHorizontal="20dp"> - + android:orientation="horizontal"> + + + + + + android:text="@={viewModel.street}" /> + android:text="@={viewModel.houseNumber}" /> @@ -129,38 +150,36 @@ + android:text="@={viewModel.zipCode}" /> + android:text="@={viewModel.locality}" />