Runt
2025-02-14 e74c5a24cd70eadd1e73af2d689eabaf2dc3c307
libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
@@ -1,9 +1,8 @@
package com.runt.open.mvi.base
import android.Manifest
import android.app.ActivityManager
import android.content.Context
import android.content.Intent
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
@@ -23,6 +22,7 @@
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.ColorRes
import androidx.annotation.StringRes
import androidx.collection.ArraySet
import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
@@ -80,10 +80,6 @@
            mLayout!!.layout()
        }
        mContext = this
        try { //设置坚屏 一定要放到try catch里面,否则会崩溃
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
        } catch (e : Exception) {
        }
        TAG = this.javaClass.simpleName
        initViews() //初始化UI
        mViewModel!!.onCreate(this  as BaseActivity<LayoutView<BaseViewModel> , BaseViewModel>)
@@ -245,6 +241,16 @@
        return result
    }
    @Suppress("DEPRECATION")
    protected fun isMyServiceRunning(serviceClass: Class<*>): Boolean {
        val manager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
        for (service in manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.name == service.service.className) {
                return true
            }
        }
        return false
    }
    /**
     * 检查权限
@@ -329,109 +335,156 @@
    //===========================================
    //以下为preferences操作
    fun getBooleanUserPrefrence(key : String?) : Boolean {
        return PreferencesUtils.getBoolean(this , key , false , PreferencesUtils.USER)
    fun getBooleanUserPrefrence(key : String) : Boolean {
        return getBooleanUserPrefrence(key,false)
    }
    fun getBooleanProjectPrefrence(key : String?) : Boolean {
        return PreferencesUtils.getBoolean(this , key , false , PreferencesUtils.PROJECT)
    fun getBooleanUserPrefrence(key : String,value : Boolean) : Boolean {
        return PreferencesUtils.getBoolean(this , key , value , PreferencesUtils.USER)
    }
    fun getStringUserPrefrence(key : String?) : String {
        return PreferencesUtils.getString(this , key , "" , PreferencesUtils.USER)
    fun getBooleanProjectPrefrence(key : String) : Boolean {
        return getBooleanProjectPrefrence(key,false)
    }
    fun getStringProjectPrefrence(key : String?) : String {
        return PreferencesUtils.getString(this , key , "" , PreferencesUtils.PROJECT)
    fun getBooleanProjectPrefrence(key : String,value : Boolean) : Boolean {
        return PreferencesUtils.getBoolean(this , key , value , PreferencesUtils.USER)
    }
    fun getIntProjectPrefrence(key : String?) : Int {
        return PreferencesUtils.getInt(this , key , 0 , PreferencesUtils.PROJECT)
    fun getStringUserPrefrence(key : String) : String {
        return getStringUserPrefrence(key,"");
    }
    fun getLongProjectPrefrence(key : String?) : Long {
        return PreferencesUtils.getLong(this , key , 0 , PreferencesUtils.PROJECT)
    fun getStringUserPrefrence(key : String,value : String?) : String {
        return PreferencesUtils.getString(this , key , value, PreferencesUtils.PROJECT)
    }
    fun getFloatProjectPrefrence(key : String?) : Float {
        return PreferencesUtils.getFloat(this , key , 0f , PreferencesUtils.PROJECT)
    fun getStringProjectPrefrence(key : String) : String {
        return getStringProjectPrefrence(key,"");
    }
    fun getStringSetProjectPrefrence(key : String?) : Set<*> {
        return PreferencesUtils.getStringSet(this , key , PreferencesUtils.PROJECT)
    fun getStringProjectPrefrence(key : String,value : String?) : String {
        return PreferencesUtils.getString(this , key , value, PreferencesUtils.PROJECT)
    }
    fun getIntUserPrefrence(key : String?) : Int {
        return PreferencesUtils.getInt(this , key , 0 , PreferencesUtils.USER)
    fun getIntProjectPrefrence(key : String) : Int {
        return getIntProjectPrefrence(key,0);
    }
    fun getLongUserPrefrence(key : String?) : Long {
        return PreferencesUtils.getLong(this , key , 0 , PreferencesUtils.USER)
    fun getIntProjectPrefrence(key : String,value : Int) : Int {
        return PreferencesUtils.getInt(this , key , value , PreferencesUtils.PROJECT)
    }
    fun getFloatUserPrefrence(key : String?) : Float {
        return PreferencesUtils.getFloat(this , key , 0f , PreferencesUtils.USER)
    fun getLongProjectPrefrence(key : String) : Long {
        return getLongProjectPrefrence(key,0);
    }
    fun getStringSetUserPrefrence(key : String?) : Set<*> {
        return PreferencesUtils.getStringSet(this , key , PreferencesUtils.USER)
    fun getLongProjectPrefrence(key : String,value : Long) : Long {
        return PreferencesUtils.getLong(this , key , value , PreferencesUtils.PROJECT)
    }
    fun getFloatProjectPrefrence(key : String) : Float {
        return getFloatProjectPrefrence(key,0f);
    }
    fun putBooleanUserPrefrence(key : String? , value : Boolean) {
    fun getFloatProjectPrefrence(key : String,value : Float) : Float {
        return PreferencesUtils.getFloat(this , key , value , PreferencesUtils.PROJECT)
    }
    fun getStringSetProjectPrefrence(key : String) : Set<*> {
        return getStringSetProjectPrefrence(key, ArraySet<Any?>() )
    }
    fun getStringSetProjectPrefrence(key : String,value : Set<*>?) : Set<*> {
        return PreferencesUtils.getStringSet(this , key ,value, PreferencesUtils.PROJECT)
    }
    fun getIntUserPrefrence(key : String) : Int {
        return getIntUserPrefrence(key,0)
    }
    fun getIntUserPrefrence(key : String,value : Int) : Int {
        return PreferencesUtils.getInt(this , key , value , PreferencesUtils.USER)
    }
    fun getLongUserPrefrence(key : String) : Long {
        return getLongUserPrefrence(key,0)
    }
    fun getLongUserPrefrence(key : String,value : Long) : Long {
        return PreferencesUtils.getLong(this , key , value , PreferencesUtils.USER)
    }
    fun getFloatUserPrefrence(key : String) : Float {
        return getFloatUserPrefrence(key,0f)
    }
    fun getFloatUserPrefrence(key : String,value : Float) : Float {
        return PreferencesUtils.getFloat(this , key , value , PreferencesUtils.USER)
    }
    fun getStringSetUserPrefrence(key : String) : Set<*> {
        return getStringSetUserPrefrence(key,ArraySet<Any?>())
    }
    fun getStringSetUserPrefrence(key : String,value : Set<*>) : Set<*> {
        return PreferencesUtils.getStringSet(this , key ,value, PreferencesUtils.USER)
    }
    fun putBooleanUserPrefrence(key : String , value : Boolean) {
        PreferencesUtils.putBoolean(this , key , value , PreferencesUtils.USER)
    }
    fun putBooleanProjectPrefrence(key : String? , value : Boolean) {
    fun putBooleanProjectPrefrence(key : String , value : Boolean) {
        PreferencesUtils.putBoolean(this , key , value , PreferencesUtils.PROJECT)
    }
    fun putStringUserPrefrence(key : String? , value : String?) {
    fun putStringUserPrefrence(key : String , value : String?) {
        PreferencesUtils.putString(this , key , value , PreferencesUtils.USER)
    }
    fun putStringProjectPrefrence(key : String? , value : String?) {
    fun putStringProjectPrefrence(key : String , value : String?) {
        PreferencesUtils.putString(this , key , value , PreferencesUtils.PROJECT)
    }
    fun putIntProjectPrefrence(key : String? , value : Int) {
    fun putIntProjectPrefrence(key : String , value : Int) {
        PreferencesUtils.putInt(this , key , value , PreferencesUtils.PROJECT)
    }
    fun putLongProjectPrefrence(key : String? , value : Long) {
    fun putLongProjectPrefrence(key : String , value : Long) {
        PreferencesUtils.putLong(this , key , value , PreferencesUtils.PROJECT)
    }
    fun putFloatProjectPrefrence(key : String? , value : Float) {
    fun putFloatProjectPrefrence(key : String , value : Float) {
        PreferencesUtils.putFloat(this , key , value , PreferencesUtils.PROJECT)
    }
    fun putStringSetProjectPrefrence(key : String? , value : Set<*>?) {
    fun putStringSetProjectPrefrence(key : String , value : Set<*>?) {
        PreferencesUtils.putStringSet(this , key , value , PreferencesUtils.PROJECT)
    }
    fun putIntUserPrefrence(key : String? , value : Int) {
    fun putIntUserPrefrence(key : String , value : Int) {
        PreferencesUtils.putInt(this , key , value , PreferencesUtils.USER)
    }
    fun putLongUserPrefrence(key : String? , value : Long) {
    fun putLongUserPrefrence(key : String , value : Long) {
        PreferencesUtils.putLong(this , key , value , PreferencesUtils.USER)
    }
    fun putFloatUserPrefrence(key : String? , value : Float) {
    fun putFloatUserPrefrence(key : String , value : Float) {
        PreferencesUtils.putFloat(this , key , value , PreferencesUtils.USER)
    }
    fun putStringSetUserPrefrence(key : String? , value : Set<*>?) {
    fun putStringSetUserPrefrence(key : String , value : Set<*>?) {
        PreferencesUtils.putStringSet(this , key , value , PreferencesUtils.USER)
    }
    fun removeUserKey(key : String?) {
    fun removeUserKey(key : String) {
        PreferencesUtils.removeKey(this , key , PreferencesUtils.USER)
    }
    fun removeProjectKey(key : String?) {
    fun removeProjectKey(key : String) {
        PreferencesUtils.removeKey(this , key , PreferencesUtils.PROJECT)
    }