polish ui and refactor continueButton

This commit is contained in:
Chumva 2018-07-06 18:47:47 +03:00
parent aded984134
commit 69c668274c
5 changed files with 69 additions and 55 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View file

@ -32,7 +32,6 @@
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dialog_welcome_padding_horizontal"
android:layout_marginRight="@dimen/dialog_welcome_padding_horizontal"
android:layout_marginTop="85dp"
android:orientation="vertical"
android:visibility="visible">
@ -40,7 +39,8 @@
android:id="@+id/welcome_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="70dp"
android:layout_marginBottom="@dimen/dialog_welcome_title_bottom_padding"
android:layout_marginTop="@dimen/dialog_welcome_title_top_margin"
android:letterSpacing="-0.03"
android:text="Hello!"
android:textColor="?attr/ctrl_active_color"
@ -52,8 +52,8 @@
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:letterSpacing="0.0156"
android:lineSpacingMultiplier="1.25"
android:letterSpacing="@dimen/text_description_letter_spacing"
android:lineSpacingMultiplier="@dimen/text_description_line_spacing_multiplier"
android:textColor="@color/app_bar_title_light"
android:textSize="@dimen/descr_text_size"
tools:text="@string/welcome_descr" />
@ -83,7 +83,7 @@
android:background="?attr/card_bg_color"
android:fitsSystemWindows="true"
android:orientation="vertical"
android:visibility="gone"
android:visibility="visible"
tools:visibility="visible">
<LinearLayout
@ -138,14 +138,14 @@
android:id="@+id/login_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_padding_standard"
android:layout_marginBottom="@dimen/dialog_description_margin"
android:layout_marginEnd="@dimen/dialog_welcome_padding_horizontal"
android:layout_marginLeft="@dimen/dialog_padding_horizontal"
android:layout_marginRight="@dimen/dialog_welcome_padding_horizontal"
android:layout_marginStart="@dimen/dialog_padding_horizontal"
android:layout_marginTop="@dimen/content_padding_standard"
android:letterSpacing="0.0156"
android:lineSpacingMultiplier="1.25"
android:layout_marginTop="@dimen/dialog_description_margin"
android:letterSpacing="@dimen/text_description_letter_spacing"
android:lineSpacingMultiplier="@dimen/text_description_line_spacing_multiplier"
android:textColor="@color/app_bar_title_light"
android:textSize="@dimen/descr_text_size"
tools:text="@string/already_registered_in_telegram" />
@ -162,6 +162,7 @@
android:id="@+id/no_telegram"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_padding_half"
android:background="@drawable/btn_border_bg"
android:gravity="center_vertical"
android:visibility="gone"
@ -171,18 +172,24 @@
android:id="@+id/no_telegram_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_padding_standard"
android:layout_marginBottom="10dp"
android:layout_marginLeft="@dimen/content_padding_standard"
android:layout_marginRight="@dimen/content_padding_standard"
android:layout_marginTop="@dimen/content_padding_standard"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="2"
android:letterSpacing="@dimen/text_description_letter_spacing"
android:text="@string/do_not_have_telegram"
android:textColor="?attr/ctrl_active_color"
android:textSize="@dimen/text_button_text_size"
app:typeface="@string/font_roboto_mono_bold" />
android:textSize="@dimen/hint_text_size"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0.3"
android:background="@color/white" />
<ImageView
android:id="@+id/no_telegram_button"
@ -193,29 +200,31 @@
android:contentDescription="@string/do_not_have_telegram"
android:scaleType="centerInside"
android:src="@drawable/ic_arrow_forward"
android:tint="?attr/icon_color"
tools:tint="@color/icon_light" />
android:tint="?attr/ctrl_active_color"
tools:tint="@color/ctrl_active_light" />
</LinearLayout>
<net.osmand.telegram.ui.views.TextViewEx
android:id="@+id/login_input_type_descr"
android:id="@+id/edittext_descr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_padding_standard"
android:layout_marginBottom="@dimen/dialog_description_margin"
android:layout_marginLeft="@dimen/content_padding_standard"
android:layout_marginRight="@dimen/content_padding_standard"
android:layout_marginTop="@dimen/content_padding_big"
android:letterSpacing="@dimen/text_description_letter_spacing"
android:text="@string/enter_phone_number"
android:textColor="@color/app_bar_title_light"
android:textSize="@dimen/descr_text_size"
app:typeface="@string/font_roboto_mono_bold" />
android:textSize="@dimen/descr_text_size" />
<LinearLayout
android:id="@+id/enter_phone_number_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="visible">
android:visibility="visible"
tools:visibility="visible">
<studio.carbonylgroup.textfieldboxes.TextFieldBoxes
android:layout_width="match_parent"
@ -238,9 +247,11 @@
android:layout_marginBottom="@dimen/content_padding_standard"
android:layout_marginLeft="@dimen/content_padding_standard"
android:layout_marginRight="@dimen/content_padding_standard"
android:layout_marginTop="@dimen/content_padding_standard"
android:layout_marginTop="10dp"
android:letterSpacing="@dimen/text_description_letter_spacing"
android:lineSpacingMultiplier="@dimen/text_description_line_spacing_multiplier"
android:text="@string/phone_number_descr"
android:textSize="@dimen/descr_text_size" />
android:textSize="@dimen/hint_text_size" />
</LinearLayout>
@ -250,7 +261,8 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/content_padding_standard"
android:visibility="gone">
android:visibility="gone"
tools:visibility="gone">
<studio.carbonylgroup.textfieldboxes.TextFieldBoxes
android:layout_width="match_parent"
@ -309,6 +321,8 @@
android:layout_marginBottom="@dimen/content_padding_standard"
android:layout_marginLeft="@dimen/content_padding_standard"
android:layout_marginRight="@dimen/content_padding_standard"
android:letterSpacing="@dimen/text_description_letter_spacing"
android:lineSpacingMultiplier="@dimen/text_description_line_spacing_multiplier"
android:textColor="@color/app_bar_title_light"
android:textSize="@dimen/descr_text_size"
tools:text="@string/get_telegram_description_continue" />
@ -320,7 +334,7 @@
android:layout_marginBottom="@dimen/content_padding_standard"
android:layout_marginLeft="@dimen/content_padding_standard"
android:layout_marginRight="@dimen/content_padding_standard"
android:src="@drawable/google_play_badge" />
android:src="@drawable/img_google_play_badge" />
<TextView
android:id="@+id/get_telegram_description_second"

View file

@ -35,5 +35,5 @@
<color name="primary_btn_text_dark">#cccccc</color>
<color name="app_bar_title_light">#333333</color>
</resources>

View file

@ -15,12 +15,13 @@
<dimen name="dialog_padding_horizontal">64dp</dimen>
<dimen name="dialog_padding_horizontal_edit">44dp</dimen>
<dimen name="dialog_welcome_padding_horizontal">48dp</dimen>
<dimen name="dialog_description_margin">12dp</dimen>
<dimen name="dialog_button_height">36dp</dimen>
<dimen name="dialog_button_radius">4dp</dimen>
<dimen name="dialog_button_bottom_padding">40dp</dimen>
<dimen name="dialog_welcome_title_bottom_padding">96dp</dimen>
<dimen name="dialog_welcome_title_top_padding">120dp</dimen>
<dimen name="dialog_welcome_title_bottom_padding">70dp</dimen>
<dimen name="dialog_welcome_title_top_margin">85dp</dimen>
<dimen name="list_item_height">56dp</dimen>
<dimen name="list_item_height_min">48dp</dimen>
@ -46,6 +47,8 @@
<dimen name="buttons_bottom_bar_height">56dp</dimen>
<dimen name="text_button_letter_spacing" format="float">0.07</dimen>
<dimen name="text_description_letter_spacing" format="float">0.0156</dimen>
<dimen name="text_description_line_spacing_multiplier" format="float">1.25</dimen>
<!-- Text sizes -->
@ -55,6 +58,7 @@
<dimen name="title_login_text_size">20sp</dimen>
<dimen name="title_welcome_text_size">32sp</dimen>
<dimen name="descr_text_size">16sp</dimen>
<dimen name="hint_text_size">14sp</dimen>
<dimen name="list_item_title_text_size">16sp</dimen>
<dimen name="list_item_description_text_size">12sp</dimen>

View file

@ -23,6 +23,7 @@ import android.view.ViewGroup
import android.text.Editable
import android.text.Html
import android.text.TextWatcher
import android.util.TypedValue
class LoginDialogFragment : DialogFragment() {
@ -194,10 +195,11 @@ class LoginDialogFragment : DialogFragment() {
if (layout != null) {
val titleView: TextView? = view.findViewById(R.id.login_title)
val descriptionView: TextView? = view.findViewById(R.id.login_description)
val inputTypeDescriptionView: TextView? = view.findViewById(R.id.login_input_type_descr)
val inputTypeDescriptionView: TextView? = view.findViewById(R.id.edittext_descr)
if (t.inputTypeDescriptionId != 0) {
val inputTypeDescription = getText(t.inputTypeDescriptionId).toString() + ":"
inputTypeDescriptionView?.text = inputTypeDescription
inputTypeDescriptionView?.visibility = View.VISIBLE
} else {
inputTypeDescriptionView?.visibility = View.GONE
}
@ -206,8 +208,7 @@ class LoginDialogFragment : DialogFragment() {
descriptionView?.text = getText(t.descriptionId)
layout.visibility = View.VISIBLE
val editText: ExtendedEditText? = layout.findViewById<ExtendedEditText>(t.editorId)
val continueButton: Button? = view.findViewById(R.id.continue_button)
val editText: ExtendedEditText? = layout.findViewById(t.editorId)
if (editText != null && !showWelcomeDialog) {
editText.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
@ -225,14 +226,11 @@ class LoginDialogFragment : DialogFragment() {
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun afterTextChanged(s: Editable) {
if (continueButton != null) {
changeContinueButtonEnabled(!s.isEmpty())
}
changeContinueButtonEnabled(!s.isEmpty())
}
})
if (continueButton != null) {
changeContinueButtonEnabled(!editText.text.isEmpty())
}
changeContinueButtonEnabled(!editText.text.isEmpty())
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16F)
}
val noTelegramViewContainer: LinearLayout? = view.findViewById(R.id.no_telegram)
@ -258,7 +256,7 @@ class LoginDialogFragment : DialogFragment() {
view.findViewById<TextView>(R.id.get_telegram_description_first)?.text = getText(R.string.get_telegram_description_continue)
view.findViewById<TextView>(R.id.get_telegram_description_second)?.text = getText(R.string.get_telegram_after_creating_account)
val getTelegramButton: ImageView? = view.findViewById(R.id.google_play_button)
getTelegramButton?.setImageResource(R.drawable.google_play_badge)
getTelegramButton?.setImageResource(R.drawable.img_google_play_badge)
getTelegramButton?.setOnClickListener {
val app = getMainActivity()?.application
if (app != null) {
@ -282,23 +280,21 @@ class LoginDialogFragment : DialogFragment() {
progressView?.visibility = View.GONE
}
}
if (continueButton != null) {
continueButton.isEnabled = !showProgress && continueButton.isEnabled
if (showProgress) {
continueButton.setOnClickListener(null)
} else {
continueButton.setOnClickListener {
showWelcomeDialog = false
for (t in LoginDialogType.values()) {
val layout: View? = view?.findViewById(t.viewId)
val contains = t == loginDialogActiveType
if (contains && layout != null) {
val editText: ExtendedEditText? = layout.findViewById(t.editorId)
val text = editText?.text.toString()
if (!TextUtils.isEmpty(text) && text.length > 1) {
continueButton.setTextColor(ContextCompat.getColor(context!!, R.color.secondary_text_light))
applyAuthParam(t, text)
}
continueButton.isEnabled = !showProgress && continueButton.isEnabled
if (showProgress) {
continueButton.setOnClickListener(null)
} else {
continueButton.setOnClickListener {
showWelcomeDialog = false
for (t in LoginDialogType.values()) {
val layout: View? = view?.findViewById(t.viewId)
val contains = t == loginDialogActiveType
if (contains && layout != null) {
val editText: ExtendedEditText? = layout.findViewById(t.editorId)
val text = editText?.text.toString()
if (!TextUtils.isEmpty(text) && text.length > 1) {
continueButton.setTextColor(ContextCompat.getColor(context!!, R.color.secondary_text_light))
applyAuthParam(t, text)
}
}
}