package android.support.v4.app; import android.content.Context; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.internal.view.menu.ContextMenuDecorView; import android.support.v7.internal.view.menu.ContextMenuDecorView.ContextMenuListenersProvider; import android.support.v7.internal.view.menu.ContextMenuListener; import android.support.v7.view.ActionMode; import android.util.AttributeSet; import android.view.ContextMenu; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import org.holoeverywhere.HoloEverywhere.PreferenceImpl; import org.holoeverywhere.LayoutInflater; import org.holoeverywhere.addon.IAddonAttacher; import org.holoeverywhere.addon.IAddonFragment; import org.holoeverywhere.app.Activity; import org.holoeverywhere.app.Application; import org.holoeverywhere.preference.SharedPreferences; public abstract class _HoloFragment extends android.support.v4.app.Fragment implements ContextMenuListener, ContextMenuListenersProvider, IAddonAttacher<IAddonFragment> { boolean mDetachChildFragments = true; private Activity mActivity; public final int getContainerId() { return mContainerId; } @Override public ContextMenuListener getContextMenuListener(View view) { return mActivity.getContextMenuListener(view); } public SharedPreferences getDefaultSharedPreferences() { return mActivity.getDefaultSharedPreferences(); } public SharedPreferences getDefaultSharedPreferences(PreferenceImpl impl) { return mActivity.getDefaultSharedPreferences(impl); } public abstract LayoutInflater getLayoutInflater(); @Override @Deprecated /** * It's method internal. Don't use or override it */ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) { return getLayoutInflater(); } public MenuInflater getMenuInflater() { return mActivity.getMenuInflater(); } @Override public void onContextMenuClosed(ContextMenu menu) { } public SharedPreferences getSharedPreferences(PreferenceImpl impl, String name, int mode) { return mActivity.getSharedPreferences(impl, name, mode); } public SharedPreferences getSharedPreferences(String name, int mode) { return mActivity.getSharedPreferences(name, mode); } public ActionBar getSupportActionBar() { return mActivity.getSupportActionBar(); } public Context getSupportActionBarContext() { return mActivity.getSupportActionBarContext(); } public Activity getSupportActivity() { return mActivity; } public Application getSupportApplication() { return mActivity.getSupportApplication(); } public Object getSystemService(String name) { return mActivity.getSystemService(name); } public boolean isDetachChildFragments() { return mDetachChildFragments; } /** * If true this fragment will be detach all inflated child fragments after * destory view */ public void setDetachChildFragments(boolean detachChildFragments) { mDetachChildFragments = detachChildFragments; } public void onAttach(Activity activity) { super.onAttach(activity); } @Override public final void onAttach(android.app.Activity activity) { if (!(activity instanceof Activity)) { throw new RuntimeException( "HoloEverywhere.Fragment must be attached to HoloEverywhere.Activity"); } mActivity = (Activity) activity; onAttach((Activity) activity); } @Override public void onDetach() { super.onDetach(); mActivity = null; } @Override public final View onCreateView(android.view.LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return onCreateView(getLayoutInflater(), container, savedInstanceState); } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onDestroyView() { super.onDestroyView(); if (mChildFragmentManager != null && mChildFragmentManager.mActive != null && mDetachChildFragments) { for (Fragment fragment : mChildFragmentManager.mActive) { if (fragment == null || !fragment.mFromLayout) { continue; } mChildFragmentManager.detachFragment(fragment, 0, 0); } } } public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) { super.onInflate(activity, attrs, savedInstanceState); } @Override public final void onInflate(android.app.Activity activity, AttributeSet attrs, Bundle savedInstanceState) { onInflate((Activity) activity, attrs, savedInstanceState); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); } public boolean openContextMenu(View v) { return v.showContextMenu(); } @Override public void registerForContextMenu(View view) { mActivity.registerForContextMenu(view, this); } public ActionMode startSupportActionMode(ActionMode.Callback callback) { return mActivity.startSupportActionMode(callback); } @Override public void unregisterForContextMenu(View view) { mActivity.unregisterForContextMenu(view); } }