42
42
import de .hdodenhof .circleimageview .CircleImageView ;
43
43
44
44
45
-
46
45
public class OrderDialogFragment extends BottomSheetDialogFragment {
47
46
public static final String ID_SIZE_SUFFIX = "txt_size" ;
48
47
public static final String ID_COLOR_SUFFIX = "img_color" ;
@@ -58,10 +57,10 @@ public class OrderDialogFragment extends BottomSheetDialogFragment {
58
57
private OrderSelection orderSelection ;
59
58
60
59
public static class OrderSelection {
61
- public int size ;
62
- public int color ;
63
- public String date ;
64
- public String time ;
60
+ public int size = 0 ;
61
+ public int color = 0 ;
62
+ public String date = "" ;
63
+ public String time = "" ;
65
64
}
66
65
67
66
public interface Step1Listener {
@@ -102,7 +101,6 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
102
101
super .onViewCreated (view , savedInstanceState );
103
102
104
103
orderSelection = new OrderSelection ();
105
- orderSelection .color = ContextCompat .getColor (getContext (), getProduct ().color );
106
104
107
105
selectedViewTransition = TransitionInflater .from (getContext ())
108
106
.inflateTransition (R .transition .transition_fake_view );
@@ -139,8 +137,6 @@ private void showDeliveryForm() {
139
137
}
140
138
141
139
private void transitionSelectedView (View v ) {
142
- v .setSelected (true );
143
-
144
140
// Create the cloned view from the selected view at the same position
145
141
final View clonedView = createSelectionView (v );
146
142
@@ -190,10 +186,26 @@ private View getTargetView(View v) {
190
186
throw new IllegalStateException ();
191
187
}
192
188
189
+ @ BindingAdapter ("app:spanOffset" )
190
+ public static void setItemSpan (View v , int spanOffset ) {
191
+ final String itemText = ((TextView ) v ).getText ().toString ();
192
+ final SpannableString sString = new SpannableString (itemText );
193
+
194
+ sString .setSpan (new RelativeSizeSpan (1.5f ), itemText .length () - spanOffset , itemText .length (),
195
+ Spannable .SPAN_EXCLUSIVE_EXCLUSIVE );
196
+
197
+ ((TextView ) v ).setText (sString );
198
+ }
199
+
193
200
private void initOrderStepOneView (LayoutFormOrderStep1Binding layoutStep1 ) {
194
201
binding .btnGo .setOnClickListener (v -> {
195
202
binding .txtAction .setText (R .string .action_book );
196
203
204
+ if (orderSelection .color == 0 ) {
205
+ orderSelection .color = ContextCompat .getColor (
206
+ getContext (), getProduct ().color );
207
+ }
208
+
197
209
for (View clonedView : clonedViews )
198
210
binding .mainContainer .removeView (clonedView );
199
211
@@ -205,42 +217,45 @@ private void initOrderStepOneView(LayoutFormOrderStep1Binding layoutStep1) {
205
217
layoutStep1 .setListener (new Step1Listener () {
206
218
@ Override
207
219
public void onSizeSelected (View v ) {
208
- orderSelection .size = Integer .parseInt (((TextView ) v ).getText ().toString ());
209
- transitionSelectedView (v );
220
+ if (orderSelection .size == 0 ) {
221
+ orderSelection .size = Integer .parseInt (((TextView ) v ).getText ().toString ());
222
+ v .setSelected (true );
223
+ transitionSelectedView (v );
224
+ }
210
225
}
211
226
212
227
@ Override
213
228
public void onColorSelected (View v ) {
214
- orderSelection .color = ((ColorDrawable ) ((ImageView ) v ).getDrawable ()).getColor ();
215
- transitionSelectedView (v );
229
+ if (orderSelection .color == 0 ) {
230
+ orderSelection .color = ((ColorDrawable ) ((ImageView ) v ).getDrawable ()).getColor ();
231
+ v .setSelected (true );
232
+ transitionSelectedView (v );
233
+ }
216
234
}
217
235
});
218
236
}
219
237
220
- @ BindingAdapter ("app:spanOffset" )
221
- public static void setItemSpan (View v , int spanOffset ) {
222
- final String itemText = ((TextView ) v ).getText ().toString ();
223
- final SpannableString sString = new SpannableString (itemText );
224
-
225
- sString .setSpan (new RelativeSizeSpan (1.5f ), itemText .length () - spanOffset , itemText .length (),
226
- Spannable .SPAN_EXCLUSIVE_EXCLUSIVE );
227
-
228
- ((TextView ) v ).setText (sString );
229
- }
230
-
231
238
private void initOrderStepTwoView (LayoutFormOrderStep2Binding step2Binding ) {
232
239
binding .btnGo .setBackground (new ColorDrawable (orderSelection .color ));
233
240
binding .btnGo .setOnClickListener (v -> changeToConfirmScene ());
234
241
235
242
step2Binding .setListener (new Step2Listener () {
236
243
@ Override
237
244
public void onDateSelected (View v ) {
238
- transitionSelectedView (v );
245
+ if (orderSelection .date .isEmpty ()) {
246
+ orderSelection .date = ((TextView ) v ).getText ().toString ();
247
+ v .setSelected (true );
248
+ transitionSelectedView (v );
249
+ }
239
250
}
240
251
241
252
@ Override
242
253
public void onTimeSelected (View v ) {
243
- transitionSelectedView (v );
254
+ if (orderSelection .time .isEmpty ()) {
255
+ orderSelection .time = ((TextView ) v ).getText ().toString ();
256
+ v .setSelected (true );
257
+ transitionSelectedView (v );
258
+ }
244
259
}
245
260
});
246
261
}
0 commit comments