Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

android / dayu

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Switch branch/tag
  • dayu
  • ..
  • activity
  • BaseActivity.java
Find file
BlameHistoryPermalink
  • 罗翻's avatar
    增加baselibrary · 4ba8f452
    罗翻 committed 7 years ago
    4ba8f452
BaseActivity.java 4.57 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
package com.dayu.base.ui.activity;

import android.content.Intent;
import android.databinding.ViewDataBinding;
import android.os.Bundle;

import com.dayu.base.R;
import com.dayu.base.common.Constants;
import com.dayu.base.presenter.BasePresenter;
import com.dayu.base.ui.BaseView;
import com.dayu.base.utils.InstanceUtil;
import com.dayu.base.utils.ProgressUtil;
import com.dayu.base.utils.ToastUtils;
import com.dayu.base.widgets.CustomDialog;

import java.lang.reflect.ParameterizedType;

/**
 * Created by luofan on 17/11/02.
 */
public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBinding> extends BaseBindingActivity<B>
        implements BaseView {
    public P mPresenter;
    private boolean isDialogShow = false;

    @Override
    protected void initPresenter() {
        super.initPresenter();
        if (this.getClass().getGenericSuperclass() instanceof ParameterizedType &&
                ((ParameterizedType) (this.getClass().getGenericSuperclass())).getActualTypeArguments().length > 0) {
            Class mPresenterClass = (Class) ((ParameterizedType) (this.getClass()
                    .getGenericSuperclass())).getActualTypeArguments()[0];
            mPresenter = InstanceUtil.getInstance(mPresenterClass);
            if (mPresenter != null) {
                mPresenter.setView(this);
//                mBind.setVariable(BR.presenter, mPresenter);
            }
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mPresenter != null) {
            mPresenter.onDetached();
        }
    }

    public void showToast(String msg) {
        ToastUtils.showShortToast(msg);
    }

    public void showToast(int resId) {
        ToastUtils.showShortToast(resId);
    }

    public void showDialog() {
        ProgressUtil.startLoad(this);
    }

    public void showDialog(String str) {
        ProgressUtil.startLoad(this, str);
    }

    public void hideDialog() {
        ProgressUtil.stopLoad();
    }

    public void dumpBack() {
        mActivity.finish();
    }

    public void dumpBack(int requestCode, Intent intent) {
        mActivity.setResult(requestCode, intent);
        mActivity.finish();
    }

    public void startActivity(Class cls) {
        mActivity.startActivity(new Intent(mActivity, cls));
    }

    public void startActivityForIntent(Intent intent) {
        mActivity.startActivity(intent);
    }

    public void startActivity(Class<?> clz, Bundle bundle) {
        Intent intent = new Intent(mActivity, clz);
        if (bundle != null) {
            intent.putExtra(Constants.BUNDLE, bundle);
        }
        mActivity.startActivity(intent);
    }

    public void startActivityForReult(Class<?> clz, Bundle bundle, int requestCode) {
        Intent intent = new Intent(mActivity, clz);
        if (bundle != null) {
            intent.putExtra(Constants.BUNDLE, bundle);
        }
        mActivity.startActivityForResult(intent, requestCode);
    }

    public void startActivityForReult(Class<?> clz, int requestCode) {
        mActivity.startActivityForResult(new Intent(mActivity, clz), requestCode);
    }

    public void startActvityAndFinish(Class<?> clz) {
        mActivity.startActivity(new Intent(mActivity, clz));
        mActivity.finish();
    }

    public void startActivityAndFinish(Class<?> clz, Bundle bundle) {
        Intent intent = new Intent(mActivity, clz);
        if (bundle != null) {
            intent.putExtra(Constants.BUNDLE, bundle);
        }
        mActivity.startActivity(intent);
        mActivity.finish();
    }

    public Bundle getBundle() {
        return getIntent().getBundleExtra(Constants.BUNDLE);
    }

    /**
     * token超时提示重新登录.
     */
    public void showLoginDialog() {
        if (isDialogShow) {
            return;
        }
        CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
                , (dialog, confirm) -> {
            if (confirm) {
//                EMClient.getInstance().logout(true);
//                UserManager.getInstance().clearUserInfo();
//                Intent intent = new Intent(mActivity, LoginActivity.class);
//                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
//                mActivity.startActivity(intent);
            }
            dialog.dismiss();
            isDialogShow = false;
        });
        mDialog.setTitle(getString(R.string.notice))
                .setPositiveButton(getString(R.string.login_again))
                .setOneButton(true);
        mDialog.show();
        isDialogShow = true;
    }
}