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

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

Loading…
Cancel
Save