package org.mtransit.android.ui.fragment; import org.mtransit.android.R; import org.mtransit.android.commons.ThemeUtils; import org.mtransit.android.data.DataSourceProvider; import org.mtransit.android.task.ServiceUpdateLoader; import org.mtransit.android.task.StatusLoader; import org.mtransit.android.ui.ActionBarController; import org.mtransit.android.ui.MainActivity; import org.mtransit.android.util.AnalyticsUtils; import android.content.Context; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; public abstract class ABFragment extends MTFragmentV4 implements AnalyticsUtils.Trackable, DataSourceProvider.ModulesUpdateListener { public static final boolean DEFAULT_THEME_DARK_INSTEAD_OF_LIGHT = false; public static final boolean DEFAULT_DISPLAY_HOME_AS_UP_ENABLED = true; public static final boolean DEFAULT_SHOW_SEARCH_MENU_ITEM = true; public boolean isABReady() { return true; } public CharSequence getABTitle(Context context) { return null; } public CharSequence getABSubtitle(Context context) { return null; } private Integer defaultABBgColor = null; public Integer getABBgColor(Context context) { if (this.defaultABBgColor == null && context != null) { this.defaultABBgColor = ThemeUtils.resolveColorAttribute(context, R.attr.colorPrimary); } return this.defaultABBgColor; } public View getABCustomView() { return null; } public boolean isABCustomViewFocusable() { return false; } public boolean isABCustomViewRequestFocus() { return false; } public boolean isABDisplayHomeAsUpEnabled() { return DEFAULT_DISPLAY_HOME_AS_UP_ENABLED; } public boolean isABShowSearchMenuItem() { return DEFAULT_SHOW_SEARCH_MENU_ITEM; } public boolean isABThemeDarkInsteadOfThemeLight() { return DEFAULT_THEME_DARK_INSTEAD_OF_LIGHT; } public ActionBarController getAbController() { FragmentActivity activity = getActivity(); if (activity == null) { return null; } return ((MainActivity) activity).getAbController(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DataSourceProvider.addModulesUpdateListener(this); } @Override public void onResume() { super.onResume(); AnalyticsUtils.trackScreenView(getActivity(), this); ActionBarController abController = getAbController(); if (abController != null) { abController.setAB(this); abController.updateAB(); } } public boolean onBackPressed() { return false; // not processed } @Override public void onPause() { super.onPause(); StatusLoader.get().clearAllTasks(); ServiceUpdateLoader.get().clearAllTasks(); } @Override public void onDestroy() { super.onDestroy(); DataSourceProvider.removeModulesUpdateListener(this); } }