org.dalol.orthodoxmezmurmedia.modules.chat.ChatActivity.java Source code

Java tutorial

Introduction

Here is the source code for org.dalol.orthodoxmezmurmedia.modules.chat.ChatActivity.java

Source

/*
 * Copyright (c) 2016 Amharic Mezmur Lyrics
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.dalol.orthodoxmezmurmedia.modules.chat;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentManager;
import android.view.MenuItem;

import org.dalol.orthodoxmezmurmedia.R;
import org.dalol.orthodoxmezmurmedia.basic.base.BaseActivity;
import org.dalol.orthodoxmezmurmedia.basic.di.components.DaggerChatComponent;
import org.dalol.orthodoxmezmurmedia.basic.di.modules.ChatModule;
import org.dalol.model.callback.FragmentChatBlogActionListener;
import org.dalol.model.user.User;
import org.dalol.presenter.business.chat.ChatPresenter;
import org.dalol.presenter.presentation.chat.ChatView;

/**
 * @author Filippo Engidashet <filippo.eng@gmail.com>
 * @version 1.0.0
 * @since 9/10/2016
 */
public class ChatActivity extends BaseActivity<ChatPresenter> implements ChatView, FragmentChatBlogActionListener {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        showHome();
        setTitle("Mezmur Blog Chat");

    }

    @Override
    protected void resolveDependency() {
        DaggerChatComponent.builder().applicationComponent(getApplicationComponent())
                .chatModule(new ChatModule(this)).build().inject(this);
    }

    @Override
    protected int getStatusBarColor() {
        return R.color.colorPrimaryDark;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    protected int getContentView() {
        return R.layout.activity_chat;
    }

    @Override
    public void onStart() {
        super.onStart();
        //checkUserAuthentication("onStart", mAuth);

    }

    @Override
    protected void onPause() {
        super.onPause();
    }

    @Override
    public void onActionPerformed(PerformedActionType performedActionType) {
        switch (performedActionType) {
        case ACTION_PROCEED_TO_LOGIN_SCREEN:
            onBackPressed();
            break;
        case ACTION_PROCEED_TO_REGISTRATION_SCREEN:
            MezmurChatBlogSignupFragment signupFragment = MezmurChatBlogSignupFragment.newInstance();
            replaceFragment(R.id.chat_blog_content, signupFragment);
            break;
        //            case ACTION_PROCEED_TO_BLOG_SCREEN:
        //                MezmurChatBlogMessagesFragment blogFragment = MezmurChatBlogMessagesFragment.newInstance(mAuth.getCurrentUser());
        //                if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
        //                    replaceFragment(R.id.chat_blog_content, blogFragment);
        //                } else {
        //                    addFragment(R.id.chat_blog_content, blogFragment);
        //                }
        //                break;
        }
    }

    @Override
    public void onLogoutClicked() {
        onShowDialog("Logging Out...");
    }

    @Override
    public void onShowLoginScreen() {
        //clearBackStack();
        getPresenter().onAuthenticationDenied();
    }

    @Override
    public void onSaveEditedMessage(String messageDraft) {
        getPresenter().onSaveDraftMessage(messageDraft);
    }

    @Override
    public void onBackPressed() {
        //        if(getPresenter().isUserLoggedIn()) {
        //            super.onBackPressed();
        //        } else
        if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
            getSupportFragmentManager().popBackStack();
        } else {
            finish();
        }
    }

    @Override
    public void onOpenChatBlogScreen(String currentUserUid, String email, String userName) {
        User user = new User(userName, email);
        //mDatabase.child("users").child(currentUserUid).setValue(user);
        //        MezmurChatBlogMessagesFragment blogFragment = MezmurChatBlogMessagesFragment.newInstance(mAuth.getCurrentUser(),
        //                getPresenter().onRestoreMessageDraft());
        //        //clearBackStack();
        //        replaceFragment(R.id.chat_blog_content, blogFragment);
        //        if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
        //            getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        //            addFragment(R.id.chat_blog_content, blogFragment);
        //        } else {
        //            replaceFragmentWithCustomAnimation(R.id.chat_blog_content, blogFragment, R.anim.pop_enter, R.anim.pop_exit);
        //        }
    }

    @Override
    public void onOpenLoginScreen() {
        MezmurChatBlogLoginFragment loginFragment = MezmurChatBlogLoginFragment.newInstance();
        //clearBackStack();
        replaceFragment(R.id.chat_blog_content, loginFragment);
    }

    private void clearBackStack() {
        FragmentManager manager = getSupportFragmentManager();
        for (int i = 0; i < manager.getBackStackEntryCount(); i++) {
            manager.popBackStack();
        }
    }
}