Class FilterBarFragment

java.lang.Object
androidx.fragment.app.Fragment
com.kernelcrew.moodapp.ui.components.FilterBarFragment
All Implemented Interfaces:
ComponentCallbacks, View.OnCreateContextMenuListener, androidx.activity.result.ActivityResultCaller, androidx.lifecycle.HasDefaultViewModelProviderFactory, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.ViewModelStoreOwner, androidx.savedstate.SavedStateRegistryOwner
Direct Known Subclasses:
DefaultFilterBarFragment

public abstract class FilterBarFragment extends androidx.fragment.app.Fragment
A fragment that interfaces the filtering options for mood events.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
    static interface 
    Interface to notify when filters are changed.
    static interface 
    Callback interface for delivering user search results to whoever is listening (e.g., HomeFeed).

    Nested classes/interfaces inherited from class androidx.fragment.app.Fragment

    androidx.fragment.app.Fragment.InstantiationException, androidx.fragment.app.Fragment.SavedState
  • Field Summary

    Fields inherited from class androidx.fragment.app.Fragment

    mPreviousWho
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Filters a list of MoodEvents locally based on the user’s current reasonSearchActive state.
    Retrieves (or creates) the current mood event filter.
    void
    onAttach(Context context)
    Auto-wire the listener from parent Activity or Fragment if available.
    onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    Inflates the filter bar layout and initializes filter options.
    void
    onViewCreated(View view, Bundle savedInstanceState)
     
    void
    setAllowUserSearch(boolean allowUserSearch)
     
    void
    Sets a listener to be notified when the filter changes.
    void
    Registers a listener for receiving user search results.
    abstract void
    Abstract method that MUST be implemented by subclasses.
    void
    Allows external code to update the current MoodEventFilter.

    Methods inherited from class androidx.fragment.app.Fragment

    dump, equals, getActivity, getAllowEnterTransitionOverlap, getAllowReturnTransitionOverlap, getArguments, getChildFragmentManager, getContext, getDefaultViewModelCreationExtras, getDefaultViewModelProviderFactory, getEnterTransition, getExitTransition, getFragmentManager, getHost, getId, getLayoutInflater, getLayoutInflater, getLifecycle, getLoaderManager, getParentFragment, getParentFragmentManager, getReenterTransition, getResources, getRetainInstance, getReturnTransition, getSavedStateRegistry, getSharedElementEnterTransition, getSharedElementReturnTransition, getString, getString, getTag, getTargetFragment, getTargetRequestCode, getText, getUserVisibleHint, getView, getViewLifecycleOwner, getViewLifecycleOwnerLiveData, getViewModelStore, hashCode, hasOptionsMenu, instantiate, instantiate, isAdded, isDetached, isHidden, isInLayout, isMenuVisible, isRemoving, isResumed, isStateSaved, isVisible, onActivityCreated, onActivityResult, onAttach, onAttachFragment, onConfigurationChanged, onContextItemSelected, onCreate, onCreateAnimation, onCreateAnimator, onCreateContextMenu, onCreateOptionsMenu, onDestroy, onDestroyOptionsMenu, onDestroyView, onDetach, onGetLayoutInflater, onHiddenChanged, onInflate, onInflate, onLowMemory, onMultiWindowModeChanged, onOptionsItemSelected, onOptionsMenuClosed, onPause, onPictureInPictureModeChanged, onPrepareOptionsMenu, onPrimaryNavigationFragmentChanged, onRequestPermissionsResult, onResume, onSaveInstanceState, onStart, onStop, onViewStateRestored, postponeEnterTransition, postponeEnterTransition, registerForActivityResult, registerForActivityResult, registerForContextMenu, requestPermissions, requireActivity, requireArguments, requireContext, requireFragmentManager, requireHost, requireParentFragment, requireView, setAllowEnterTransitionOverlap, setAllowReturnTransitionOverlap, setArguments, setEnterSharedElementCallback, setEnterTransition, setExitSharedElementCallback, setExitTransition, setHasOptionsMenu, setInitialSavedState, setMenuVisibility, setReenterTransition, setRetainInstance, setReturnTransition, setSharedElementEnterTransition, setSharedElementReturnTransition, setTargetFragment, setUserVisibleHint, shouldShowRequestPermissionRationale, startActivity, startActivity, startActivityForResult, startActivityForResult, startIntentSenderForResult, startPostponedEnterTransition, toString, unregisterForContextMenu

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • FilterBarFragment

      public FilterBarFragment()
  • Method Details

    • setAllowUserSearch

      public void setAllowUserSearch(boolean allowUserSearch)
    • onAttach

      public void onAttach(@NonNull Context context)
      Auto-wire the listener from parent Activity or Fragment if available.
      Overrides:
      onAttach in class androidx.fragment.app.Fragment
    • setOnUserSearchListener

      public void setOnUserSearchListener(FilterBarFragment.OnUserSearchListener listener)
      Registers a listener for receiving user search results.
      Parameters:
      listener - The listener to receive those results.
    • updateFilter

      public void updateFilter(FilterBarFragment.FilterUpdater updater)
      Allows external code to update the current MoodEventFilter. After the update, notifyFilterChanged() is automatically called to refresh the filter state. Usage: filterBarFragment.updateFilter(new FilterUpdater() { public void update(MoodEventFilter filter) { filter.setLimit(10); } }); Or, if using Java 8 lambdas: filterBarFragment.updateFilter(filter -> filter.setLimit(10));
      Parameters:
      updater - The updater that modifies the MoodEventFilter.
    • onCreateView

      public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
      Inflates the filter bar layout and initializes filter options.
      Overrides:
      onCreateView in class androidx.fragment.app.Fragment
    • onViewCreated

      public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
      Overrides:
      onViewCreated in class androidx.fragment.app.Fragment
    • setupKeyboardHiding

      public abstract void setupKeyboardHiding(View view)
      Abstract method that MUST be implemented by subclasses.
    • getMoodEventFilter

      public MoodEventFilter getMoodEventFilter()
      Retrieves (or creates) the current mood event filter.
    • setOnFilterChangedListener

      public void setOnFilterChangedListener(FilterBarFragment.OnFilterChangedListener listener)
      Sets a listener to be notified when the filter changes.
    • applyLocalSearch

      public List<MoodEvent> applyLocalSearch(List<MoodEvent> allMoods)
      Filters a list of MoodEvents locally based on the user’s current reasonSearchActive state.