| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- package com.android.chmo.base;
- import android.content.Context;
- import android.content.Intent;
- import android.content.res.Configuration;
- import android.content.res.Resources;
- import android.os.Build;
- import android.os.Bundle;
- import android.support.annotation.Nullable;
- import android.support.v7.app.AppCompatActivity;
- import android.util.DisplayMetrics;
- import android.view.View;
- import android.widget.Toast;
- import com.android.chmo.R;
- import com.android.chmo.ui.dialog.LoadingDialog;
- import com.netease.nim.avchatkit.common.activity.ActivityManager;
- import com.netease.nim.uikit.common.util.StatusBarUtil;
- import butterknife.ButterKnife;
- /**
- * Created by Administrator on 2018/7/30.
- */
- public abstract class BaseActivity extends AppCompatActivity {
- public static final int STATUS_BAR_STYLE_DEFAULT = 1 << 1;
- public static final int STATUS_BAR_STYLE_LIGHT_CONTENT = 1 << 2;
- private Toast toast;
- private LoadingDialog loadingDialog;
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- ActivityManager.getInstance().pushActivity(this);
- switch (getStatusBarStyle()) {
- case STATUS_BAR_STYLE_DEFAULT:
- StatusBarUtil.setTransparentStatusBar(this, false);
- break;
- case STATUS_BAR_STYLE_LIGHT_CONTENT:
- StatusBarUtil.setTransparentStatusBar(this, true);
- break;
- }
- if (hideNavigationBar() && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
- View decorView = getWindow().getDecorView();
- int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_FULLSCREEN;
- decorView.setSystemUiVisibility(uiOptions);
- }
- setContentView(getContentResId());
- ButterKnife.bind(this);
- initView();
- }
- /**
- * 布局资源文件
- */
- protected abstract int getContentResId();
- protected int getStatusBarStyle() {
- return STATUS_BAR_STYLE_DEFAULT;
- }
- protected boolean hideNavigationBar() {
- return false;
- }
- /**
- * 初始化控件
- */
- public abstract void initView();
- public Context getContext() {
- return this;
- }
- @Override
- public void finish() {
- super.finish();
- ActivityManager.getInstance().popActivity(this);
- }
- public void openPage(Class clazz) {
- openPage(new Intent(this, clazz));
- }
- public void openPage(Intent intent) {
- startActivity(intent);
- }
- public void openPageForResult(Intent intent, int requestCode) {
- startActivityForResult(intent, requestCode);
- }
- public void close() {
- finish();
- }
- public void showToast(String msg) {
- if (!isFinishing()) {
- if (toast == null) {
- toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
- } else {
- toast.setText(msg);
- }
- toast.show();
- }
- }
- public void showToast(int res) {
- showToast(getString(res));
- }
- public void showLoading() {
- this.showLoading(null);
- }
- public void showLoading(String loading) {
- if (loadingDialog == null) {
- loadingDialog = new LoadingDialog(this);
- }
- loadingDialog.setLoading(loading);
- if (!loadingDialog.isShowing()) {
- loadingDialog.show();
- }
- }
- public void hideLoading() {
- if (loadingDialog != null && loadingDialog.isShowing()) {
- loadingDialog.dismiss();
- }
- }
- @Override
- public Resources getResources() {
- Resources resources = super.getResources();
- Configuration newConfig = resources.getConfiguration();
- DisplayMetrics displayMetrics = resources.getDisplayMetrics();
- if (resources != null && newConfig.fontScale != 1) {
- newConfig.fontScale = 1;
- if (Build.VERSION.SDK_INT >= 17) {
- Context configurationContext = createConfigurationContext(newConfig);
- resources = configurationContext.getResources();
- displayMetrics.scaledDensity = displayMetrics.density * newConfig.fontScale;
- } else {
- // resources.updateConfiguration(newConfig, displayMetrics);
- }
- }
- return resources;
- }
- }
|