Class OffersWithResponsesListFragment<A extends OffersWithResponsesAdapter,V extends OffersWithResponsesListView,P extends OffersWithResponsesListPresenter<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.offers.ui.list.offerswithresponses.OffersWithResponsesListFragment<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
,OffersWithResponsesListView
,OfferWithResponseClipListener
,LceView
,MvpLceView
,MvpView
,RefreshableView
,EndlessListView
,ListView
- Direct Known Subclasses:
ClippedOffersWithResponsesListFragment
public class OffersWithResponsesListFragment<A extends OffersWithResponsesAdapter,V extends OffersWithResponsesListView,P extends OffersWithResponsesListPresenter<V>> extends EndlessListFragmentView<A,V,P> implements OffersWithResponsesListView, OfferWithResponseClipListener
The fragment class for showing the list of offers with responses using two offer models:Offer
andOfferResponse
. Can receive the following intent extras:- EARNED_OFFER_CATEGORY - category of earned offers. Offers under this category
is considered as
OfferResponse
OPEN_URL_DETAIL
- the flag for showing offer in detail or in browser.
OFFER_RESPONSE_DETAILS_REQUEST_CODE
- Request code when usingListFragmentView.startActivityForResult(Intent, int)
forOfferResponseDetailsActivity
andOfferDetailsActivity
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
EARNED_OFFER_CATEGORY
static int
OFFER_RESPONSE_DETAILS_REQUEST_CODE
static java.lang.String
OPEN_URL_DETAIL
static int
RESULT_CODE_NEED_REFRESH
-
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 OffersWithResponsesListFragment()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendOffersList(java.util.List<BaseData> offersWithResponses, int totalEntries)
Notifies the view to show the list ofBaseData
.protected OffersWithResponsesAdapter
createAdapter()
Create the adapter used in current RecycleView present.protected VerticalSpaceItemDecoration
createItemDecoration()
Create the item decoration used in the RecyclerView.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 AndroidOffersWithResponseListUpdateListener
getOffersWithResponseListener()
int
getScreenName()
protected void
notifyListChanged()
Called to notify that there are changes with the listvoid
onActivityResult(int requestCode, int resultCode, android.content.Intent data)
android.view.View
onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container, android.os.Bundle savedInstanceState)
void
onOfferClipped(int id, boolean isOfferResponse, boolean isClipped)
Handles clipping/unclipping of an offer or offer responsevoid
refreshData()
Refresh the list and show the loading view.void
refreshItem(java.lang.String errorMessage, int id)
Notifies the view to refresh the item.void
setOffersWithResponseUpdateListener(OffersWithResponseListUpdateListener offersWithResponseListener)
Set the listener when there is an update with the listvoid
showOffersList(java.util.List<BaseData> offersWithResponses, int totalEntries)
Notifies the view to show the list ofBaseData
.void
updateClipState(int id)
Notifies the view to update the clip status of the given id-
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, onAttach, 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
captureSharedElementValues, getPresenter, getSharedElementViews, 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, onAttach, onAttachFragment, onConfigurationChanged, onContextItemSelected, onCreate, onCreateAnimation, onCreateAnimator, onCreateContextMenu, onCreateOptionsMenu, onDestroy, 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
-
OFFER_RESPONSE_DETAILS_REQUEST_CODE
public static final int OFFER_RESPONSE_DETAILS_REQUEST_CODE
- See Also:
- Constant Field Values
-
RESULT_CODE_NEED_REFRESH
public static final int RESULT_CODE_NEED_REFRESH
- See Also:
- Constant Field Values
-
EARNED_OFFER_CATEGORY
public static final java.lang.String EARNED_OFFER_CATEGORY
- See Also:
- Constant Field Values
-
OPEN_URL_DETAIL
public static final java.lang.String OPEN_URL_DETAIL
- 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 OffersWithResponsesAdapter,V extends OffersWithResponsesListView,P extends OffersWithResponsesListPresenter<V>>
-
createAdapter
protected OffersWithResponsesAdapter createAdapter()
Create the adapter used in current RecycleView present. This is commonly used when overriding theOffersWithResponsesAdapter
- Returns:
- instance of
OffersWithResponsesAdapter
-
createItemDecoration
protected VerticalSpaceItemDecoration createItemDecoration()
Create the item decoration used in the RecyclerView. This invoked when initializing the list for the first time- Returns:
- instance of
VerticalSpaceItemDecoration
for the RecyclerView
-
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 OffersWithResponsesListView,P extends OffersWithResponsesListPresenter<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 OffersWithResponsesListView,P extends OffersWithResponsesListPresenter<V>>
- Returns:
- return the
MvpBasePresenter
-
showOffersList
public void showOffersList(java.util.List<BaseData> offersWithResponses, int totalEntries)
Description copied from interface:OffersWithResponsesListView
Notifies the view to show the list ofBaseData
. This list contains two objects:Offer
andOfferResponse
. This also means that the GET offers with responses API was successful.- Specified by:
showOffersList
in interfaceOffersWithResponsesListView
- Parameters:
offersWithResponses
- this list of offer and offer responsetotalEntries
- the total number of offers
-
appendOffersList
public void appendOffersList(java.util.List<BaseData> offersWithResponses, int totalEntries)
Description copied from interface:OffersWithResponsesListView
Notifies the view to show the list ofBaseData
. This list contains two objects:Offer
andOfferResponse
. This also means that the GET offers with responses API with pagination was successful.- Specified by:
appendOffersList
in interfaceOffersWithResponsesListView
- Parameters:
offersWithResponses
- this list of offer and offer responsetotalEntries
- the total number of offers
-
updateClipState
public void updateClipState(int id)
Description copied from interface:OffersWithResponsesListView
Notifies the view to update the clip status of the given id- Specified by:
updateClipState
in interfaceOffersWithResponsesListView
- Parameters:
id
- offer or offer response id
-
notifyListChanged
protected void notifyListChanged()
Called to notify that there are changes with the list
-
onActivityResult
public void onActivityResult(int requestCode, int resultCode, @Nullable android.content.Intent data)
- Overrides:
onActivityResult
in classandroidx.fragment.app.Fragment
-
onOfferClipped
public void onOfferClipped(int id, boolean isOfferResponse, boolean isClipped)
Description copied from interface:OfferWithResponseClipListener
Handles clipping/unclipping of an offer or offer response- Specified by:
onOfferClipped
in interfaceOfferWithResponseClipListener
- Parameters:
id
- id of offer or offer responseisOfferResponse
- true if an offer is an offer responseisClipped
- true - to clip an object, false - to unclip an object
-
refreshItem
public void refreshItem(java.lang.String errorMessage, int id)
Description copied from interface:OffersWithResponsesListView
Notifies the view to refresh the item. This is called when clipping/unclipping fails.- Specified by:
refreshItem
in interfaceOffersWithResponsesListView
- Parameters:
errorMessage
- error messageid
- id offer or offer response id
-
getScreenName
public int getScreenName()
- Specified by:
getScreenName
in interfaceAnalyticsManager.AnalyticsScreen
- Overrides:
getScreenName
in classMvpFragmentView<V extends OffersWithResponsesListView,P extends OffersWithResponsesListPresenter<V>>
-
refreshData
public void refreshData()
Refresh the list and show the loading view.
-
setOffersWithResponseUpdateListener
public void setOffersWithResponseUpdateListener(OffersWithResponseListUpdateListener offersWithResponseListener)
Set the listener when there is an update with the list- Parameters:
offersWithResponseListener
- callback on updating offers with response
-
getOffersWithResponseListener
public OffersWithResponseListUpdateListener getOffersWithResponseListener()
- Returns:
- listener when there is an update with the list
-
-