Handle rotation in TimePickerActivity

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

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

Loading…
Cancel
Save