|
9 | 9 | import android.content.IntentFilter; |
10 | 10 | import android.os.BatteryManager; |
11 | 11 | import android.os.Build; |
| 12 | +import android.os.Environment; |
12 | 13 | import android.os.LocaleList; |
13 | 14 | import android.os.StatFs; |
14 | 15 | import android.os.SystemClock; |
@@ -148,7 +149,7 @@ public Device collectDeviceInformation( |
148 | 149 |
|
149 | 150 | // setting such values require IO hence we don't run for transactions |
150 | 151 | if (collectDeviceIO && options.isCollectAdditionalContext()) { |
151 | | - setDeviceIO(device, collectDynamicData); |
| 152 | + setDeviceIO(device, collectDynamicData, options.isCollectExternalStorageContext()); |
152 | 153 | } |
153 | 154 |
|
154 | 155 | return device; |
@@ -195,7 +196,10 @@ public ContextUtils.SplitApksInfo getSplitApksInfo() { |
195 | 196 | return splitApksInfo; |
196 | 197 | } |
197 | 198 |
|
198 | | - private void setDeviceIO(final @NotNull Device device, final boolean includeDynamicData) { |
| 199 | + private void setDeviceIO( |
| 200 | + final @NotNull Device device, |
| 201 | + final boolean includeDynamicData, |
| 202 | + final boolean includeExternalStorage) { |
199 | 203 | final Intent batteryIntent = getBatteryIntent(); |
200 | 204 | if (batteryIntent != null) { |
201 | 205 | device.setBatteryLevel(getBatteryLevel(batteryIntent, options)); |
@@ -232,18 +236,21 @@ private void setDeviceIO(final @NotNull Device device, final boolean includeDyna |
232 | 236 | .getRuntimeManager() |
233 | 237 | .runWithRelaxedPolicy( |
234 | 238 | () -> { |
235 | | - final @Nullable File internalStorageFile = context.getExternalFilesDir(null); |
236 | | - if (internalStorageFile != null) { |
237 | | - StatFs internalStorageStat = new StatFs(internalStorageFile.getPath()); |
| 239 | + final @Nullable File dataDir = Environment.getDataDirectory(); |
| 240 | + if (dataDir != null) { |
| 241 | + StatFs internalStorageStat = new StatFs(dataDir.getPath()); |
238 | 242 | device.setStorageSize(getTotalInternalStorage(internalStorageStat)); |
239 | 243 | device.setFreeStorage(getUnusedInternalStorage(internalStorageStat)); |
240 | 244 | } |
241 | 245 |
|
242 | | - final @Nullable StatFs externalStorageStat = |
243 | | - getExternalStorageStat(internalStorageFile); |
244 | | - if (externalStorageStat != null) { |
245 | | - device.setExternalStorageSize(getTotalExternalStorage(externalStorageStat)); |
246 | | - device.setExternalFreeStorage(getUnusedExternalStorage(externalStorageStat)); |
| 246 | + if (includeExternalStorage) { |
| 247 | + final @Nullable File internalStorageFile = context.getExternalFilesDir(null); |
| 248 | + final @Nullable StatFs externalStorageStat = |
| 249 | + getExternalStorageStat(internalStorageFile); |
| 250 | + if (externalStorageStat != null) { |
| 251 | + device.setExternalStorageSize(getTotalExternalStorage(externalStorageStat)); |
| 252 | + device.setExternalFreeStorage(getUnusedExternalStorage(externalStorageStat)); |
| 253 | + } |
247 | 254 | } |
248 | 255 | }); |
249 | 256 |
|
|
0 commit comments