Use loader to load single alarm
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package com.philliphsu.clock2.model;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.philliphsu.clock2.Alarm;
|
||||
|
||||
/**
|
||||
* Created by Phillip Hsu on 6/30/2016.
|
||||
*/
|
||||
public class AlarmLoader extends DataLoader<Alarm> {
|
||||
|
||||
private long mAlarmId;
|
||||
|
||||
public AlarmLoader(Context context, long alarmId) {
|
||||
super(context);
|
||||
mAlarmId = alarmId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Alarm loadInBackground() {
|
||||
return DatabaseManager.getInstance(getContext()).getAlarm(mAlarmId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.philliphsu.clock2.model;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v4.content.AsyncTaskLoader;
|
||||
|
||||
/**
|
||||
* Created by Phillip Hsu on 6/30/2016.
|
||||
*/
|
||||
public abstract class DataLoader<D> extends AsyncTaskLoader<D> {
|
||||
|
||||
private D mData;
|
||||
|
||||
public DataLoader(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStartLoading() {
|
||||
if (mData != null) {
|
||||
deliverResult(mData);
|
||||
} else {
|
||||
forceLoad();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deliverResult(D data) {
|
||||
mData = data;
|
||||
if (isStarted()) {
|
||||
super.deliverResult(data);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user