Package com.cheetahdigital.messages.ui
Class MessagesFragment<A extends MessagesAdapter,V extends MessagesView,P extends MessagesPresenter<V>>
- java.lang.Object
-
- androidx.fragment.app.Fragment
-
- com.cheetahdigital.uikit.architecture.mvp.MvpFragmentView<V,P>
-
- com.cheetahdigital.uikit.architecture.lce.LceFragmentView<V,P>
-
- com.cheetahdigital.uikit.architecture.refreshable.RefreshableFragmentView<V,P>
-
- com.cheetahdigital.uikit.widget.list.ListFragmentView<V,P>
-
- com.cheetahdigital.uikit.widget.list.EndlessListFragmentView<A,V,P>
-
- com.cheetahdigital.messages.ui.MessagesFragment<A,V,P>
-
- All Implemented Interfaces:
android.content.ComponentCallbacks,android.view.View.OnCreateContextMenuListener,androidx.lifecycle.LifecycleOwner,androidx.lifecycle.ViewModelStoreOwner,androidx.savedstate.SavedStateRegistryOwner,androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener,AnalyticsManager.AnalyticsScreen,MessagesClickListener,MessagesView,LceView,MvpLceView,MvpView,RefreshableView,EndlessListView,ListView
public class MessagesFragment<A extends MessagesAdapter,V extends MessagesView,P extends MessagesPresenter<V>> extends EndlessListFragmentView<A,V,P> implements MessagesView, AnalyticsManager.AnalyticsScreen, MessagesClickListener
The fragment class for showing the list ofMessageCan receive the following intent extras:- {#OPEN_OFFER_URL_IN_DETAIL} - the flag
Offertype URLs,truewill open the detail screen, otherwise an external browser will be opened IntentKey.PRIMARY_PARAMS-MessagesParamsto use for api call
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringOPEN_OFFER_URL_IN_DETAILstatic java.lang.StringPARAMETERS-
Fields inherited from class com.cheetahdigital.uikit.widget.list.EndlessListFragmentView
mEndlessRecyclerOnScrollListener
-
Fields inherited from class com.cheetahdigital.uikit.widget.list.ListFragmentView
mLinearLayoutManager, mListView, mSelectedPosition
-
Fields inherited from class com.cheetahdigital.uikit.architecture.refreshable.RefreshableFragmentView
mSwipeRefreshLayout
-
Fields inherited from class com.cheetahdigital.uikit.architecture.lce.LceFragmentView
mContentView, mErrorView, mInitialLoad, mLoadingView
-
-
Constructor Summary
Constructors Constructor Description MessagesFragment()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendMessagesList(java.util.List<Message> messages, int totalEntries)Called when loading more pages is successfulprotected voidcaptureSharedElementValues(android.content.Intent intent)Configure an intent extra with a transition animation using thegetSharedElementViews()protected voidclearUnreadMessagesPreference()Clears the data of Unread Messages Preferenceprotected MessagesAdaptercreateAdapter()Create the adapter used in current RecycleView present.protected androidx.recyclerview.widget.RecyclerView.ItemDecorationcreateItemDecoration()Create the adapter used in current RecycleView present.protected PcreatePresenter()InstantiateMvpFragmentView.mPresenterto be used for thisMvpActivityViewprotected intgetContentLayoutId()Provide the Content Layout ID which is of a Layout Resource Reference of AndroidbooleangetLoading()Return the current loading state of the fragmentintgetScreenName()protected android.view.View[]getSharedElementViews()Fetches the shared element views.voidonAttach(android.content.Context context)android.view.ViewonCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container, android.os.Bundle savedInstanceState)voidonDestroy()voidonMessageClick(Message message, android.view.View view, int position)Handles clicking of a messagevoidonMessageDismiss(int messageId)Handles the deletion of a messagevoidremoveItemOnAdapter(int messageId)Called when requesting to dismiss aMessageis successfulvoidsetLoading(boolean loading)Set the state of refresh progressvoidshowDialogMissingOffer()This notifies the view on error related to missing offervoidshowEmptyAttachmentError()This notifies the view to show an error message for trying to launch an attachmentvoidshowErrorDismissDialog()Called upon receiving a failed request on dismissing aMessagevoidshowMessagesList(java.util.List<Message> messages, int totalEntries)Called when notification request is successful.voidstartAwardDetails(Award award)This notifies the view to start anRewardDetailsActivityvoidstartChallengeDetails(int id)Create an Intent intended for start Challenge detailvoidstartEventsDetails(int id)Create an Intent intended for start Event detailvoidstartMemberDetails(int id)Create an Intent intended for start Member detailvoidstartNewsfeedDetails(int id)Create an Intent intended for start Newsfeed detailvoidstartOfferDetails(int id)This notifies the view to start the Offer Details ActivityvoidstartOfferResponseDetails(int id)Create an Intent intended for start OfferResponse detailvoidstartOfferUrl(java.lang.String url)This notifies the view to start the Offer URL Details ActivityvoidstartRewardsDetails(int id)Create an Intent intended for start Reward detail-
Methods inherited from class com.cheetahdigital.uikit.widget.list.EndlessListFragmentView
onFinishLoadMore, onFinishRefresh, onLoadMoreFailed, setListTotalEntries
-
Methods inherited from class com.cheetahdigital.uikit.widget.list.ListFragmentView
getLayoutManager, isListAnimationEnabled, setExitTransition, showContent, startActivity, startActivityForResult
-
Methods inherited from class com.cheetahdigital.uikit.architecture.refreshable.RefreshableFragmentView
onRefresh, onRefreshFailed, reloadData, showError, showLoading, startRefresh
-
Methods inherited from class com.cheetahdigital.uikit.architecture.lce.LceFragmentView
onLoadFailed, onLoadSuccess, onViewCreated, setErrorViewClickListener
-
Methods inherited from class com.cheetahdigital.uikit.architecture.mvp.MvpFragmentView
getPresenter, initSharedElementValues, isSharedAnimationEnabled, onDestroyView
-
Methods inherited from class androidx.fragment.app.Fragment
dump, equals, getActivity, getAllowEnterTransitionOverlap, getAllowReturnTransitionOverlap, getArguments, getChildFragmentManager, getContext, getEnterTransition, getExitTransition, getFragmentManager, getHost, getId, getLayoutInflater, getLayoutInflater, getLifecycle, getLoaderManager, getParentFragment, 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, onDestroyOptionsMenu, onDetach, onGetLayoutInflater, onHiddenChanged, onInflate, onInflate, onLowMemory, onMultiWindowModeChanged, onOptionsItemSelected, onOptionsMenuClosed, onPause, onPictureInPictureModeChanged, onPrepareOptionsMenu, onPrimaryNavigationFragmentChanged, onRequestPermissionsResult, onResume, onSaveInstanceState, onStart, onStop, onViewStateRestored, postponeEnterTransition, postponeEnterTransition, 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 java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.cheetahdigital.uikit.widget.list.EndlessListView
onFinishLoadMore, onLoadMoreFailed
-
Methods inherited from interface com.cheetahdigital.uikit.architecture.lce.LceView
onLoadFailed, onLoadSuccess, setErrorViewClickListener
-
Methods inherited from interface com.cheetahdigital.uikit.architecture.lce.MvpLceView
showContent, showError, showLoading
-
Methods inherited from interface com.cheetahdigital.uikit.architecture.refreshable.RefreshableView
onFinishRefresh, onRefreshFailed
-
-
-
-
Field Detail
-
OPEN_OFFER_URL_IN_DETAIL
public static final java.lang.String OPEN_OFFER_URL_IN_DETAIL
- See Also:
- Constant Field Values
-
PARAMETERS
public static final java.lang.String PARAMETERS
- See Also:
- Constant Field Values
-
-
Method Detail
-
onCreateView
@Nullable public android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container, android.os.Bundle savedInstanceState)- Overrides:
onCreateViewin classEndlessListFragmentView<A extends MessagesAdapter,V extends MessagesView,P extends MessagesPresenter<V>>
-
onAttach
public void onAttach(android.content.Context context)
- Overrides:
onAttachin classListFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>
-
onDestroy
public void onDestroy()
- Overrides:
onDestroyin classandroidx.fragment.app.Fragment
-
getSharedElementViews
protected android.view.View[] getSharedElementViews()
Description copied from class:MvpFragmentViewFetches the shared element views.- Overrides:
getSharedElementViewsin classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>- Returns:
- View used to show animation transition when launching a new page
-
captureSharedElementValues
protected void captureSharedElementValues(android.content.Intent intent)
Configure an intent extra with a transition animation using thegetSharedElementViews()- Overrides:
captureSharedElementValuesin classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>- Parameters:
intent- intent where the transition helper is added
-
getScreenName
public int getScreenName()
- Specified by:
getScreenNamein interfaceAnalyticsManager.AnalyticsScreen- Overrides:
getScreenNamein classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>
-
showMessagesList
public void showMessagesList(java.util.List<Message> messages, int totalEntries)
Called when notification request is successful. Populates view with list ofMessage- Specified by:
showMessagesListin interfaceMessagesView- Parameters:
messages- list ofMessagetotalEntries- total number of entries
-
appendMessagesList
public void appendMessagesList(java.util.List<Message> messages, int totalEntries)
Called when loading more pages is successful- Specified by:
appendMessagesListin interfaceMessagesView- Parameters:
messages- list ofMessagetotalEntries- total number of entries
-
removeItemOnAdapter
public void removeItemOnAdapter(int messageId)
Called when requesting to dismiss aMessageis successful- Specified by:
removeItemOnAdapterin interfaceMessagesView- Parameters:
messageId- id of theMessage
-
showErrorDismissDialog
public void showErrorDismissDialog()
Called upon receiving a failed request on dismissing aMessage- Specified by:
showErrorDismissDialogin interfaceMessagesView
-
getContentLayoutId
protected int getContentLayoutId()
Description copied from class:MvpFragmentViewProvide the Content Layout ID which is of a Layout Resource Reference of Android- Specified by:
getContentLayoutIdin classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>- Returns:
- id of the content layout
-
createPresenter
protected P createPresenter()
Description copied from class:MvpFragmentViewInstantiateMvpFragmentView.mPresenterto be used for thisMvpActivityView- Specified by:
createPresenterin classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>- Returns:
- return the
MvpBasePresenter
-
createAdapter
protected MessagesAdapter createAdapter()
Create the adapter used in current RecycleView present. This is commonly used when overriding theMessagesAdapter- Returns:
- instance of
MessagesAdapter
-
createItemDecoration
protected androidx.recyclerview.widget.RecyclerView.ItemDecoration createItemDecoration()
Create the adapter used in current RecycleView present. This is commonly used when overriding theMessagesAdapter- Returns:
- instance of
MessagesAdapter
-
clearUnreadMessagesPreference
protected void clearUnreadMessagesPreference()
Clears the data of Unread Messages Preference
-
onMessageClick
public void onMessageClick(Message message, android.view.View view, int position)
Description copied from interface:MessagesClickListenerHandles clicking of a message- Specified by:
onMessageClickin interfaceMessagesClickListener- Parameters:
message-Messageobjectview- the view that triggered onClickposition- position of the item in the list
-
onMessageDismiss
public void onMessageDismiss(int messageId)
Description copied from interface:MessagesClickListenerHandles the deletion of a message- Specified by:
onMessageDismissin interfaceMessagesClickListener- Parameters:
messageId- id of message
-
setLoading
public void setLoading(boolean loading)
Set the state of refresh progress- Specified by:
setLoadingin interfaceMessagesView- Parameters:
loading- true - show refresh progress, false - hide refresh progress
-
getLoading
public boolean getLoading()
Return the current loading state of the fragment- Returns:
- true if current process is being executed, else false
-
showDialogMissingOffer
public void showDialogMissingOffer()
Description copied from interface:MessagesViewThis notifies the view on error related to missing offer- Specified by:
showDialogMissingOfferin interfaceMessagesView
-
startOfferDetails
public void startOfferDetails(int id)
Description copied from interface:MessagesViewThis notifies the view to start the Offer Details Activity- Specified by:
startOfferDetailsin interfaceMessagesView- Parameters:
id- id of the Offer
-
startOfferUrl
public void startOfferUrl(java.lang.String url)
Description copied from interface:MessagesViewThis notifies the view to start the Offer URL Details Activity- Specified by:
startOfferUrlin interfaceMessagesView- Parameters:
url- url to use when navigating via webview
-
startAwardDetails
public void startAwardDetails(Award award)
Description copied from interface:MessagesViewThis notifies the view to start anRewardDetailsActivity- Specified by:
startAwardDetailsin interfaceMessagesView- Parameters:
award- instance ofAwardto use for startingRewardDetailsActivity
-
showEmptyAttachmentError
public void showEmptyAttachmentError()
Description copied from interface:MessagesViewThis notifies the view to show an error message for trying to launch an attachment- Specified by:
showEmptyAttachmentErrorin interfaceMessagesView
-
startChallengeDetails
public void startChallengeDetails(int id)
Create an Intent intended for start Challenge detail- Specified by:
startChallengeDetailsin interfaceMessagesView- Parameters:
id- id of the Challenge object
-
startOfferResponseDetails
public void startOfferResponseDetails(int id)
Create an Intent intended for start OfferResponse detail- Specified by:
startOfferResponseDetailsin interfaceMessagesView- Parameters:
id- id of the OfferResponse object
-
startRewardsDetails
public void startRewardsDetails(int id)
Create an Intent intended for start Reward detail- Specified by:
startRewardsDetailsin interfaceMessagesView- Parameters:
id- id of the Reward object
-
startNewsfeedDetails
public void startNewsfeedDetails(int id)
Create an Intent intended for start Newsfeed detail- Specified by:
startNewsfeedDetailsin interfaceMessagesView- Parameters:
id- id of the Newsfeed object
-
startMemberDetails
public void startMemberDetails(int id)
Create an Intent intended for start Member detail- Specified by:
startMemberDetailsin interfaceMessagesView- Parameters:
id- id of the Member object
-
startEventsDetails
public void startEventsDetails(int id)
Create an Intent intended for start Event detail- Specified by:
startEventsDetailsin interfaceMessagesView- Parameters:
id- id of the Event object
-
-