Merge branch 'two-swap-fixes' into 'master'

two swap fixes

See merge request fdroid/fdroidclient!1263
This commit is contained in:
Hans-Christoph Steiner
2023-07-20 14:57:52 +00:00
2 changed files with 10 additions and 4 deletions

View File

@@ -82,6 +82,7 @@ public abstract class IndexCreator<T>(
val versionCode = PackageInfoCompat.getLongVersionCode(packageInfo)
val apkName = "${packageName}_$versionCode.apk"
val apkFile = File(repoDir, apkName)
if (apkFile.exists()) apkFile.delete()
symlink(packageInfo.applicationInfo.publicSourceDir, apkFile.absolutePath)
if (!apkFile.exists()) {
File(packageInfo.applicationInfo.publicSourceDir).copyTo(apkFile)

View File

@@ -5,6 +5,7 @@ import android.content.pm.PackageManager
import android.content.pm.PackageManager.GET_PERMISSIONS
import android.content.pm.PackageManager.GET_SIGNATURES
import android.os.Build.VERSION.SDK_INT
import android.util.Log
import androidx.core.content.pm.PackageInfoCompat
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.encodeToStream
@@ -63,10 +64,14 @@ public class IndexV1Creator(
@Suppress("DEPRECATION")
val flags = GET_SIGNATURES or GET_PERMISSIONS
@Suppress("PackageManagerGetSignatures")
val packageInfo = packageManager.getPackageInfo(packageName, flags)
apps.add(getApp(packageInfo))
packages[packageName] = listOf(getPackage(packageInfo))
try {
@Suppress("PackageManagerGetSignatures")
val packageInfo = packageManager.getPackageInfo(packageName, flags)
apps.add(getApp(packageInfo))
packages[packageName] = listOf(getPackage(packageInfo))
} catch (e: PackageManager.NameNotFoundException) {
Log.i("IndexV1Creator", "app disappeared during addApp: " + e)
} ?: return // this app disappeared, nothing left to do
}
private fun getApp(packageInfo: PackageInfo): AppV1 {