SnoozeDelayPickerActivity: Fix timepicker layout

pull/367/merge
Alinson S. Xavier 8 years ago
parent 0077d35ff9
commit 357f51fd5e

@ -1,41 +1,31 @@
package org.isoron.uhabits.notifications;
import android.app.*;
import android.os.*;
import android.support.annotation.*;
import android.support.v4.app.*;
import android.support.v7.app.*;
import android.text.format.*;
import android.view.*;
import android.widget.*;
import com.android.datetimepicker.time.*;
import com.android.datetimepicker.time.TimePickerDialog;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.core.models.*;
import org.isoron.uhabits.receivers.*;
import java.util.*;
import butterknife.*;
import static android.content.ContentUris.*;
import static android.content.ContentUris.parseId;
public class SnoozeDelayPickerActivity extends AppCompatActivity implements AdapterView
.OnItemClickListener
public class SnoozeDelayPickerActivity extends FragmentActivity
implements AdapterView.OnItemClickListener
{
public static final String ACTION_ASK_SNOOZE = "org.isoron.uhabits.ACTION_ASK_SNOOZE";
private Habit habit;
private ReminderController reminderController;
@BindArray(R.array.snooze_picker_names)
protected String[] snoozeNames;
@BindArray(R.array.snooze_picker_values)
protected int[] snoozeValues;
@Override
protected void onCreate(@Nullable Bundle bundle)
{
@ -49,19 +39,35 @@ public class SnoozeDelayPickerActivity extends AppCompatActivity implements Adap
habit = appComponent.getHabitList().getById(parseId(getIntent().getData()));
if (habit == null) finish();
setTheme(R.style.Theme_AppCompat_Light_Dialog_Alert);
ButterKnife.bind(this);
int theme = R.style.Theme_AppCompat_Light_Dialog_Alert;
AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(this, theme))
.setTitle(R.string.select_snooze_delay)
.setItems(R.array.snooze_picker_names, null)
.create();
ListView listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,
snoozeNames));
listView.setOnItemClickListener(this);
setContentView(listView);
dialog.getListView().setOnItemClickListener(this);
dialog.setOnDismissListener(d -> finish());
dialog.show();
}
private void showTimePicker()
{
final Calendar calendar = Calendar.getInstance();
TimePickerDialog dialog = TimePickerDialog.newInstance(
(view, hour, minute) -> {
reminderController.onSnoozeTimePicked(habit, hour, minute);
finish();
},
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
DateFormat.is24HourFormat(this));
dialog.show(getSupportFragmentManager(), "timePicker");
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
int[] snoozeValues = getResources().getIntArray(R.array.snooze_picker_values);
if (snoozeValues[position] >= 0)
{
reminderController.onSnoozeDelayPicked(habit, snoozeValues[position]);
@ -70,16 +76,10 @@ public class SnoozeDelayPickerActivity extends AppCompatActivity implements Adap
else showTimePicker();
}
private void showTimePicker()
@Override
public void finish()
{
final Calendar calendar = Calendar.getInstance();
int defaultHour = calendar.get(Calendar.HOUR_OF_DAY);
int defaultMinute = calendar.get(Calendar.MINUTE);
TimePickerDialog dialog = TimePickerDialog.newInstance(
(view, hour, minute) ->
reminderController.onSnoozeTimePicked(habit, hour, minute),
defaultHour, defaultMinute, DateFormat.is24HourFormat(this));
dialog.show(getSupportFragmentManager(), "timePicker");
super.finish();
overridePendingTransition(0, 0);
}
}

@ -104,9 +104,8 @@ public class ReminderController
private void showSnoozeDelayPicker(@NonNull Habit habit, Context context)
{
context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
Intent intent = new Intent(SnoozeDelayPickerActivity.ACTION_ASK_SNOOZE,
Uri.parse(habit.getUriString()),
context, SnoozeDelayPickerActivity.class);
Intent intent = new Intent(context, SnoozeDelayPickerActivity.class);
intent.setData(Uri.parse(habit.getUriString()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}

Loading…
Cancel
Save