Class ChannelListFragment
-
- All Implemented Interfaces:
-
ai.nexconn.chatui.base.BasePage,android.content.ComponentCallbacks,android.view.View.OnCreateContextMenuListener,androidx.activity.result.ActivityResultCaller,androidx.lifecycle.HasDefaultViewModelProviderFactory,androidx.lifecycle.LifecycleOwner,androidx.lifecycle.ViewModelStoreOwner,androidx.savedstate.SavedStateRegistryOwner
public class ChannelListFragment extends BaseViewModelFragment<VM>
Channel list Fragment
Override entry points for subclasses:
- onCreateConversationListProvider — customize item rendering
- onCreateChannelListAdapter — customize Adapter
- onCreateViewModel — customize ViewModel
- subscribeUi — customize data binding
- initRefreshView — customize refresh behavior
- onItemClick — customize click handling
- onItemLongClick — customize long-press handling
- showConversationLongClickMenu — customize long-press menu
- Since:
5.10.4
-
-
Field Summary
Fields Modifier and Type Field Description protected ChannelListAdaptermAdapterprotected RecyclerViewmListprotected ViewmNoticeContainerViewprotected TextViewmNoticeContentTvprotected ImageViewmNoticeIconIvprotected SmartRefreshLayoutmRefreshLayoutprotected VMviewModel
-
Constructor Summary
Constructors Constructor Description ChannelListFragment()
-
Method Summary
Modifier and Type Method Description ChannelListViewModelonCreateViewModel(@NonNull() Bundle bundle)Creates the ViewModel. ConversationListProvideronCreateConversationListProvider()Creates the Provider; subclasses may override to customize item rendering. ChannelListAdapteronCreateChannelListAdapter()Creates the Adapter; subclasses may override to customize adapter behavior. ViewonCreateView(@NonNull() Context context, @NonNull() LayoutInflater inflater, @Nullable() ViewGroup container, @Nullable() Bundle savedInstanceState)Called after the module is created to build the view for use in a Fragment or Activity. voidonViewReady(@NonNull() ChannelListViewModel viewModel)Called after the View is created. voidonResume()voidonPause()voidinitRefreshView()Initializes the refresh controls. voidsubscribeUi(@NonNull() ChannelListViewModel viewModel)Subscribes to ViewModel's LiveData and binds to UI. voidupdateNoticeContent(NoticeContent content)voidonItemClick(View view, ViewHolder holder, int position)Channel item click; subclasses may override to customize navigation. BundlebuildChannelBundle(@NonNull() BaseUiChannel conversation)booleanonItemLongClick(View view, ViewHolder holder, int position)Channel item long-press; subclasses may override to customize popup. voidshowConversationLongClickMenu(View view, BaseUiChannel conversation)Shows the long-press menu; subclasses may override to customize menu items. voidtoggleConversationTop(BaseUiChannel conversation, String toastText)Pin/unpin a channel voidremoveConversation(BaseUiChannel conversation)Delete a channel voidaddHeaderView(View view)voidaddFooterView(View view)voidsetEmptyView(View view)voidsetEmptyView(@LayoutRes() int emptyId)-
Methods inherited from class ai.nexconn.chatui.base.BaseViewModelFragment
getViewModel, onBeforeViewReady, onCreate, onCreateView -
Methods inherited from class ai.nexconn.chatui.base.BaseFragment
finishActivity, isFragmentAlive, onBackPressed, onDestroy, sendFinishActivityBroadcast -
Methods inherited from class androidx.fragment.app.Fragment
dump, equals, getActivity, getAllowEnterTransitionOverlap, getAllowReturnTransitionOverlap, getArguments, getChildFragmentManager, getContext, getDefaultViewModelProviderFactory, getEnterTransition, getExitTransition, getFragmentManager, getHost, getId, getLayoutInflater, getLifecycle, getLoaderManager, getParentFragment, getParentFragmentManager, getReenterTransition, getResources, getRetainInstance, getReturnTransition, getSavedStateRegistry, getSharedElementEnterTransition, getSharedElementReturnTransition, getString, getTag, getTargetFragment, getTargetRequestCode, getText, getUserVisibleHint, getView, getViewLifecycleOwner, getViewLifecycleOwnerLiveData, getViewModelStore, hasOptionsMenu, hashCode, instantiate, isAdded, isDetached, isHidden, isInLayout, isMenuVisible, isRemoving, isResumed, isStateSaved, isVisible, onActivityCreated, onActivityResult, onAttach, onAttachFragment, onConfigurationChanged, onContextItemSelected, onCreate, onCreateAnimation, onCreateAnimator, onCreateContextMenu, onCreateOptionsMenu, onCreateView, onDestroy, onDestroyOptionsMenu, onDestroyView, onDetach, onGetLayoutInflater, onHiddenChanged, onInflate, onLowMemory, onMultiWindowModeChanged, onOptionsItemSelected, onOptionsMenuClosed, onPictureInPictureModeChanged, onPrepareOptionsMenu, onPrimaryNavigationFragmentChanged, onRequestPermissionsResult, onSaveInstanceState, onStart, onStop, onViewCreated, onViewStateRestored, postponeEnterTransition, 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, startActivityForResult, startIntentSenderForResult, startPostponedEnterTransition, toString, unregisterForContextMenu -
Methods inherited from class androidx.lifecycle.HasDefaultViewModelProviderFactory
getDefaultViewModelCreationExtras -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Method Detail
-
onCreateViewModel
@NonNull() ChannelListViewModel onCreateViewModel(@NonNull() Bundle bundle)
Creates the ViewModel.
- Parameters:
bundle- Bundle- Returns:
the ViewModel instance
-
onCreateConversationListProvider
@NonNull() ConversationListProvider onCreateConversationListProvider()
Creates the Provider; subclasses may override to customize item rendering.
-
onCreateChannelListAdapter
@NonNull() ChannelListAdapter onCreateChannelListAdapter()
Creates the Adapter; subclasses may override to customize adapter behavior.
-
onCreateView
@NonNull() View onCreateView(@NonNull() Context context, @NonNull() LayoutInflater inflater, @Nullable() ViewGroup container, @Nullable() Bundle savedInstanceState)
Called after the module is created to build the view for use in a Fragment or Activity.
- Parameters:
context- contextinflater- the LayoutInflater used to inflate views in the modulecontainer- the parent ViewGroup- Returns:
the created UI view
-
onViewReady
void onViewReady(@NonNull() ChannelListViewModel viewModel)
Called after the View is created.
- Parameters:
viewModel- VM
-
onResume
void onResume()
-
onPause
void onPause()
-
initRefreshView
void initRefreshView()
Initializes the refresh controls. Enables pull-to-refresh and load-more.
Subclasses may override this method to customize refresh behavior.
-
subscribeUi
void subscribeUi(@NonNull() ChannelListViewModel viewModel)
Subscribes to ViewModel's LiveData and binds to UI.
Subclasses may override to fully customize data binding (e.g. using a different ViewModel).
-
updateNoticeContent
void updateNoticeContent(NoticeContent content)
-
onItemClick
void onItemClick(View view, ViewHolder holder, int position)
Channel item click; subclasses may override to customize navigation.
-
buildChannelBundle
@NonNull() Bundle buildChannelBundle(@NonNull() BaseUiChannel conversation)
-
onItemLongClick
boolean onItemLongClick(View view, ViewHolder holder, int position)
Channel item long-press; subclasses may override to customize popup.
-
showConversationLongClickMenu
void showConversationLongClickMenu(View view, BaseUiChannel conversation)
Shows the long-press menu; subclasses may override to customize menu items.
-
toggleConversationTop
void toggleConversationTop(BaseUiChannel conversation, String toastText)
Pin/unpin a channel
-
removeConversation
void removeConversation(BaseUiChannel conversation)
Delete a channel
-
addHeaderView
void addHeaderView(View view)
-
addFooterView
void addFooterView(View view)
-
setEmptyView
void setEmptyView(View view)
-
setEmptyView
void setEmptyView(@LayoutRes() int emptyId)
-
-
-
-