/*
* Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
* All Rights Reserved.
*/
package me.zhanghai.android.douya.content;
import android.content.Context;
import com.android.volley.Response;
import me.zhanghai.android.douya.network.Request;
import me.zhanghai.android.douya.network.Volley;
public abstract class ResourceWriter<W extends ResourceWriter, T>
implements Response.Listener<T>, Response.ErrorListener {
private ResourceWriterManager<W> mManager;
private Request<T> mRequest;
public ResourceWriter(ResourceWriterManager<W> manager) {
mManager = manager;
}
public void onStart() {
mRequest = onCreateRequest();
mRequest.setListener(this);
mRequest.setErrorListener(this);
Volley.getInstance().addToRequestQueue(mRequest);
}
protected abstract Request<T> onCreateRequest();
public void onDestroy() {
mRequest.cancel();
mRequest.setListener(null);
mRequest.setErrorListener(null);
}
protected Context getContext() {
return mManager.getContext();
}
protected void stopSelf() {
//noinspection unchecked
mManager.stop((W) this);
}
}