Skip to content
Snippets Groups Projects
Unverified Commit 23ddc59b authored by Lukas Lechner's avatar Lukas Lechner Committed by GitHub
Browse files

Add styles for diary circumstances text field (EXPOSUREAPP-5161) (#2399)


* Add styles for diary circumstances text field

* Improve design of text field, Align info button

* Expand EditText to multiple lines if long enough, but don't allow new lines "\n".

Co-authored-by: default avatarMatthias Urhahn <matthias.urhahn@sap.com>
parent a09eac3c
No related branches found
No related tags found
No related merge requests found
package de.rki.coronawarnapp.contactdiary.ui.day.tabs.common
import android.content.Context
import android.text.InputType
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.inputmethod.EditorInfo
import android.widget.EditText
import android.widget.ImageView
import androidx.constraintlayout.widget.ConstraintLayout
......@@ -29,9 +31,11 @@ class DiaryCircumstancesTextView @JvmOverloads constructor(
Timber.v("Focused on %s", v)
} else {
Timber.v("Lost focus on %s", v)
afterTextChangedListener?.invoke(text.toString())
notifyTextChanged(text.toString())
}
}
imeOptions = EditorInfo.IME_ACTION_DONE
setRawInputType(InputType.TYPE_CLASS_TEXT)
}
infoButton = findViewById(R.id.info_button)
}
......@@ -41,6 +45,11 @@ class DiaryCircumstancesTextView @JvmOverloads constructor(
super.onFinishInflate()
}
private fun notifyTextChanged(text: String) {
// Prevent Copy&Paste inserting new lines.
afterTextChangedListener?.invoke(text.trim().replace("\n", ""))
}
fun setInfoButtonClickListener(listener: () -> Unit) {
infoButton.setOnClickListener { listener() }
}
......
......@@ -9,13 +9,10 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.Dense"
style="@style/ContactDiaryCircumstancesTextInputLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="@string/contact_diary_person_encounter_circumstances_hint"
android:scrollHorizontally="false"
app:layout_constraintBottom_toBottomOf="parent"
app:hintEnabled="false"
app:layout_constraintEnd_toStartOf="@id/info_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/environment_group">
......@@ -24,23 +21,20 @@
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/contact_diary_person_encounter_circumstances_hint"
android:inputType="textMultiLine"
android:maxLength="250"
android:padding="@dimen/spacing_tiny"
tools:text="This was a triumph. I'm making a note here; 'Huge success'. It's hard to overstate my satisfaction. We do what we must, because we can." />
</com.google.android.material.textfield.TextInputLayout>
<ImageView
<ImageButton
android:id="@+id/info_button"
android:layout_width="@dimen/button_icon"
android:layout_height="@dimen/button_icon"
android:layout_marginTop="2dp"
android:background="?selectableItemBackground"
android:contentDescription="@string/statistics_info_button"
android:padding="10dp"
android:src="@drawable/ic_info"
style="@style/ContactDiaryInfoButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/input_layout"
app:layout_constraintTop_toTopOf="@id/input_layout"
app:tint="@color/colorAccent" />
app:layout_constraintTop_toBottomOf="@id/environment_group" />
</merge>
\ No newline at end of file
......@@ -398,6 +398,31 @@
<item name="android:background">@drawable/contact_diary_card_ripple</item>
</style>
<style name="ContactDiaryCircumstancesTextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="boxBackgroundColor">@color/colorBackground</item>
<item name="android:textColorHint">@color/colorTextPrimary2</item>
<item name="android:textSize">@dimen/font_small</item>
<item name="hintTextColor">@color/colorTextPrimary2</item>
<item name="boxCornerRadiusBottomEnd">@dimen/spacing_mega_tiny</item>
<item name="boxCornerRadiusBottomStart">@dimen/spacing_mega_tiny</item>
<item name="boxCornerRadiusTopEnd">@dimen/spacing_mega_tiny</item>
<item name="boxCornerRadiusTopStart">@dimen/spacing_mega_tiny</item>
<item name="boxStrokeWidth">0dp</item>
<item name="boxStrokeWidthFocused">0dp</item>
</style>
<style name="ContactDiaryInfoButton" parent="buttonIcon">
<item name="android:height">@dimen/button_icon</item>
<item name="android:width">@dimen/button_icon</item>
<item name="android:src">@drawable/ic_info</item>
<item name="android:paddingStart">12dp</item>
<item name="android:paddingEnd">12dp</item>
<item name="android:paddingTop">7dp</item>
<item name="android:paddingBottom">7dp</item>
<item name="android:contentDescription">@string/statistics_info_button</item>
<item name="android:tint">@color/colorAccent</item>
</style>
<style name="StatisticsCardInfoButton" parent="buttonIcon">
<item name="android:height">@dimen/button_icon</item>
<item name="android:width">@dimen/button_icon</item>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment