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 ofMessage
Can receive the following intent extras:- {#OPEN_OFFER_URL_IN_DETAIL} - the flag
Offer
type URLs,true
will open the detail screen, otherwise an external browser will be opened IntentKey.PRIMARY_PARAMS
-MessagesParams
to use for api call
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
OPEN_OFFER_URL_IN_DETAIL
static java.lang.String
PARAMETERS
-
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 void
appendMessagesList(java.util.List<Message> messages, int totalEntries)
Called when loading more pages is successfulprotected void
captureSharedElementValues(android.content.Intent intent)
Configure an intent extra with a transition animation using thegetSharedElementViews()
protected void
clearUnreadMessagesPreference()
Clears the data of Unread Messages Preferenceprotected MessagesAdapter
createAdapter()
Create the adapter used in current RecycleView present.protected androidx.recyclerview.widget.RecyclerView.ItemDecoration
createItemDecoration()
Create the adapter used in current RecycleView present.protected P
createPresenter()
InstantiateMvpFragmentView.mPresenter
to be used for thisMvpActivityView
protected int
getContentLayoutId()
Provide the Content Layout ID which is of a Layout Resource Reference of Androidboolean
getLoading()
Return the current loading state of the fragmentint
getScreenName()
protected android.view.View[]
getSharedElementViews()
Fetches the shared element views.void
onAttach(android.content.Context context)
android.view.View
onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container, android.os.Bundle savedInstanceState)
void
onDestroy()
void
onMessageClick(Message message, android.view.View view, int position)
Handles clicking of a messagevoid
onMessageDismiss(int messageId)
Handles the deletion of a messagevoid
removeItemOnAdapter(int messageId)
Called when requesting to dismiss aMessage
is successfulvoid
setLoading(boolean loading)
Set the state of refresh progressvoid
showDialogMissingOffer()
This notifies the view on error related to missing offervoid
showEmptyAttachmentError()
This notifies the view to show an error message for trying to launch an attachmentvoid
showErrorDismissDialog()
Called upon receiving a failed request on dismissing aMessage
void
showMessagesList(java.util.List<Message> messages, int totalEntries)
Called when notification request is successful.void
startAwardDetails(Award award)
This notifies the view to start anRewardDetailsActivity
void
startChallengeDetails(int id)
Create an Intent intended for start Challenge detailvoid
startEventsDetails(int id)
Create an Intent intended for start Event detailvoid
startMemberDetails(int id)
Create an Intent intended for start Member detailvoid
startNewsfeedDetails(int id)
Create an Intent intended for start Newsfeed detailvoid
startOfferDetails(int id)
This notifies the view to start the Offer Details Activityvoid
startOfferResponseDetails(int id)
Create an Intent intended for start OfferResponse detailvoid
startOfferUrl(java.lang.String url)
This notifies the view to start the Offer URL Details Activityvoid
startRewardsDetails(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:
onCreateView
in classEndlessListFragmentView<A extends MessagesAdapter,V extends MessagesView,P extends MessagesPresenter<V>>
-
onAttach
public void onAttach(android.content.Context context)
- Overrides:
onAttach
in classListFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>
-
onDestroy
public void onDestroy()
- Overrides:
onDestroy
in classandroidx.fragment.app.Fragment
-
getSharedElementViews
protected android.view.View[] getSharedElementViews()
Description copied from class:MvpFragmentView
Fetches the shared element views.- Overrides:
getSharedElementViews
in 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:
captureSharedElementValues
in classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>
- Parameters:
intent
- intent where the transition helper is added
-
getScreenName
public int getScreenName()
- Specified by:
getScreenName
in interfaceAnalyticsManager.AnalyticsScreen
- Overrides:
getScreenName
in 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:
showMessagesList
in interfaceMessagesView
- Parameters:
messages
- list ofMessage
totalEntries
- total number of entries
-
appendMessagesList
public void appendMessagesList(java.util.List<Message> messages, int totalEntries)
Called when loading more pages is successful- Specified by:
appendMessagesList
in interfaceMessagesView
- Parameters:
messages
- list ofMessage
totalEntries
- total number of entries
-
removeItemOnAdapter
public void removeItemOnAdapter(int messageId)
Called when requesting to dismiss aMessage
is successful- Specified by:
removeItemOnAdapter
in interfaceMessagesView
- Parameters:
messageId
- id of theMessage
-
showErrorDismissDialog
public void showErrorDismissDialog()
Called upon receiving a failed request on dismissing aMessage
- Specified by:
showErrorDismissDialog
in interfaceMessagesView
-
getContentLayoutId
protected int getContentLayoutId()
Description copied from class:MvpFragmentView
Provide the Content Layout ID which is of a Layout Resource Reference of Android- Specified by:
getContentLayoutId
in classMvpFragmentView<V extends MessagesView,P extends MessagesPresenter<V>>
- Returns:
- id of the content layout
-
createPresenter
protected P createPresenter()
Description copied from class:MvpFragmentView
InstantiateMvpFragmentView.mPresenter
to be used for thisMvpActivityView
- Specified by:
createPresenter
in 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:MessagesClickListener
Handles clicking of a message- Specified by:
onMessageClick
in interfaceMessagesClickListener
- Parameters:
message
-Message
objectview
- the view that triggered onClickposition
- position of the item in the list
-
onMessageDismiss
public void onMessageDismiss(int messageId)
Description copied from interface:MessagesClickListener
Handles the deletion of a message- Specified by:
onMessageDismiss
in interfaceMessagesClickListener
- Parameters:
messageId
- id of message
-
setLoading
public void setLoading(boolean loading)
Set the state of refresh progress- Specified by:
setLoading
in 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:MessagesView
This notifies the view on error related to missing offer- Specified by:
showDialogMissingOffer
in interfaceMessagesView
-
startOfferDetails
public void startOfferDetails(int id)
Description copied from interface:MessagesView
This notifies the view to start the Offer Details Activity- Specified by:
startOfferDetails
in interfaceMessagesView
- Parameters:
id
- id of the Offer
-
startOfferUrl
public void startOfferUrl(java.lang.String url)
Description copied from interface:MessagesView
This notifies the view to start the Offer URL Details Activity- Specified by:
startOfferUrl
in interfaceMessagesView
- Parameters:
url
- url to use when navigating via webview
-
startAwardDetails
public void startAwardDetails(Award award)
Description copied from interface:MessagesView
This notifies the view to start anRewardDetailsActivity
- Specified by:
startAwardDetails
in interfaceMessagesView
- Parameters:
award
- instance ofAward
to use for startingRewardDetailsActivity
-
showEmptyAttachmentError
public void showEmptyAttachmentError()
Description copied from interface:MessagesView
This notifies the view to show an error message for trying to launch an attachment- Specified by:
showEmptyAttachmentError
in interfaceMessagesView
-
startChallengeDetails
public void startChallengeDetails(int id)
Create an Intent intended for start Challenge detail- Specified by:
startChallengeDetails
in interfaceMessagesView
- Parameters:
id
- id of the Challenge object
-
startOfferResponseDetails
public void startOfferResponseDetails(int id)
Create an Intent intended for start OfferResponse detail- Specified by:
startOfferResponseDetails
in interfaceMessagesView
- Parameters:
id
- id of the OfferResponse object
-
startRewardsDetails
public void startRewardsDetails(int id)
Create an Intent intended for start Reward detail- Specified by:
startRewardsDetails
in interfaceMessagesView
- Parameters:
id
- id of the Reward object
-
startNewsfeedDetails
public void startNewsfeedDetails(int id)
Create an Intent intended for start Newsfeed detail- Specified by:
startNewsfeedDetails
in interfaceMessagesView
- Parameters:
id
- id of the Newsfeed object
-
startMemberDetails
public void startMemberDetails(int id)
Create an Intent intended for start Member detail- Specified by:
startMemberDetails
in interfaceMessagesView
- Parameters:
id
- id of the Member object
-
startEventsDetails
public void startEventsDetails(int id)
Create an Intent intended for start Event detail- Specified by:
startEventsDetails
in interfaceMessagesView
- Parameters:
id
- id of the Event object
-
-