@@ -4,11 +4,10 @@ import android.app.Application
4
4
import android.content.pm.PackageInfo
5
5
import android.content.pm.PackageManager
6
6
import android.os.Build
7
+ import android.util.Log
7
8
import androidx.lifecycle.MutableLiveData
8
9
import androidx.lifecycle.viewModelScope
9
10
import app.simple.inure.R
10
- import app.simple.inure.apk.utils.PackageUtils.getPackageArchiveInfo
11
- import app.simple.inure.apk.utils.PackageUtils.getPackageInfo
12
11
import app.simple.inure.extensions.viewmodels.WrappedViewModel
13
12
import app.simple.inure.models.Triple
14
13
import app.simple.inure.util.FileUtils.toFile
@@ -52,17 +51,18 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
52
51
53
52
private fun loadChangesData () {
54
53
viewModelScope.launch(Dispatchers .IO ) {
55
- packageInfo = packageManager.getPackageArchiveInfo(file)
54
+ packageInfo = packageManager.getPackageArchiveInfo(file.absolutePath, flags )
56
55
57
56
if (packageInfo == null ) {
58
57
postWarning(" Failed to get package info" )
59
58
return @launch
60
59
}
61
60
62
61
oldPackageInfo = try {
63
- applicationContext().packageManager.getPackageInfo(packageInfo!! .packageName)
62
+ applicationContext().packageManager.getPackageInfo(packageInfo!! .packageName, flags )
64
63
} catch (e: Exception ) {
65
- null
64
+ Log .e(TAG , " Failed to get old package info" , e)
65
+ PackageInfo ()
66
66
}
67
67
68
68
val list = arrayListOf<Triple <String , String , String >>()
@@ -72,7 +72,6 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
72
72
list.add(getServicesChanges())
73
73
list.add(getReceiversChanges())
74
74
list.add(getProvidersChanges())
75
- // list.add(getNativeLibrariesChanges())
76
75
list.add(getFeaturesChanges())
77
76
78
77
changes.postValue(list)
@@ -95,6 +94,8 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
95
94
oldPackageInfo!! .requestedPermissions?.let {
96
95
oldPermissions.addAll(it)
97
96
}
97
+ }.onFailure {
98
+ Log .e(TAG , " Failed to get permissions" , it)
98
99
}
99
100
100
101
added = buildString {
@@ -141,13 +142,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
141
142
val oldActivities = arrayListOf<String >()
142
143
143
144
kotlin.runCatching {
144
- packageInfo!! .activities? .let {
145
+ packageInfo!! .activities!! .let {
145
146
activities.addAll(it.map { activity -> activity.name })
146
147
}
147
148
148
- oldPackageInfo!! .activities? .let {
149
+ oldPackageInfo!! .activities!! .let {
149
150
oldActivities.addAll(it.map { activity -> activity.name })
150
151
}
152
+ }.onFailure {
153
+ Log .e(TAG , " Failed to get activities" , it)
151
154
}
152
155
153
156
added = buildString {
@@ -194,13 +197,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
194
197
val oldServices = arrayListOf<String >()
195
198
196
199
kotlin.runCatching {
197
- packageInfo!! .services? .let {
200
+ packageInfo!! .services!! .let {
198
201
services.addAll(it.map { service -> service.name })
199
202
}
200
203
201
- oldPackageInfo!! .services? .let {
204
+ oldPackageInfo!! .services!! .let {
202
205
oldServices.addAll(it.map { service -> service.name })
203
206
}
207
+ }.onFailure {
208
+ Log .e(TAG , " Failed to get services" , it)
204
209
}
205
210
206
211
added = buildString {
@@ -247,13 +252,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
247
252
val oldReceivers = arrayListOf<String >()
248
253
249
254
kotlin.runCatching {
250
- packageInfo!! .receivers? .let {
255
+ packageInfo!! .receivers!! .let {
251
256
receivers.addAll(it.map { receiver -> receiver.name })
252
257
}
253
258
254
- oldPackageInfo!! .receivers? .let {
259
+ oldPackageInfo!! .receivers!! .let {
255
260
oldReceivers.addAll(it.map { receiver -> receiver.name })
256
261
}
262
+ }.onFailure {
263
+ Log .e(TAG , " Failed to get receivers" , it)
257
264
}
258
265
259
266
added = buildString {
@@ -300,13 +307,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
300
307
val oldProviders = arrayListOf<String >()
301
308
302
309
kotlin.runCatching {
303
- packageInfo!! .providers? .let {
310
+ packageInfo!! .providers!! .let {
304
311
providers.addAll(it.map { provider -> provider.name })
305
312
}
306
313
307
- oldPackageInfo!! .providers? .let {
314
+ oldPackageInfo!! .providers!! .let {
308
315
oldProviders.addAll(it.map { provider -> provider.name })
309
316
}
317
+ }.onFailure {
318
+ Log .e(TAG , " Failed to get providers" , it)
310
319
}
311
320
312
321
added = buildString {
@@ -353,13 +362,15 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
353
362
val oldFeatures = arrayListOf<String >()
354
363
355
364
kotlin.runCatching {
356
- packageInfo!! .reqFeatures? .let {
365
+ packageInfo!! .reqFeatures!! .let {
357
366
features.addAll(it.map { feature -> feature.name })
358
367
}
359
368
360
- oldPackageInfo!! .reqFeatures? .let {
369
+ oldPackageInfo!! .reqFeatures!! .let {
361
370
oldFeatures.addAll(it.map { feature -> feature.name })
362
371
}
372
+ }.onFailure {
373
+ Log .e(TAG , " Failed to get features" , it)
363
374
}
364
375
365
376
added = buildString {
@@ -413,6 +424,8 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
413
424
oldPackageInfo!! .applicationInfo.nativeLibraryDir?.let {
414
425
oldNativeLibraries.addAll(it.toFile().list().orEmpty())
415
426
}
427
+ }.onFailure {
428
+ Log .e(TAG , " Failed to get native libraries" , it)
416
429
}
417
430
418
431
added = buildString {
@@ -449,4 +462,8 @@ class InstallerChangesViewModel(application: Application, val file: File) : Wrap
449
462
450
463
return Triple (title, added.trim(), removed.trim())
451
464
}
452
- }
465
+
466
+ companion object {
467
+ private const val TAG = " InstallerChangesViewModel"
468
+ }
469
+ }
0 commit comments