Handle rotation in TimePickerActivity

pull/281/head
Alex Baker 9 years ago
parent 36672eb8de
commit 1c12e1bbfb

@ -1,43 +1,44 @@
package org.tasks.activities; package org.tasks.activities;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.text.format.DateFormat;
import org.joda.time.DateTime; import com.sleepbot.datetimepicker.time.RadialPickerLayout;
import org.tasks.dialogs.DateAndTimePickerDialog; import com.sleepbot.datetimepicker.time.TimePickerDialog;
import static org.tasks.date.DateTimeUtils.newDateTime;
public class TimePickerActivity extends FragmentActivity { public class TimePickerActivity extends FragmentActivity implements TimePickerDialog.OnTimeSetListener {
public static final String EXTRA_HOURS = "extra_hours"; public static final String EXTRA_HOURS = "extra_hours";
public static final String EXTRA_MINUTES = "extra_minutes"; public static final String EXTRA_MINUTES = "extra_minutes";
private static final String FRAG_TAG_TIME_PICKER = "frag_tag_time_picker";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
Intent intent = getIntent(); FragmentManager supportFragmentManager = getSupportFragmentManager();
int hour = intent.getIntExtra(EXTRA_HOURS, 0); TimePickerDialog dialog = (TimePickerDialog) supportFragmentManager.findFragmentByTag(FRAG_TAG_TIME_PICKER);
int minutes = intent.getIntExtra(EXTRA_MINUTES, 0); if (dialog == null) {
Intent intent = getIntent();
DateAndTimePickerDialog.timePickerDialog(getSupportFragmentManager(), this, newDateTime().withMillisOfDay(0).withHourOfDay(hour).withMinuteOfHour(minutes), new DateAndTimePickerDialog.OnTimePicked() { int hours = intent.getIntExtra(EXTRA_HOURS, 0);
@Override int minutes = intent.getIntExtra(EXTRA_MINUTES, 0);
public void onTimePicked(int millisOfDay) { dialog = new TimePickerDialog();
final DateTime dateTime = newDateTime().withMillisOfDay(millisOfDay); dialog.initialize(null, hours, minutes, DateFormat.is24HourFormat(this), false);
setResult(RESULT_OK, new Intent() {{ dialog.show(getSupportFragmentManager(), FRAG_TAG_TIME_PICKER);
putExtra(EXTRA_HOURS, dateTime.getHourOfDay()); }
putExtra(EXTRA_MINUTES, dateTime.getMinuteOfHour()); dialog.setOnTimeSetListener(this);
}}); }
finish();
} @Override
}, new DialogInterface.OnDismissListener() { public void onTimeSet(RadialPickerLayout radialPickerLayout, final int hours, final int minutes) {
@Override setResult(RESULT_OK, new Intent() {{
public void onDismiss(DialogInterface dialog) { putExtra(EXTRA_HOURS, hours);
finish(); putExtra(EXTRA_MINUTES, minutes);
} }});
}); finish();
} }
} }

Loading…
Cancel
Save