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