BaseActivity.java 3.15 KB
package com.hjx.parent;


import static com.xiasuhuei321.loadingdialog.view.LoadingDialog.Speed.SPEED_TWO;

import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewbinding.ViewBinding;

import com.hjx.parent.dialog.TipDialog;
import com.xiasuhuei321.loadingdialog.view.LoadingDialog;


public abstract class BaseActivity<VB extends ViewBinding> extends AppCompatActivity {
    protected Context context;
    protected AppCompatActivity activity;
    protected VB binding;
    private LoadingDialog dialog;
    private TipDialog tipDialog;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = getViewBinding();
        setContentView(binding.getRoot());
        showWhiteStatus();
        context = this;
        activity = this;
        initView(savedInstanceState);
    }


    public void showLoadingDialog(String text) {
        dialog = new LoadingDialog(this);
        dialog.setLoadingText(text)
                .setSuccessText("成功")//显示加载成功时的文字
                .setFailedText("失败")
                .setLoadSpeed(SPEED_TWO)
                .show();
    }

    public void loadFail(String text) {
        dialog.setFailedText(text);
        dialog.loadFailed();
    }

    public void cancelLoadingDialog() {
        dialog.loadSuccess();
    }

    public void showWhiteStatus() {
        Window window = getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(Color.TRANSPARENT);
    }


    protected void hideBottomUIMenu() {
        Window window = getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(Color.TRANSPARENT);
    }

    public void showToast(String text) {
        Toast.makeText(App.getInstance().getApplicationContext(), text, Toast.LENGTH_SHORT).show();
    }

    public void showTipDialog(String title, String content, String cancel, String confirm, TipDialog.TipDialogInterface tipDialogInterface) {
        tipDialog = new TipDialog(context, title, content, confirm, cancel, tipDialogInterface);
        tipDialog.show();
    }

    public abstract void initView(Bundle savedInstanceState);

    protected abstract VB getViewBinding();

}