Runt
2023-02-22 ea6ce17bf3272259295adccbad85583079b5bac0
app/src/main/java/com/auto/lyric/base/activities/BaseActivity.java
@@ -3,6 +3,7 @@
import android.Manifest;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.os.Bundle;
@@ -10,9 +11,11 @@
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.annotation.ColorRes;
@@ -25,10 +28,13 @@
import com.auto.lyric.R;
import com.auto.lyric.base.model.BaseViewModel;
import com.auto.lyric.base.model.ViewModelFactory;
import com.auto.lyric.util.DeviceUtil;
import com.auto.lyric.util.PreferencesUtils;
import java.io.File;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.util.Set;
import dmax.dialog.SpotsDialog;
@@ -93,6 +99,7 @@
        }
        Class<VM> vmClass = (Class<VM>) type.getActualTypeArguments()[1];
        viewModel = new ViewModelProvider(this,getViewModelFactory()).get(vmClass);
        viewModel.onCreate(this);
        setContentView(binding.getRoot());
        mContext = this;
        try {
@@ -267,6 +274,93 @@
        showToast(getString(msg));
    }
    public void showInputDialog(String title, String hint, InputDialogClick confirmClick){
        showInputDialog(title,hint,"确认",confirmClick);
    }
    public void showInputDialog(String title, String hint, String confirm,InputDialogClick confirmClick){
        showInputDialog(title,hint,confirm,"取消",confirmClick,null);
    }
    /**
     * inputdialog
     * @param title         标题文本
     * @param hint          提示文本
     * @param confirm       确认文本
     * @param cancle        取消文本
     * @param confirmClick  确认事件
     * @param cancleClick   取消事件
     * @return
     */
    public void showInputDialog(String title, String hint, String confirm, String cancle, InputDialogClick confirmClick, InputDialogClick cancleClick){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(title);
        EditText editText = new EditText(this);
        editText.setHint(hint);
        ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        params.setMargins(DeviceUtil.convertDpToPixel(30,this),DeviceUtil.convertDpToPixel(20,this),DeviceUtil.convertDpToPixel(30,this),0);
        editText.setLayoutParams(params);
        LinearLayout lin = new LinearLayout(this);
        lin.addView(editText);
        builder.setView(lin);
        builder.setCancelable(false);
        AlertDialog dialg = builder.create();
        dialg.setCanceledOnTouchOutside(false);
        dialg.setCancelable(false);
        dialg.setButton(AlertDialog.BUTTON_NEGATIVE, confirm, (dialog, which) -> {
            confirmClick.onClick(dialg,editText,which);
        });
        dialg.setButton(AlertDialog.BUTTON_POSITIVE,cancle,(dialog, which) -> {
            if(cancleClick != null) {
                cancleClick.onClick(dialg, editText, which);
            }else{
                dialg.dismiss();
            }
        });
        dialg.show();
    }
    protected interface InputDialogClick{
        void onClick(AlertDialog dialog,EditText editText,int whitch);
    }
    public void showDialog(String title, String hint, DialogInterface.OnClickListener  confirmClick){
        showDialog(title,hint,"确认",confirmClick);
    }
    public void showDialog(String title, String hint, String confirm,DialogInterface.OnClickListener  confirmClick){
        showDialog(title,hint,confirm,"取消",confirmClick,null);
    }
    /**
     * inputdialog
     * @param title         标题文本
     * @param hint          提示文本
     * @param confirm       确认文本
     * @param cancle        取消文本
     * @param confirmClick  确认事件
     * @param cancleClick   取消事件
     * @return
     */
    public void showDialog(String title, String hint, String confirm, String cancle, DialogInterface.OnClickListener confirmClick, DialogInterface.OnClickListener cancleClick){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(title);
        builder.setMessage(hint);
        builder.setCancelable(false);
        AlertDialog dialg = builder.create();
        dialg.setCanceledOnTouchOutside(false);
        dialg.setCancelable(false);
        dialg.setButton(AlertDialog.BUTTON_NEGATIVE, confirm, (dialog, which) -> {
            confirmClick.onClick(dialg,which);
        });
        dialg.setButton(AlertDialog.BUTTON_POSITIVE,cancle,(dialog, which) -> {
            if(cancleClick != null) {
                cancleClick.onClick(dialg, which);
            }else{
                dialg.dismiss();
            }
        });
        dialg.show();
    }
    /**
     * 获取文件保存路径 sdcard根目录/download/文件名称
     * @param fileUrl
@@ -288,4 +382,126 @@
        return false;
    }
    public boolean getBooleanUserPrefrence(String key){
        return PreferencesUtils.getBoolean(this,key,false,PreferencesUtils.USER);
    }
    public boolean getBooleanProjectPrefrence(String key){
        return PreferencesUtils.getBoolean(this,key,false,PreferencesUtils.PROJECT);
    }
    public String getStringUserPrefrence(String key){
        return PreferencesUtils.getString(this,key,"",PreferencesUtils.USER);
    }
    public String getStringProjectPrefrence(String key){
        return PreferencesUtils.getString(this,key,"",PreferencesUtils.PROJECT);
    }
    public Integer getIntProjectPrefrence(String key){
        return PreferencesUtils.getInt(this,key,0,PreferencesUtils.PROJECT);
    }
    public Long getLongProjectPrefrence(String key){
        return PreferencesUtils.getLong(this,key,0,PreferencesUtils.PROJECT);
    }
    public float getFloatProjectPrefrence(String key){
        return PreferencesUtils.getFloat(this,key,0,PreferencesUtils.PROJECT);
    }
    public Set getStringSetProjectPrefrence(String key){
        return PreferencesUtils.getStringSet(this,key,PreferencesUtils.PROJECT);
    }
    public Integer getIntUserPrefrence(String key){
        return PreferencesUtils.getInt(this,key,0,PreferencesUtils.USER);
    }
    public Long getLongUserPrefrence(String key){
        return PreferencesUtils.getLong(this,key,0,PreferencesUtils.USER);
    }
    public float getFloatUserPrefrence(String key){
        return PreferencesUtils.getFloat(this,key,0,PreferencesUtils.USER);
    }
    public Set getStringSetUserPrefrence(String key){
        return PreferencesUtils.getStringSet(this,key,PreferencesUtils.USER);
    }
    public void putBooleanUserPrefrence(String key ,Boolean value){
        PreferencesUtils.putBoolean(this,key,value,PreferencesUtils.USER);
    }
    public void putBooleanProjectPrefrence(String key,Boolean value){
        PreferencesUtils.putBoolean(this,key,value,PreferencesUtils.PROJECT);
    }
    public void putStringUserPrefrence(String key,String value){
        PreferencesUtils.putString(this,key,value,PreferencesUtils.USER);
    }
    public void putStringProjectPrefrence(String key,String value){
        PreferencesUtils.putString(this,key,value,PreferencesUtils.PROJECT);
    }
    public void putIntProjectPrefrence(String key,int value){
        PreferencesUtils.putInt(this,key,value,PreferencesUtils.PROJECT);
    }
    public void putLongProjectPrefrence(String key,long value){
        PreferencesUtils.putLong(this,key,value,PreferencesUtils.PROJECT);
    }
    public void putFloatProjectPrefrence(String key,float value){
        PreferencesUtils.putFloat(this,key,value,PreferencesUtils.PROJECT);
    }
    public void putStringSetProjectPrefrence(String key, Set value){
        PreferencesUtils.putStringSet(this,key,value,PreferencesUtils.PROJECT);
    }
    public void putIntUserPrefrence(String key,int value){
        PreferencesUtils.putInt(this,key,value,PreferencesUtils.USER);
    }
    public void putLongUserPrefrence(String key,long value){
        PreferencesUtils.putLong(this,key,value,PreferencesUtils.USER);
    }
    public void putFloatUserPrefrence(String key,float value){
        PreferencesUtils.putFloat(this,key,value,PreferencesUtils.USER);
    }
    public void putStringSetUserPrefrence(String key, Set value){
        PreferencesUtils.putStringSet(this,key,value,PreferencesUtils.USER);
    }
    public void removeUserKey(String key){
        PreferencesUtils.removeKey(this,key,PreferencesUtils.USER);
    }
    public void removeProjectKey(String key){
        PreferencesUtils.removeKey(this,key,PreferencesUtils.PROJECT);
    }
    public void removeUserValue(String Value){
        PreferencesUtils.removeValue(this,Value,PreferencesUtils.USER);
    }
    public void removeProjectValue(String Value){
        PreferencesUtils.removeValue(this,Value,PreferencesUtils.PROJECT);
    }
    public void clearProjectData(){
        PreferencesUtils.clearData(this,PreferencesUtils.PROJECT);
    }
    public void clearUserData(){
        PreferencesUtils.clearData(this,PreferencesUtils.USER);
    }
}