@@ -28,26 +28,20 @@ import android.view.ActionMode
2828import android.view.LayoutInflater
2929import android.view.View
3030import android.widget.FrameLayout
31- import android.widget.ImageButton
32- import android.widget.TextView
3331import androidx.annotation.DrawableRes
34- import androidx.constraintlayout.widget.ConstraintLayout
3532import androidx.constraintlayout.widget.ConstraintSet
3633import androidx.core.os.ParcelCompat
3734import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
3835import com.ichi2.anki.common.utils.annotation.KotlinCleanup
36+ import com.ichi2.anki.databinding.CardMultimediaEditlineBinding
3937import com.ichi2.compat.setTooltipTextCompat
4038import com.ichi2.ui.AnimationUtil.collapseView
4139import com.ichi2.ui.AnimationUtil.expandView
4240import java.util.Locale
4341
4442@KotlinCleanup(" replace _name with `field`" )
4543class FieldEditLine : FrameLayout {
46- val editText: FieldEditText
47- private val label: TextView
48- val toggleSticky: ImageButton
49- val mediaButton: ImageButton
50- private val expandButton: ImageButton
44+ val binding = CardMultimediaEditlineBinding .inflate(LayoutInflater .from(context), this , true )
5145 private var _name : String? = null
5246 private var expansionState = ExpansionState .EXPANDED
5347
@@ -60,47 +54,38 @@ class FieldEditLine : FrameLayout {
6054 constructor (context: Context , attrs: AttributeSet ? , defStyleAttr: Int ) : super (context, attrs, defStyleAttr)
6155
6256 init {
63- LayoutInflater .from(context).inflate(R .layout.card_multimedia_editline, this , true )
64- editText = findViewById(R .id.id_note_editText)
65- label = findViewById(R .id.id_label)
66- toggleSticky =
67- findViewById<ImageButton >(R .id.id_toggle_sticky_button).apply {
68- setTooltipTextCompat(CollectionManager .TR .editingToggleSticky())
69- }
70- mediaButton = findViewById(R .id.id_media_button)
71- val constraintLayout: ConstraintLayout = findViewById(R .id.constraint_layout)
72- expandButton = findViewById(R .id.id_expand_button)
57+ binding.toggleSticky.setTooltipTextCompat(CollectionManager .TR .editingToggleSticky())
7358 // 7433 -
7459 if (Build .VERSION .SDK_INT < Build .VERSION_CODES .O ) {
75- editText.id = View .generateViewId()
76- toggleSticky.id = View .generateViewId()
77- mediaButton.id = View .generateViewId()
78- expandButton.id = View .generateViewId()
79- editText.nextFocusForwardId = toggleSticky.id
80- toggleSticky.nextFocusForwardId = mediaButton.id
81- mediaButton.nextFocusForwardId = expandButton.id
60+ binding. editText.id = View .generateViewId()
61+ binding. toggleSticky.id = View .generateViewId()
62+ binding. mediaButton.id = View .generateViewId()
63+ binding. expandButton.id = View .generateViewId()
64+ binding. editText.nextFocusForwardId = binding. toggleSticky.id
65+ binding. toggleSticky.nextFocusForwardId = binding. mediaButton.id
66+ binding. mediaButton.nextFocusForwardId = binding. expandButton.id
8267 ConstraintSet ().apply {
83- clone(constraintLayout)
84- connect(toggleSticky.id, ConstraintSet .END , mediaButton.id, ConstraintSet .START )
85- connect(mediaButton.id, ConstraintSet .END , expandButton.id, ConstraintSet .START )
86- applyTo(constraintLayout)
68+ clone(binding. constraintLayout)
69+ connect(binding. toggleSticky.id, ConstraintSet .END , binding. mediaButton.id, ConstraintSet .START )
70+ connect(binding. mediaButton.id, ConstraintSet .END , binding. expandButton.id, ConstraintSet .START )
71+ applyTo(binding. constraintLayout)
8772 }
8873 }
8974 setExpanderBackgroundImage()
90- expandButton.setOnClickListener { toggleExpansionState() }
91- editText.init ()
92- label.setPaddingRelative(getDensityAdjustedValue(context, 3.4f ).toInt(), 0 , 0 , 0 )
75+ binding. expandButton.setOnClickListener { toggleExpansionState() }
76+ binding. editText.init ()
77+ binding. label.setPaddingRelative(getDensityAdjustedValue(context, 3.4f ).toInt(), 0 , 0 , 0 )
9378 }
9479
9580 private fun toggleExpansionState () {
9681 expansionState =
9782 when (expansionState) {
9883 ExpansionState .EXPANDED -> {
99- collapseView(editText, enableAnimation)
84+ collapseView(binding. editText, enableAnimation)
10085 ExpansionState .COLLAPSED
10186 }
10287 ExpansionState .COLLAPSED -> {
103- expandView(editText, enableAnimation)
88+ expandView(binding. editText, enableAnimation)
10489 ExpansionState .EXPANDED
10590 }
10691 }
@@ -109,8 +94,8 @@ class FieldEditLine : FrameLayout {
10994
11095 private fun setExpanderBackgroundImage () {
11196 when (expansionState) {
112- ExpansionState .COLLAPSED -> expandButton.background = getBackgroundImage(R .drawable.ic_expand_more_black_24dp_xml)
113- ExpansionState .EXPANDED -> expandButton.background = getBackgroundImage(R .drawable.ic_expand_less_black_24dp)
97+ ExpansionState .COLLAPSED -> binding. expandButton.background = getBackgroundImage(R .drawable.ic_expand_more_black_24dp_xml)
98+ ExpansionState .EXPANDED -> binding. expandButton.background = getBackgroundImage(R .drawable.ic_expand_less_black_24dp)
11499 }
115100 }
116101
@@ -119,37 +104,37 @@ class FieldEditLine : FrameLayout {
119104 ): Drawable ? = VectorDrawableCompat .create(this .resources, idRes, context.theme)
120105
121106 fun setActionModeCallbacks (callback : ActionMode .Callback ? ) {
122- editText.customSelectionActionModeCallback = callback
123- editText.customInsertionActionModeCallback = callback
107+ binding. editText.customSelectionActionModeCallback = callback
108+ binding. editText.customInsertionActionModeCallback = callback
124109 }
125110
126111 fun setHintLocale (hintLocale : Locale ? ) {
127112 if (hintLocale != null ) {
128- editText.setHintLocale(hintLocale)
113+ binding. editText.setHintLocale(hintLocale)
129114 }
130115 }
131116
132117 fun setContent (
133118 content : String? ,
134119 replaceNewline : Boolean ,
135120 ) {
136- editText.setContent(content, replaceNewline)
121+ binding. editText.setContent(content, replaceNewline)
137122 }
138123
139124 fun setOrd (i : Int ) {
140- editText.ord = i
125+ binding. editText.ord = i
141126 }
142127
143128 var name: String?
144129 get() = _name
145130 set(name) {
146131 _name = name
147- editText.contentDescription = name
148- label.text = name
132+ binding. editText.contentDescription = name
133+ binding. label.text = name
149134 }
150135
151136 val lastViewInTabOrder: View
152- get() = expandButton
137+ get() = binding. expandButton
153138
154139 fun loadState (state : AbsSavedState ) {
155140 onRestoreInstanceState(state)
@@ -169,10 +154,10 @@ class FieldEditLine : FrameLayout {
169154 val state = super .onSaveInstanceState()
170155 val savedState = SavedState (state)
171156 savedState.childrenStates = SparseArray ()
172- savedState.editTextId = editText.id
173- savedState.toggleStickyId = toggleSticky.id
174- savedState.mediaButtonId = mediaButton.id
175- savedState.expandButtonId = expandButton.id
157+ savedState.editTextId = binding. editText.id
158+ savedState.toggleStickyId = binding. toggleSticky.id
159+ savedState.mediaButtonId = binding. mediaButton.id
160+ savedState.expandButtonId = binding. expandButton.id
176161 for (i in 0 until childCount) {
177162 getChildAt(i).saveHierarchyState(savedState.childrenStates)
178163 }
@@ -185,22 +170,22 @@ class FieldEditLine : FrameLayout {
185170 super .onRestoreInstanceState(state)
186171 return
187172 }
188- val editTextId = editText.id
189- val toggleStickyId = toggleSticky.id
190- val mediaButtonId = mediaButton.id
191- val expandButtonId = expandButton.id
192- editText.id = state.editTextId
193- toggleSticky.id = state.toggleStickyId
194- mediaButton.id = state.mediaButtonId
195- expandButton.id = state.expandButtonId
173+ val editTextId = binding. editText.id
174+ val toggleStickyId = binding. toggleSticky.id
175+ val mediaButtonId = binding. mediaButton.id
176+ val expandButtonId = binding. expandButton.id
177+ binding. editText.id = state.editTextId
178+ binding. toggleSticky.id = state.toggleStickyId
179+ binding. mediaButton.id = state.mediaButtonId
180+ binding. expandButton.id = state.expandButtonId
196181 super .onRestoreInstanceState(state.superState)
197182 for (i in 0 until childCount) {
198183 getChildAt(i).restoreHierarchyState(state.childrenStates)
199184 }
200- editText.id = editTextId
201- toggleSticky.id = toggleStickyId
202- mediaButton.id = mediaButtonId
203- expandButton.id = expandButtonId
185+ binding. editText.id = editTextId
186+ binding. toggleSticky.id = toggleStickyId
187+ binding. mediaButton.id = mediaButtonId
188+ binding. expandButton.id = expandButtonId
204189 if (expansionState != state.expansionState) {
205190 toggleExpansionState()
206191 }
0 commit comments