Created
January 4, 2018 15:54
-
-
Save RafaRuiz/98ec1e9305894f3fc72f976469ff8b7c to your computer and use it in GitHub Desktop.
Presenter Logic Class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SimpleListActivityViewPresenterLogic constructor(private val simpleListActivityViewPresenter: SimpleListActivityViewPresenter) : | |
SimpleListActivityPresenter { | |
/** | |
* Lifecycle functions | |
*/ | |
override fun onCreate() { | |
simpleListActivityViewPresenter.setOnClickListeners() | |
simpleListActivityViewPresenter.loadBannerImage() | |
simpleListActivityViewPresenter.configureRecyclerViewView() | |
} | |
override fun onResume() { | |
simpleListActivityViewPresenter.refreshView() | |
} | |
/** | |
* Logic functions | |
*/ | |
override fun setOnBackPressed(backMore: AppCompatImageView) { | |
backMore.setOnClickListener { | |
getActivity().finish() | |
} | |
} | |
override fun setOnSignInClicked(moreSignInButton: Button) { | |
moreSignInButton.setOnClickListener { | |
LoginPresenterLogic.goToAccountLogin(getActivity()) | |
} | |
} | |
override fun setOnRegisterClicked(moreRegisterButton: Button) { | |
moreRegisterButton.setOnClickListener { | |
AccountNotLoggedInActivityPresenterLogic.goToNotLoggedInWebActivity( | |
getActivity(), | |
AccountNotLoggedInActivity.Action.REGISTER) | |
} | |
} | |
override fun refreshView(notLoggedInArea: View, recyclerView: RecyclerView) { | |
if (LoginHelper.isUserLoggedIn(getActivity())) { | |
notLoggedInArea.visibility = View.GONE | |
} else { | |
notLoggedInArea.visibility = View.VISIBLE | |
} | |
recyclerView.adapter?.notifyDataSetChanged() | |
} | |
override fun configureRecyclerView(recyclerView: RecyclerView) { | |
recyclerView.layoutManager = LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false) | |
recyclerView.adapter = MoreOptionAdapter(getActivity(), getPages(), onLogout = { simpleListActivityViewPresenter.refreshView() }) | |
} | |
override fun loadBannerImage(bannerImage: ImageView) { | |
val imagePath = ContentManager.getContentManagerInRAM().loginBanner.url | |
val url = URLHelper.getFullUrlWithAppBaseUrl(bannerImage.context, imagePath) | |
ImageLoaderHelper.displayImageNoRepeat( | |
url, | |
bannerImage | |
) | |
} | |
/** | |
* Helper functions to help the presenter to present | |
*/ | |
private fun getPages(): ArrayList<Page> { | |
val contentManager = ContentManager.Companion.getContentManagerInRAM() | |
return contentManager.pages.filter { element -> | |
element.showOnAndroidPhone && (!element.isSecure || LoginHelper.isUserLoggedIn(getActivity())) | |
} as ArrayList | |
} | |
companion object { | |
private val SIMPLE_LIST_KEY = "SIMPLE_LIST_KEY" | |
fun goToSimpleListActivity(context: Context, content: ArrayList<String>) { | |
context.startActivity( | |
Intent(context, SimpleListActivity::class.java) | |
.putExtra(SIMPLE_LIST_KEY, content) | |
) | |
} | |
} | |
private fun getActivity() = simpleListActivityViewPresenter.getActivity() | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment