wxr
2022-11-24 2af932533ef851bf983385244e9912976dbd4daa
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
 
package com.mm.android.deviceaddmodule.mobilecommon.base.mvp;
 
import android.view.View;
 
import com.mm.android.deviceaddmodule.R;
import com.mm.android.deviceaddmodule.mobilecommon.dialog.LCAlertDialog;
import com.mm.android.deviceaddmodule.views.popwindow.BasePopWindow;
import com.mm.android.deviceaddmodule.views.popwindow.PopWindowFactory;
 
/**
 * 设备管理的FragmentActivity基类,主要重写全局等待框
 * 注:initView()需要手动实现
 */
 
public abstract class BaseManagerFragmentActivity<T extends IBasePresenter> extends BaseMvpFragmentActivity<T> {
    private BasePopWindow mLoadingPopWindow;
    private PopWindowFactory mPopWindowFactory;
    private View mTitle;
 
    protected abstract View initTitle();
 
    @Override
    protected void initView() {
        mTitle = initTitle();
    }
 
    /**
     * 修改时是否弹框提示未保存
     * @return
     */
    protected boolean showUnSaveAlertDialog(){
        return false;
    }
 
    private void showAlertDialog() {
        LCAlertDialog.Builder builder = new LCAlertDialog.Builder(this);
        LCAlertDialog alertDialog = builder
                .setTitle(R.string.device_manager_not_saved_tip)
                .setConfirmButton(R.string.device_manager_exit,
                        new LCAlertDialog.OnClickListener() {
 
                            @Override
                            public void onClick(LCAlertDialog dialog,
                                                int which, boolean isChecked) {
                                    finish();
                            }
                        }).setCancelButton(R.string.common_cancel, null)
                .create();
        alertDialog.show(getSupportFragmentManager(), "");
 
    }
 
    @Override
    public void showProgressDialog() {
        if (mTitle == null) {
            super.showProgressDialog();
        } else {
            if (mLoadingPopWindow != null) {
                mLoadingPopWindow.dismiss();
            }
            if (mPopWindowFactory == null)
                mPopWindowFactory = new PopWindowFactory();
            try{
                mLoadingPopWindow = mPopWindowFactory.createLoadingPopWindow(this, mTitle);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
 
    @Override
    public void cancelProgressDialog() {
        if (mLoadingPopWindow == null) {
            super.cancelProgressDialog();
        } else {
            mLoadingPopWindow.dismiss();
        }
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mLoadingPopWindow != null) {
            mLoadingPopWindow.dismiss();
            mLoadingPopWindow = null;
            mPopWindowFactory = null;
        }
    }
 
    @Override
    public void onBackPressed() {
        if(showUnSaveAlertDialog()){
            showAlertDialog();
        }else{
            super.onBackPressed();
        }
    }
}