Skip to content

Commit df382a6

Browse files
committed
Fixed changes randomly not loading properly
1 parent 59685b7 commit df382a6

File tree

2 files changed

+35
-17
lines changed

2 files changed

+35
-17
lines changed

app/src/main/assets/html/changelogs.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ <h4>Bug Fixes</h4>
2727
<li>Fixed crash when a tag is clicked in <b>Add Tag</b> dialog.</li>
2828
<li>Fixed <b>Batch Extract</b> crashing due to special characters in app name.</li>
2929
<li>Fixed index issue in <b>Batch Extract</b>.</li>
30+
<li>Fixed changes randomly not loading properly.</li>
3031
</ul>
3132

3233
<br/>

app/src/main/java/app/simple/inure/viewmodels/installer/InstallerChangesViewModel.kt

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import android.app.Application
44
import android.content.pm.PackageInfo
55
import android.content.pm.PackageManager
66
import android.os.Build
7+
import android.util.Log
78
import androidx.lifecycle.MutableLiveData
89
import androidx.lifecycle.viewModelScope
910
import app.simple.inure.R
10-
import app.simple.inure.apk.utils.PackageUtils.getPackageArchiveInfo
11-
import app.simple.inure.apk.utils.PackageUtils.getPackageInfo
1211
import app.simple.inure.extensions.viewmodels.WrappedViewModel
1312
import app.simple.inure.models.Triple
1413
import app.simple.inure.util.FileUtils.toFile
@@ -52,17 +51,18 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
5251

5352
private fun loadChangesData() {
5453
viewModelScope.launch(Dispatchers.IO) {
55-
packageInfo = packageManager.getPackageArchiveInfo(file)
54+
packageInfo = packageManager.getPackageArchiveInfo(file.absolutePath, flags)
5655

5756
if (packageInfo == null) {
5857
postWarning("Failed to get package info")
5958
return@launch
6059
}
6160

6261
oldPackageInfo = try {
63-
applicationContext().packageManager.getPackageInfo(packageInfo!!.packageName)
62+
applicationContext().packageManager.getPackageInfo(packageInfo!!.packageName, flags)
6463
} catch (e: Exception) {
65-
null
64+
Log.e(TAG, "Failed to get old package info", e)
65+
PackageInfo()
6666
}
6767

6868
val list = arrayListOf<Triple<String, String, String>>()
@@ -72,7 +72,6 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
7272
list.add(getServicesChanges())
7373
list.add(getReceiversChanges())
7474
list.add(getProvidersChanges())
75-
// list.add(getNativeLibrariesChanges())
7675
list.add(getFeaturesChanges())
7776

7877
changes.postValue(list)
@@ -95,6 +94,8 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
9594
oldPackageInfo!!.requestedPermissions?.let {
9695
oldPermissions.addAll(it)
9796
}
97+
}.onFailure {
98+
Log.e(TAG, "Failed to get permissions", it)
9899
}
99100

100101
added = buildString {
@@ -141,13 +142,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
141142
val oldActivities = arrayListOf<String>()
142143

143144
kotlin.runCatching {
144-
packageInfo!!.activities?.let {
145+
packageInfo!!.activities!!.let {
145146
activities.addAll(it.map { activity -> activity.name })
146147
}
147148

148-
oldPackageInfo!!.activities?.let {
149+
oldPackageInfo!!.activities!!.let {
149150
oldActivities.addAll(it.map { activity -> activity.name })
150151
}
152+
}.onFailure {
153+
Log.e(TAG, "Failed to get activities", it)
151154
}
152155

153156
added = buildString {
@@ -194,13 +197,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
194197
val oldServices = arrayListOf<String>()
195198

196199
kotlin.runCatching {
197-
packageInfo!!.services?.let {
200+
packageInfo!!.services!!.let {
198201
services.addAll(it.map { service -> service.name })
199202
}
200203

201-
oldPackageInfo!!.services?.let {
204+
oldPackageInfo!!.services!!.let {
202205
oldServices.addAll(it.map { service -> service.name })
203206
}
207+
}.onFailure {
208+
Log.e(TAG, "Failed to get services", it)
204209
}
205210

206211
added = buildString {
@@ -247,13 +252,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
247252
val oldReceivers = arrayListOf<String>()
248253

249254
kotlin.runCatching {
250-
packageInfo!!.receivers?.let {
255+
packageInfo!!.receivers!!.let {
251256
receivers.addAll(it.map { receiver -> receiver.name })
252257
}
253258

254-
oldPackageInfo!!.receivers?.let {
259+
oldPackageInfo!!.receivers!!.let {
255260
oldReceivers.addAll(it.map { receiver -> receiver.name })
256261
}
262+
}.onFailure {
263+
Log.e(TAG, "Failed to get receivers", it)
257264
}
258265

259266
added = buildString {
@@ -300,13 +307,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
300307
val oldProviders = arrayListOf<String>()
301308

302309
kotlin.runCatching {
303-
packageInfo!!.providers?.let {
310+
packageInfo!!.providers!!.let {
304311
providers.addAll(it.map { provider -> provider.name })
305312
}
306313

307-
oldPackageInfo!!.providers?.let {
314+
oldPackageInfo!!.providers!!.let {
308315
oldProviders.addAll(it.map { provider -> provider.name })
309316
}
317+
}.onFailure {
318+
Log.e(TAG, "Failed to get providers", it)
310319
}
311320

312321
added = buildString {
@@ -353,13 +362,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
353362
val oldFeatures = arrayListOf<String>()
354363

355364
kotlin.runCatching {
356-
packageInfo!!.reqFeatures?.let {
365+
packageInfo!!.reqFeatures!!.let {
357366
features.addAll(it.map { feature -> feature.name })
358367
}
359368

360-
oldPackageInfo!!.reqFeatures?.let {
369+
oldPackageInfo!!.reqFeatures!!.let {
361370
oldFeatures.addAll(it.map { feature -> feature.name })
362371
}
372+
}.onFailure {
373+
Log.e(TAG, "Failed to get features", it)
363374
}
364375

365376
added = buildString {
@@ -413,6 +424,8 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
413424
oldPackageInfo!!.applicationInfo.nativeLibraryDir?.let {
414425
oldNativeLibraries.addAll(it.toFile().list().orEmpty())
415426
}
427+
}.onFailure {
428+
Log.e(TAG, "Failed to get native libraries", it)
416429
}
417430

418431
added = buildString {
@@ -449,4 +462,8 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
449462

450463
return Triple(title, added.trim(), removed.trim())
451464
}
452-
}
465+
466+
companion object {
467+
private const val TAG = "InstallerChangesViewModel"
468+
}
469+
}

0 commit comments

Comments
 (0)