Fixed NPE due to Presenter constructor trying to load the alarm before it returns

This commit is contained in:
Phillip Hsu 2016-06-03 02:43:07 -07:00
parent ef22355ddf
commit b798a8e2b0
3 changed files with 10 additions and 7 deletions

View File

@ -65,9 +65,8 @@ public class EditAlarmActivity extends BaseActivity implements
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setWeekDaysText(); setWeekDaysText();
mNumpad.setKeyListener(this); mNumpad.setKeyListener(this);
mPresenter = new EditAlarmPresenter(this, mPresenter = new EditAlarmPresenter(this, AlarmsRepository.getInstance(this));
AlarmsRepository.getInstance(this), mPresenter.loadAlarm(getIntent().getLongExtra(EXTRA_ALARM_ID, -1));
getIntent().getLongExtra(EXTRA_ALARM_ID, -1));
mPresenter.setTimeTextHint(); mPresenter.setTimeTextHint();
} }

View File

@ -26,6 +26,7 @@ public interface EditAlarmContract {
} }
interface Presenter extends AlarmContract.Presenter { interface Presenter extends AlarmContract.Presenter {
void loadAlarm(long id);
void save(); void save();
void delete(); void delete();
void showNumpad(); void showNumpad();

View File

@ -21,14 +21,17 @@ public class EditAlarmPresenter implements EditAlarmContract.Presenter {
@NonNull private final EditAlarmContract.View mView; @NonNull private final EditAlarmContract.View mView;
@NonNull private final Repository<Alarm> mRepository; @NonNull private final Repository<Alarm> mRepository;
@Nullable private final Alarm mAlarm; @Nullable private Alarm mAlarm;
public EditAlarmPresenter(@NonNull EditAlarmContract.View view, public EditAlarmPresenter(@NonNull EditAlarmContract.View view,
@NonNull Repository<Alarm> repository, @NonNull Repository<Alarm> repository) {
long alarmId) {
mView = view; mView = view;
mRepository = repository; mRepository = repository;
mAlarm = alarmId > -1 ? repository.getItem(alarmId) : null; }
@Override
public void loadAlarm(long alarmId) {
mAlarm = alarmId > -1 ? mRepository.getItem(alarmId) : null;
showDetails(); showDetails();
} }