diff --git a/app/src/main/java/luyao/util/ktx/ui/IntentExtActivity.kt b/app/src/main/java/luyao/util/ktx/ui/IntentExtActivity.kt index c080ad9..67246fc 100644 --- a/app/src/main/java/luyao/util/ktx/ui/IntentExtActivity.kt +++ b/app/src/main/java/luyao/util/ktx/ui/IntentExtActivity.kt @@ -1,6 +1,9 @@ package luyao.util.ktx.ui import android.Manifest +import android.content.Context +import android.os.PowerManager +import android.view.WindowManager import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.files.FileFilter import com.afollestad.materialdialogs.files.fileChooser @@ -45,6 +48,7 @@ class IntentExtActivity : CommonListActivity() { private fun installApk() { +powerManager request(Manifest.permission.READ_EXTERNAL_STORAGE) { onGranted { chooseFile() diff --git a/ktx/src/main/java/luyao/util/ktx/base/BaseVMActivity.kt b/ktx/src/main/java/luyao/util/ktx/base/BaseVMActivity.kt index 9b72b7a..6627cb7 100644 --- a/ktx/src/main/java/luyao/util/ktx/base/BaseVMActivity.kt +++ b/ktx/src/main/java/luyao/util/ktx/base/BaseVMActivity.kt @@ -2,7 +2,9 @@ package luyao.util.ktx.base import android.os.Bundle import androidx.lifecycle.LifecycleObserver +import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders +import java.lang.Exception /** * Created by luyao @@ -28,7 +30,11 @@ abstract class BaseVMActivity : BaseActivity(),LifecycleObse open fun providerVMClass(): Class? = null - open fun startObserve() {} + open fun startObserve() { + mViewModel.mException.observe(this, Observer { it?.let { onError(it) } }) + } + + open fun onError(e: Exception){} override fun onDestroy() { mViewModel.let { diff --git a/ktx/src/main/java/luyao/util/ktx/base/BaseVMFragment.kt b/ktx/src/main/java/luyao/util/ktx/base/BaseVMFragment.kt index 24a8dc9..23c9273 100644 --- a/ktx/src/main/java/luyao/util/ktx/base/BaseVMFragment.kt +++ b/ktx/src/main/java/luyao/util/ktx/base/BaseVMFragment.kt @@ -4,7 +4,9 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders +import java.lang.Exception /** * Created by luyao @@ -26,7 +28,12 @@ abstract class BaseVMFragment : androidx.fragment.app.Fragme super.onViewCreated(view, savedInstanceState) } - open fun startObserve() {} + open fun startObserve() { + mViewModel.mException.observe(this, Observer { it?.let { onError(it) } }) + } + + open fun onError(e:Exception){} + abstract fun getLayoutResId(): Int abstract fun initView() diff --git a/ktx/src/main/java/luyao/util/ktx/base/BaseViewModel.kt b/ktx/src/main/java/luyao/util/ktx/base/BaseViewModel.kt index 908c959..8c45436 100644 --- a/ktx/src/main/java/luyao/util/ktx/base/BaseViewModel.kt +++ b/ktx/src/main/java/luyao/util/ktx/base/BaseViewModel.kt @@ -12,7 +12,7 @@ import kotlinx.coroutines.* */ open class BaseViewModel : ViewModel(), LifecycleObserver { - private val mException: MutableLiveData = MutableLiveData() + val mException: MutableLiveData = MutableLiveData() private fun launchOnUI(block: suspend CoroutineScope.() -> Unit) { diff --git a/ktx/src/main/java/luyao/util/ktx/ext/SystemServiceExt.kt b/ktx/src/main/java/luyao/util/ktx/ext/SystemServiceExt.kt index 72f6d24..015947d 100644 --- a/ktx/src/main/java/luyao/util/ktx/ext/SystemServiceExt.kt +++ b/ktx/src/main/java/luyao/util/ktx/ext/SystemServiceExt.kt @@ -26,7 +26,7 @@ import androidx.core.content.ContextCompat * Created by luyao * on 2019/7/9 9:17 */ -inline fun Context.getSystemService(): T? = +inline fun Context.getSystemService(): T? = ContextCompat.getSystemService(this, T::class.java) val Context.windowManager get() = getSystemService()