Switch to getSystemService's extension method everywhere
Null-safe and avoids type-casting Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -38,6 +38,7 @@ import android.view.LayoutInflater
|
|||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.app.ActivityOptionsCompat
|
import androidx.core.app.ActivityOptionsCompat
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
@@ -101,9 +102,9 @@ fun Context.getEmptyActivityBundle(): Bundle? {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun Context.copyToClipBoard(data: String?) {
|
fun Context.copyToClipBoard(data: String?) {
|
||||||
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
val clipboard = getSystemService<ClipboardManager>()
|
||||||
val clip = ClipData.newPlainText("Download Url", data)
|
val clip = ClipData.newPlainText("Download Url", data)
|
||||||
clipboard.setPrimaryClip(clip)
|
clipboard?.setPrimaryClip(clip)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.getStyledAttributeColor(id: Int): Int {
|
fun Context.getStyledAttributeColor(id: Int): Int {
|
||||||
@@ -115,9 +116,7 @@ fun Context.getStyledAttributeColor(id: Int): Int {
|
|||||||
|
|
||||||
fun Context.isIgnoringBatteryOptimizations(): Boolean {
|
fun Context.isIgnoringBatteryOptimizations(): Boolean {
|
||||||
return if (isMAndAbove()) {
|
return if (isMAndAbove()) {
|
||||||
(getSystemService(Context.POWER_SERVICE) as PowerManager).isIgnoringBatteryOptimizations(
|
(getSystemService<PowerManager>())?.isIgnoringBatteryOptimizations(packageName) ?: true
|
||||||
packageName
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
@@ -137,8 +136,8 @@ fun Context.isExternalStorageAccessible(): Boolean {
|
|||||||
|
|
||||||
fun Context.isDomainVerified(domain: String): Boolean {
|
fun Context.isDomainVerified(domain: String): Boolean {
|
||||||
return if (isSAndAbove()) {
|
return if (isSAndAbove()) {
|
||||||
val domainVerificationManager = getSystemService(DomainVerificationManager::class.java)
|
val domainVerificationManager = getSystemService<DomainVerificationManager>()
|
||||||
val userState = domainVerificationManager.getDomainVerificationUserState(packageName)
|
val userState = domainVerificationManager!!.getDomainVerificationUserState(packageName)
|
||||||
val domainMap = userState?.hostToStateMap?.filterKeys { it == domain }
|
val domainMap = userState?.hostToStateMap?.filterKeys { it == domain }
|
||||||
domainMap?.values?.first() == DomainVerificationUserState.DOMAIN_STATE_SELECTED
|
domainMap?.values?.first() == DomainVerificationUserState.DOMAIN_STATE_SELECTED
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -19,9 +19,9 @@
|
|||||||
|
|
||||||
package com.aurora.extensions
|
package com.aurora.extensions
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
|
|
||||||
fun View.isVisible() = visibility == View.VISIBLE
|
fun View.isVisible() = visibility == View.VISIBLE
|
||||||
|
|
||||||
@@ -38,15 +38,15 @@ fun View.invisible() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun View.showKeyboard() {
|
fun View.showKeyboard() {
|
||||||
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
val imm = context.getSystemService<InputMethodManager>()
|
||||||
this.requestFocus()
|
this.requestFocus()
|
||||||
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
|
imm?.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun View.hideKeyboard(): Boolean {
|
fun View.hideKeyboard(): Boolean {
|
||||||
try {
|
try {
|
||||||
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
val imm = context.getSystemService<InputMethodManager>()
|
||||||
return imm.hideSoftInputFromWindow(windowToken, 0)
|
return imm?.hideSoftInputFromWindow(windowToken, 0) ?: false
|
||||||
} catch (ignored: RuntimeException) {
|
} catch (ignored: RuntimeException) {
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import android.content.pm.PackageManager
|
|||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.core.content.pm.PackageInfoCompat
|
import androidx.core.content.pm.PackageInfoCompat
|
||||||
import com.aurora.extensions.isOAndAbove
|
import com.aurora.extensions.isOAndAbove
|
||||||
import com.aurora.extensions.isPAndAbove
|
import com.aurora.extensions.isPAndAbove
|
||||||
@@ -101,10 +102,9 @@ class AppInstaller @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun notifyInstallation(context: Context, displayName: String, packageName: String) {
|
fun notifyInstallation(context: Context, displayName: String, packageName: String) {
|
||||||
val notificationManager =
|
val notificationManager = context.getSystemService<NotificationManager>()
|
||||||
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
val notification = NotificationUtil.getInstallNotification(context, displayName, packageName)
|
val notification = NotificationUtil.getInstallNotification(context, displayName, packageName)
|
||||||
notificationManager.notify(packageName.hashCode(), notification)
|
notificationManager!!.notify(packageName.hashCode(), notification)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getErrorString(context: Context, status: Int): String {
|
fun getErrorString(context: Context, status: Int): String {
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ package com.aurora.store.data.providers
|
|||||||
|
|
||||||
import android.app.ActivityManager
|
import android.app.ActivityManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Context.ACTIVITY_SERVICE
|
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import com.aurora.extensions.isHuawei
|
import com.aurora.extensions.isHuawei
|
||||||
import java.util.Properties
|
import java.util.Properties
|
||||||
|
|
||||||
@@ -77,11 +77,10 @@ class NativeDeviceInfoProvider(val context: Context) {
|
|||||||
//Shared Libraries
|
//Shared Libraries
|
||||||
setProperty("SharedLibraries", getSharedLibraries().joinToString(separator = ","))
|
setProperty("SharedLibraries", getSharedLibraries().joinToString(separator = ","))
|
||||||
//GL Extensions
|
//GL Extensions
|
||||||
val activityManager =
|
val activityManager = context.getSystemService<ActivityManager>()
|
||||||
context.getSystemService(ACTIVITY_SERVICE) as ActivityManager
|
|
||||||
setProperty(
|
setProperty(
|
||||||
"GL.Version",
|
"GL.Version",
|
||||||
activityManager.deviceConfigurationInfo.reqGlEsVersion.toString()
|
activityManager!!.deviceConfigurationInfo.reqGlEsVersion.toString()
|
||||||
)
|
)
|
||||||
setProperty(
|
setProperty(
|
||||||
"GL.Extensions",
|
"GL.Extensions",
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import androidx.activity.result.ActivityResultCallback
|
|||||||
import androidx.activity.result.ActivityResultLauncher
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.aurora.extensions.checkManifestPermission
|
import com.aurora.extensions.checkManifestPermission
|
||||||
import com.aurora.extensions.isDomainVerified
|
import com.aurora.extensions.isDomainVerified
|
||||||
@@ -128,9 +129,8 @@ class PermissionProvider : ActivityResultCallback<ActivityResult> {
|
|||||||
PermissionType.INSTALL_UNKNOWN_APPS -> PackageUtil.canRequestPackageInstalls(context)
|
PermissionType.INSTALL_UNKNOWN_APPS -> PackageUtil.canRequestPackageInstalls(context)
|
||||||
PermissionType.DOZE_WHITELIST -> {
|
PermissionType.DOZE_WHITELIST -> {
|
||||||
if (isMAndAbove()) {
|
if (isMAndAbove()) {
|
||||||
val powerManager =
|
val powerManager = context.getSystemService<PowerManager>()
|
||||||
context.getSystemService(Context.POWER_SERVICE) as PowerManager
|
powerManager?.isIgnoringBatteryOptimizations(BuildConfig.APPLICATION_ID) ?: false
|
||||||
powerManager.isIgnoringBatteryOptimizations(BuildConfig.APPLICATION_ID)
|
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.content.Intent
|
|||||||
import android.content.pm.PackageInstaller
|
import android.content.pm.PackageInstaller
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.core.content.IntentCompat
|
import androidx.core.content.IntentCompat
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import com.aurora.extensions.runOnUiThread
|
import com.aurora.extensions.runOnUiThread
|
||||||
import com.aurora.store.AuroraApp
|
import com.aurora.store.AuroraApp
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
@@ -86,15 +87,14 @@ class InstallerStatusReceiver : BroadcastReceiver() {
|
|||||||
displayName: String,
|
displayName: String,
|
||||||
status: Int
|
status: Int
|
||||||
) {
|
) {
|
||||||
val notificationManager =
|
val notificationManager = context.getSystemService<NotificationManager>()
|
||||||
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
val notification = NotificationUtil.getInstallerStatusNotification(
|
val notification = NotificationUtil.getInstallerStatusNotification(
|
||||||
context,
|
context,
|
||||||
packageName,
|
packageName,
|
||||||
displayName,
|
displayName,
|
||||||
AppInstaller.getErrorString(context, status)
|
AppInstaller.getErrorString(context, status)
|
||||||
)
|
)
|
||||||
notificationManager.notify(packageName.hashCode(), notification)
|
notificationManager!!.notify(packageName.hashCode(), notification)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun promptUser(intent: Intent, context: Context) {
|
private fun promptUser(intent: Intent, context: Context) {
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.aurora.store.data.work
|
package com.aurora.store.data.work
|
||||||
|
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.app.Service
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.hilt.work.HiltWorker
|
import androidx.hilt.work.HiltWorker
|
||||||
import androidx.work.CoroutineWorker
|
import androidx.work.CoroutineWorker
|
||||||
import androidx.work.ForegroundInfo
|
import androidx.work.ForegroundInfo
|
||||||
@@ -79,6 +79,8 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
private val TAG = DownloadWorker::class.java.simpleName
|
private val TAG = DownloadWorker::class.java.simpleName
|
||||||
|
|
||||||
override suspend fun doWork(): Result {
|
override suspend fun doWork(): Result {
|
||||||
|
notificationManager = appContext.getSystemService<NotificationManager>()!!
|
||||||
|
|
||||||
// Bail out immediately if authData is not valid
|
// Bail out immediately if authData is not valid
|
||||||
if (!authProvider.isSavedAuthDataValid()) {
|
if (!authProvider.isSavedAuthDataValid()) {
|
||||||
Log.e(TAG, "AuthData is not valid, exiting!")
|
Log.e(TAG, "AuthData is not valid, exiting!")
|
||||||
@@ -106,9 +108,6 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
purchaseHelper = PurchaseHelper(authProvider.authData!!)
|
purchaseHelper = PurchaseHelper(authProvider.authData!!)
|
||||||
.using(httpClient)
|
.using(httpClient)
|
||||||
|
|
||||||
notificationManager =
|
|
||||||
appContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
|
|
||||||
// Bail out if file list is empty
|
// Bail out if file list is empty
|
||||||
download.fileList = download.fileList.ifEmpty {
|
download.fileList = download.fileList.ifEmpty {
|
||||||
purchase(download.packageName, download.versionCode, download.offerType)
|
purchase(download.packageName, download.versionCode, download.offerType)
|
||||||
@@ -204,9 +203,7 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
notifyStatus(DownloadStatus.FAILED)
|
notifyStatus(DownloadStatus.FAILED)
|
||||||
}
|
}
|
||||||
|
|
||||||
with(appContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager) {
|
notificationManager.cancel(NOTIFICATION_ID)
|
||||||
cancel(NOTIFICATION_ID)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.aurora.store.data.work
|
package com.aurora.store.data.work
|
||||||
|
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.app.Service
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.hilt.work.HiltWorker
|
import androidx.hilt.work.HiltWorker
|
||||||
import androidx.work.CoroutineWorker
|
import androidx.work.CoroutineWorker
|
||||||
import androidx.work.Data
|
import androidx.work.Data
|
||||||
@@ -99,8 +99,7 @@ class ExportWorker @AssistedInject constructor(
|
|||||||
val displayName = inputData.getString(DISPLAY_NAME)
|
val displayName = inputData.getString(DISPLAY_NAME)
|
||||||
val versionCode = inputData.getInt(VERSION_CODE, -1)
|
val versionCode = inputData.getInt(VERSION_CODE, -1)
|
||||||
|
|
||||||
notificationManager =
|
notificationManager = appContext.getSystemService<NotificationManager>()!!
|
||||||
appContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
|
|
||||||
if (packageName.isNullOrEmpty() || isDownload && versionCode == -1) {
|
if (packageName.isNullOrEmpty() || isDownload && versionCode == -1) {
|
||||||
Log.e(TAG, "Input data is corrupt, bailing out!")
|
Log.e(TAG, "Input data is corrupt, bailing out!")
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.aurora.store.data.work
|
|||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.hilt.work.HiltWorker
|
import androidx.hilt.work.HiltWorker
|
||||||
import androidx.work.Constraints
|
import androidx.work.Constraints
|
||||||
import androidx.work.CoroutineWorker
|
import androidx.work.CoroutineWorker
|
||||||
@@ -111,8 +112,7 @@ class UpdateWorker @AssistedInject constructor(
|
|||||||
Log.i(TAG, "Checking for app updates")
|
Log.i(TAG, "Checking for app updates")
|
||||||
|
|
||||||
val autoUpdatesMode = Preferences.getInteger(appContext, PREFERENCE_UPDATES_AUTO, 3)
|
val autoUpdatesMode = Preferences.getInteger(appContext, PREFERENCE_UPDATES_AUTO, 3)
|
||||||
val notifyManager =
|
val notificationManager = appContext.getSystemService<NotificationManager>()
|
||||||
appContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
|
|
||||||
// Exit if auto-updates is turned off in settings
|
// Exit if auto-updates is turned off in settings
|
||||||
if (autoUpdatesMode == 0) {
|
if (autoUpdatesMode == 0) {
|
||||||
@@ -140,7 +140,7 @@ class UpdateWorker @AssistedInject constructor(
|
|||||||
if (updatesList.isNotEmpty()) {
|
if (updatesList.isNotEmpty()) {
|
||||||
if (autoUpdatesMode == 1) {
|
if (autoUpdatesMode == 1) {
|
||||||
Log.i(TAG, "Found updates, notifying!")
|
Log.i(TAG, "Found updates, notifying!")
|
||||||
notifyManager.notify(
|
notificationManager!!.notify(
|
||||||
notificationID,
|
notificationID,
|
||||||
NotificationUtil.getUpdateNotification(appContext, updatesList)
|
NotificationUtil.getUpdateNotification(appContext, updatesList)
|
||||||
)
|
)
|
||||||
@@ -159,7 +159,7 @@ class UpdateWorker @AssistedInject constructor(
|
|||||||
if (list.isEmpty()) return@let
|
if (list.isEmpty()) return@let
|
||||||
|
|
||||||
Log.i(TAG, "Found apps that cannot be auto-updated, notifying!")
|
Log.i(TAG, "Found apps that cannot be auto-updated, notifying!")
|
||||||
notifyManager.notify(
|
notificationManager!!.notify(
|
||||||
notificationID,
|
notificationID,
|
||||||
NotificationUtil.getUpdateNotification(appContext, list)
|
NotificationUtil.getUpdateNotification(appContext, list)
|
||||||
)
|
)
|
||||||
@@ -167,7 +167,7 @@ class UpdateWorker @AssistedInject constructor(
|
|||||||
} else {
|
} else {
|
||||||
// Fallback to notification if battery optimizations are enabled
|
// Fallback to notification if battery optimizations are enabled
|
||||||
Log.i(TAG, "Found updates, but battery optimizations are enabled!")
|
Log.i(TAG, "Found updates, but battery optimizations are enabled!")
|
||||||
notifyManager.notify(
|
notificationManager!!.notify(
|
||||||
notificationID,
|
notificationID,
|
||||||
NotificationUtil.getUpdateNotification(appContext, updatesList)
|
NotificationUtil.getUpdateNotification(appContext, updatesList)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.aurora.store.util
|
package com.aurora.store.util
|
||||||
|
|
||||||
import android.app.Application
|
|
||||||
import android.app.Notification
|
import android.app.Notification
|
||||||
import android.app.NotificationChannel
|
import android.app.NotificationChannel
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
@@ -13,6 +12,7 @@ import android.net.Uri
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import androidx.core.app.PendingIntentCompat
|
import androidx.core.app.PendingIntentCompat
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
import androidx.navigation.NavDeepLinkBuilder
|
import androidx.navigation.NavDeepLinkBuilder
|
||||||
import androidx.work.WorkManager
|
import androidx.work.WorkManager
|
||||||
@@ -30,8 +30,7 @@ object NotificationUtil {
|
|||||||
|
|
||||||
fun createNotificationChannel(context: Context) {
|
fun createNotificationChannel(context: Context) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
val notificationManager =
|
val notificationManager = context.getSystemService<NotificationManager>()
|
||||||
context.getSystemService(Application.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
val channels = ArrayList<NotificationChannel>()
|
val channels = ArrayList<NotificationChannel>()
|
||||||
channels.add(
|
channels.add(
|
||||||
NotificationChannel(
|
NotificationChannel(
|
||||||
@@ -65,7 +64,7 @@ object NotificationUtil {
|
|||||||
setSound(null, null)
|
setSound(null, null)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
notificationManager.createNotificationChannels(channels)
|
notificationManager!!.createNotificationChannels(channels)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,11 +20,11 @@
|
|||||||
package com.aurora.store.view.ui.preferences
|
package com.aurora.store.view.ui.preferences
|
||||||
|
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
import android.content.Context
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.appcompat.widget.Toolbar
|
import androidx.appcompat.widget.Toolbar
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
@@ -63,17 +63,16 @@ class InstallationPreference : PreferenceFragmentCompat() {
|
|||||||
|
|
||||||
findPreference<Preference>(PREFERENCE_INSTALLATION_DEVICE_OWNER)?.apply {
|
findPreference<Preference>(PREFERENCE_INSTALLATION_DEVICE_OWNER)?.apply {
|
||||||
val packageName = context.packageName
|
val packageName = context.packageName
|
||||||
val devicePolicyManager =
|
val devicePolicyManager = context.getSystemService<DevicePolicyManager>()
|
||||||
context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
|
|
||||||
|
|
||||||
isVisible = devicePolicyManager.isDeviceOwnerApp(packageName)
|
isVisible = devicePolicyManager?.isDeviceOwnerApp(packageName) ?: false
|
||||||
setOnPreferenceClickListener {
|
setOnPreferenceClickListener {
|
||||||
context.showDialog(
|
context.showDialog(
|
||||||
context.getString(R.string.pref_clear_device_owner_title),
|
context.getString(R.string.pref_clear_device_owner_title),
|
||||||
context.getString(R.string.pref_clear_device_owner_desc),
|
context.getString(R.string.pref_clear_device_owner_desc),
|
||||||
{ _: DialogInterface, _: Int ->
|
{ _: DialogInterface, _: Int ->
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
devicePolicyManager.clearDeviceOwnerApp(packageName)
|
devicePolicyManager!!.clearDeviceOwnerApp(packageName)
|
||||||
activity?.recreate()
|
activity?.recreate()
|
||||||
},
|
},
|
||||||
{ dialog: DialogInterface, _: Int -> dialog.dismiss() }
|
{ dialog: DialogInterface, _: Int -> dialog.dismiss() }
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import android.net.ConnectivityManager
|
|||||||
import android.net.Network
|
import android.net.Network
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import android.net.NetworkRequest
|
import android.net.NetworkRequest
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.aurora.extensions.isMAndAbove
|
import com.aurora.extensions.isMAndAbove
|
||||||
@@ -38,8 +39,7 @@ class NetworkViewModel @Inject constructor(
|
|||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
val status: MutableLiveData<NetworkStatus> = MutableLiveData(NetworkStatus.UNAVAILABLE)
|
val status: MutableLiveData<NetworkStatus> = MutableLiveData(NetworkStatus.UNAVAILABLE)
|
||||||
|
|
||||||
private val connectivityManager =
|
private val connectivityManager = context.getSystemService<ConnectivityManager>()
|
||||||
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
|
||||||
private val networkCallback = object : ConnectivityManager.NetworkCallback() {
|
private val networkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||||
override fun onAvailable(network: Network) {
|
override fun onAvailable(network: Network) {
|
||||||
super.onAvailable(network)
|
super.onAvailable(network)
|
||||||
@@ -53,11 +53,11 @@ class NetworkViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun register() {
|
fun register() {
|
||||||
connectivityManager.registerNetworkCallback(getNetworkRequest(), networkCallback)
|
connectivityManager?.registerNetworkCallback(getNetworkRequest(), networkCallback)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun unregister() {
|
fun unregister() {
|
||||||
connectivityManager.unregisterNetworkCallback(networkCallback)
|
connectivityManager?.unregisterNetworkCallback(networkCallback)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getNetworkRequest(): NetworkRequest {
|
private fun getNetworkRequest(): NetworkRequest {
|
||||||
@@ -70,4 +70,4 @@ class NetworkViewModel @Inject constructor(
|
|||||||
|
|
||||||
return networkRequest.build()
|
return networkRequest.build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user