package moe.feng.nhentai.ui.common;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.LayoutRes;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import moe.feng.nhentai.util.Settings;
public abstract class LazyFragment extends Fragment {
private View parentView;
private Activity activity;
protected Handler mHandler;
protected Settings mSets;
public abstract @LayoutRes int getLayoutResId();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle state) {
parentView = inflater.inflate(getLayoutResId(), container, false);
activity = getActivity();
mSets = Settings.getInstance(getApplicationContext());
finishCreateView(state);
return parentView;
}
public abstract void finishCreateView(Bundle state);
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof Activity){
this.activity=(Activity) context;
}
if (mSets == null) {
mSets = Settings.getInstance(getApplicationContext());
}
}
@Override
public void onDetach() {
super.onDetach();
this.activity = null;
}
public Context getApplicationContext() {
return this.activity == null ?
(getActivity() == null ? null : getActivity().getApplicationContext()) :
this.activity.getApplicationContext();
}
public <T extends View> T $(int id) {
return (T) parentView.findViewById(id);
}
protected void setHandler(Handler handler) {
this.mHandler = handler;
}
public Handler getHandler() {
return mHandler;
}
}