mirror of https://github.com/tasks/tasks
Handle rotation in TimePickerActivity
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…
Reference in New Issue