Skip to content

Instantly share code, notes, and snippets.

@RafaRuiz
Created January 4, 2018 15:54
Show Gist options
  • Save RafaRuiz/98ec1e9305894f3fc72f976469ff8b7c to your computer and use it in GitHub Desktop.
Save RafaRuiz/98ec1e9305894f3fc72f976469ff8b7c to your computer and use it in GitHub Desktop.
Presenter Logic Class
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