2014-07-21 22:52:19 -04:00
|
|
|
package org.bspeice.minimalbible;
|
|
|
|
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.v4.app.Fragment;
|
|
|
|
import android.support.v4.app.FragmentActivity;
|
|
|
|
import android.support.v4.app.FragmentManager;
|
|
|
|
|
|
|
|
import dagger.ObjectGraph;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Holding location for activity object graphs.
|
|
|
|
* This technique could be extended to other things, but honestly,
|
|
|
|
* everything it could be extended to likely needs to be in
|
|
|
|
* an ObjectGraph anyway.
|
|
|
|
* This works because getSupportFragmentManager() is scoped to each activity.
|
|
|
|
*/
|
|
|
|
public class OGHolder extends Fragment {
|
|
|
|
private final static String TAG = "OGHolder";
|
|
|
|
|
|
|
|
private ObjectGraph mObjectGraph;
|
|
|
|
|
2014-07-21 22:55:34 -04:00
|
|
|
public static OGHolder get(FragmentActivity activity) {
|
|
|
|
FragmentManager manager = activity.getSupportFragmentManager();
|
|
|
|
OGHolder holder = (OGHolder) manager.findFragmentByTag(TAG);
|
|
|
|
if (holder == null) {
|
|
|
|
holder = new OGHolder();
|
|
|
|
manager.beginTransaction().add(holder, TAG).commit();
|
|
|
|
}
|
|
|
|
return holder;
|
|
|
|
}
|
|
|
|
|
2014-07-21 22:52:19 -04:00
|
|
|
@Override
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setRetainInstance(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void persistGraph(ObjectGraph graph) {
|
|
|
|
mObjectGraph = graph;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ObjectGraph fetchGraph() {
|
|
|
|
return mObjectGraph;
|
|
|
|
}
|
|
|
|
}
|