Skip to content

Commit 1534c88

Browse files
Fix compilation errors
1 parent ded7205 commit 1534c88

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -146,21 +146,19 @@ internal class PackageValidator(context: Context) {
146146
*/
147147
private fun buildCallerInfo(callingPackage: String): CallerPackageInfo? {
148148
val packageInfo = getPackageInfo(callingPackage) ?: return null
149+
val applicationInfo = packageInfo.applicationInfo ?: return null
149150

150-
val appName = packageInfo.applicationInfo.loadLabel(packageManager).toString()
151-
val uid = packageInfo.applicationInfo.uid
151+
val appName = applicationInfo.loadLabel(packageManager).toString()
152+
val uid = applicationInfo.uid
152153
val signature = getSignature(packageInfo)
153154

154-
val requestedPermissions = packageInfo.requestedPermissions
155-
val permissionFlags = packageInfo.requestedPermissionsFlags
156-
val activePermissions = mutableSetOf<String>()
157-
requestedPermissions?.forEachIndexed { index, permission ->
158-
if (permissionFlags[index] and REQUESTED_PERMISSION_GRANTED != 0) {
159-
activePermissions += permission
160-
}
161-
}
155+
val requestedPermissions = packageInfo.requestedPermissions?.asSequence().orEmpty()
156+
val permissionFlags = packageInfo.requestedPermissionsFlags?.asSequence().orEmpty()
157+
val activePermissions = (requestedPermissions zip permissionFlags)
158+
.filter { (_, flag) -> flag and REQUESTED_PERMISSION_GRANTED != 0 }
159+
.mapTo(mutableSetOf()) { (permission, _) -> permission }
162160

163-
return CallerPackageInfo(appName, callingPackage, uid, signature, activePermissions.toSet())
161+
return CallerPackageInfo(appName, callingPackage, uid, signature, activePermissions)
164162
}
165163

166164
/**
@@ -188,15 +186,16 @@ internal class PackageValidator(context: Context) {
188186
* returns `null` as the signature.
189187
*/
190188
@Suppress("deprecation")
191-
private fun getSignature(packageInfo: PackageInfo): String? =
192-
if (packageInfo.signatures == null || packageInfo.signatures.size != 1) {
189+
private fun getSignature(packageInfo: PackageInfo): String? {
190+
val signatures = packageInfo.signatures
191+
return if (signatures == null || signatures.size != 1) {
193192
// Security best practices dictate that an app should be signed with exactly one (1)
194193
// signature. Because of this, if there are multiple signatures, reject it.
195194
null
196195
} else {
197-
val certificate = packageInfo.signatures[0].toByteArray()
198-
getSignatureSha256(certificate)
196+
getSignatureSha256(signatures[0].toByteArray())
199197
}
198+
}
200199

201200
/**
202201
* Finds the Android platform signing key signature. This key is never null.

0 commit comments

Comments
 (0)