Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @InjectViewState
- class ActivityPresenter : BasePresenter<IActivityView>(), IActivityPresenter {
- companion object {
- private const val IDENTIFIER: Long = 1
- }
- private var backPressed: Long = 0
- private var isCrossFaded = false
- private var mBarMode: ActionBarMode? = null
- private var mContentUnderToolbar: Boolean = false
- private val tokenManager: TokenManager
- private var mUserPreferences: UserPreferences
- init {
- mMVPComponent.inject(this)
- tokenManager = mStorageComponent.tokenManager()
- mUserPreferences = mStorageComponent.userPref()
- }
- override fun onFirstViewAttach() {
- if (tokenManager.hasToken()) {
- navigateToNextScreen()
- } else {
- navigateTo(WELCOME_SCREEN)
- }
- }
- override fun handlingOrientation() {
- if (!isTablet()) viewState.setOrientationPortrait()
- }
- override fun backPressed(countOfFragments: Int) {
- if (isCrossFaded) {
- viewState.crossFade()
- return
- }
- if (countOfFragments == 1) {
- backPressed()
- } else {
- back()
- }
- }
- override fun drawerItemClick(drawerTitle: String) {
- val context = AndroidApplication.getInstance()
- if (drawerTitle.equals(context.getString(R.string.home), ignoreCase = true)) {
- replaceScreen(MAIN_SCREEN)
- return
- }
- if (drawerTitle.equals(context.getString(R.string.how_to_play), ignoreCase = true)) {
- navigateTo(WEB_PAGE_SCREEN, HOW_TO_PLAY)
- return
- }
- if (drawerTitle.equals(context.getString(R.string.settings), ignoreCase = true)) {
- navigateTo(SETTINGS_SCREEN, drawerTitle)
- return
- }
- if (drawerTitle.equals(context.getString(R.string.log_out), ignoreCase = true)) {
- viewState.crossFade()
- viewState.showConfirmLogoutDialog()
- return
- }
- replaceScreen(BIMBO_SCREEN, drawerTitle)
- }
- override fun initNavDrawer() {
- createAccountHeader()
- }
- override fun setFirstActionBarMode() {
- changeMode()
- }
- override fun changeToolbarMode(toolbarMode: ActionBarMode, contentUnderToolbar: Boolean) {
- mBarMode = toolbarMode
- mContentUnderToolbar = contentUnderToolbar
- changeMode()
- }
- override fun onClickHome() {
- if (mBarMode == ActionBarMode.LOGGED_IN_MAIN) {
- viewState.crossFade()
- } else {
- viewState.backPressed()
- }
- }
- override fun onClickMenuActionSearch() {
- viewState.provideMenuActionSearchToFragment()
- }
- override fun onClickMenuActionCustom() {
- viewState.provideMenuActionCustomToFragment()
- }
- override fun isCrossFaded(isCrossFaded: Boolean) {
- this.isCrossFaded = isCrossFaded
- }
- override fun updateUserProfile() {
- val profile = getProfileWithIdentifier()
- viewState.setDrawerUserProfile(profile)
- }
- override fun drawerHeaderClick() {
- navigateTo(PROFILE_SCREEN)
- viewState.crossFade()
- }
- override fun toolbarTitleOnClick() {
- viewState.provideToolbarTitleOnClickToFragment()
- }
- override fun toolbarSubTitleOnClick() {
- viewState.provideToolbarTitleOnClickToFragment()
- }
- override fun toolbarTitleTextChanged(newText: String) {
- viewState.provideToolbarTitleTextChangedToFragment(newText)
- }
- override fun toolbarTitleActionDone(text: String) {
- viewState.provideToolbarTitleActionDoneToFragment(text)
- }
- override fun toolbarTitleFocusChange(hasFocus: Boolean) {
- viewState.provideToolbarTitleFocusChange(hasFocus)
- }
- override fun confirmLogoutDialogClicked(button: Int) {
- if (button == Dialog.BUTTON_POSITIVE) {
- userLogout()
- newRootScreen(WELCOME_SCREEN)
- }
- }
- private fun userLogout() {
- InstanceIdService.deleteToken { tokenManager.clearPreferences() }
- }
- private fun navigateToNextScreen() {
- if (mUserPreferences.getUser().acceptedEula) {
- navigateTo(MAIN_SCREEN)
- } else {
- newRootScreen(WEB_PAGE_SCREEN, NEW_TERMS_AND_CONDITIONS)
- }
- }
- private fun changeMode() {
- mContentUnderToolbar.let {
- when (mBarMode) {
- ActionBarMode.HIDE -> viewState.hideActionMode(it)
- ActionBarMode.SIMPLE -> viewState.simpleActionMode(it)
- ActionBarMode.LOGGED_IN_MAIN -> viewState.mainInActionMode(it)
- ActionBarMode.EDIT -> viewState.editActionMode(it)
- ActionBarMode.DONE -> viewState.doneActionMode(it)
- ActionBarMode.USER_POINTS -> viewState.userPointsActionMode(it)
- ActionBarMode.SEARCH_FILTER -> viewState.searchSortActionMode(it)
- ActionBarMode.SIMPLE_WITH_PICTURE_IN_END ->
- viewState.simpleWithPictureInEndActionMode(it)
- }
- }
- }
- private fun backPressed() {
- val pressAgain = AndroidApplication.getInstance().getString(R.string.pressAgain)
- if (backPressed + TWO_THOUSAND > System.currentTimeMillis()) {
- viewState.exit()
- } else {
- viewState.showToast(pressAgain)
- }
- backPressed = System.currentTimeMillis()
- }
- private fun createAccountHeader() {
- val profile = getProfileWithIdentifier()
- viewState.buildAccountHeader(profile)
- }
- private fun getProfileWithIdentifier(): ProfileDrawerItem {
- val user = mUserPreferences.getUser()
- return ProfileDrawerItem().withIdentifier(IDENTIFIER).apply {
- if (user.fullName.isNotBlank())
- withName(user.fullName)
- if (!user.image?.getUrl().isNullOrBlank())
- withIcon(user.image?.getUrl())
- else
- withIcon(ContextCompat.getDrawable(AndroidApplication.getInstance(),
- R.drawable.ic_member))
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment