Skip to content

Commit 6a7c034

Browse files
manabu-nakamurapekingme
authored andcommitted
[Catalog][TimePicker] listener is added again after rotating device
Resolves #4500 GIT_ORIGIN_REV_ID=f0420864a94a0c17ecbfb0cd0a594b24a0746015 PiperOrigin-RevId: 716250724
1 parent a798a82 commit 6a7c034

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

catalog/java/io/material/catalog/timepicker/TimePickerMainDemoFragment.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static com.google.android.material.timepicker.TimeFormat.CLOCK_24H;
2424

2525
import android.os.Bundle;
26+
import androidx.fragment.app.Fragment;
2627
import androidx.appcompat.widget.SwitchCompat;
2728
import android.text.format.DateFormat;
2829
import android.util.Log;
@@ -124,18 +125,28 @@ public View onCreateDemoView(
124125
}
125126

126127
MaterialTimePicker materialTimePicker = materialTimePickerBuilder.build();
127-
materialTimePicker.show(requireFragmentManager(), "fragment_tag");
128-
129-
materialTimePicker.addOnPositiveButtonClickListener(dialog -> {
130-
int newHour = materialTimePicker.getHour();
131-
int newMinute = materialTimePicker.getMinute();
132-
TimePickerMainDemoFragment.this.onTimeSet(newHour, newMinute);
133-
});
128+
materialTimePicker.showNow(requireFragmentManager(), "fragment_tag");
129+
setUpClickListener();
134130
});
135131

132+
setUpClickListener();
136133
return view;
137134
}
138135

136+
private void setUpClickListener() {
137+
Fragment fragment = getParentFragmentManager().findFragmentByTag("fragment_tag");
138+
if (fragment instanceof MaterialTimePicker) {
139+
MaterialTimePicker materialTimePicker = (MaterialTimePicker) fragment;
140+
materialTimePicker.clearOnPositiveButtonClickListeners();
141+
materialTimePicker.addOnPositiveButtonClickListener(
142+
dialog -> {
143+
int newHour = materialTimePicker.getHour();
144+
int newMinute = materialTimePicker.getMinute();
145+
TimePickerMainDemoFragment.this.onTimeSet(newHour, newMinute);
146+
});
147+
}
148+
}
149+
139150
private void showFrameworkTimepicker() {
140151
android.app.TimePickerDialog timePickerDialog =
141152
new android.app.TimePickerDialog(

0 commit comments

Comments
 (0)