Create extension to get app names
This commit is contained in:
parent
fc66e5f120
commit
639c570150
@ -17,7 +17,6 @@
|
|||||||
package im.vector.app.core.pushers
|
package im.vector.app.core.pushers
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageManager
|
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
@ -25,6 +24,7 @@ import com.squareup.moshi.Json
|
|||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
|
import im.vector.app.core.utils.getApplicationLabel
|
||||||
import im.vector.app.features.VectorFeatures
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.settings.BackgroundSyncMode
|
import im.vector.app.features.settings.BackgroundSyncMode
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
import im.vector.app.features.settings.VectorPreferences
|
||||||
@ -143,12 +143,7 @@ class UnifiedPushHelper @Inject constructor(
|
|||||||
if (it == context.packageName) {
|
if (it == context.packageName) {
|
||||||
internalDistributorName
|
internalDistributorName
|
||||||
} else {
|
} else {
|
||||||
try {
|
context.getApplicationLabel(it)
|
||||||
val ai = context.packageManager.getApplicationInfo(it, 0)
|
|
||||||
context.packageManager.getApplicationLabel(ai)
|
|
||||||
} catch (e: PackageManager.NameNotFoundException) {
|
|
||||||
it
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,12 +243,7 @@ class UnifiedPushHelper @Inject constructor(
|
|||||||
return stringProvider.getString(R.string.unifiedpush_distributor_background_sync)
|
return stringProvider.getString(R.string.unifiedpush_distributor_background_sync)
|
||||||
}
|
}
|
||||||
val distributor = up.getDistributor(context)
|
val distributor = up.getDistributor(context)
|
||||||
return try {
|
return context.getApplicationLabel(distributor)
|
||||||
val ai = context.packageManager.getApplicationInfo(distributor, 0)
|
|
||||||
context.packageManager.getApplicationLabel(ai).toString()
|
|
||||||
} catch (e: PackageManager.NameNotFoundException) {
|
|
||||||
distributor
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isEmbeddedDistributor(): Boolean {
|
fun isEmbeddedDistributor(): Boolean {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package im.vector.app.core.resources
|
package im.vector.app.core.resources
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import im.vector.app.core.utils.getApplicationLabel
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ -25,9 +26,7 @@ class AppNameProvider @Inject constructor(private val context: Context) {
|
|||||||
fun getAppName(): String {
|
fun getAppName(): String {
|
||||||
return try {
|
return try {
|
||||||
val appPackageName = context.applicationContext.packageName
|
val appPackageName = context.applicationContext.packageName
|
||||||
val pm = context.packageManager
|
var appName = context.getApplicationLabel(appPackageName)
|
||||||
val appInfo = pm.getApplicationInfo(appPackageName, 0)
|
|
||||||
var appName = pm.getApplicationLabel(appInfo).toString()
|
|
||||||
|
|
||||||
// Use appPackageName instead of appName if appName contains any non-ASCII character
|
// Use appPackageName instead of appName if appName contains any non-ASCII character
|
||||||
if (!appName.matches("\\A\\p{ASCII}*\\z".toRegex())) {
|
if (!appName.matches("\\A\\p{ASCII}*\\z".toRegex())) {
|
||||||
|
@ -23,6 +23,7 @@ import android.content.ClipData
|
|||||||
import android.content.ClipboardManager
|
import android.content.ClipboardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.PowerManager
|
import android.os.PowerManager
|
||||||
@ -59,6 +60,18 @@ fun Context.isAnimationEnabled(): Boolean {
|
|||||||
return Settings.Global.getFloat(contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1f) != 0f
|
return Settings.Global.getFloat(contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1f) != 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the application label of the provided package. If not found, the package is returned.
|
||||||
|
*/
|
||||||
|
fun Context.getApplicationLabel(packageName: String): String {
|
||||||
|
return try {
|
||||||
|
val ai = packageManager.getApplicationInfo(packageName, 0)
|
||||||
|
packageManager.getApplicationLabel(ai).toString()
|
||||||
|
} catch (e: PackageManager.NameNotFoundException) {
|
||||||
|
packageName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* display the system dialog for granting this permission. If previously granted, the
|
* display the system dialog for granting this permission. If previously granted, the
|
||||||
* system will not show it (so you should call this method).
|
* system will not show it (so you should call this method).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user