@@ -224,15 +224,15 @@ class HardwareCapabilitiesProvider(private val context: Context) {
224224 }
225225 }
226226
227- private fun File.getTotalSpaceSafe () = try {
228- totalSpace
227+ private fun File? .getTotalSpaceSafe () = try {
228+ this ?. totalSpace ? : UNKNOWN_BYTES_AMOUNT
229229 } catch (e: Exception ) {
230230 Timber .e(HardwareCapabilityError (" totalSpace" , e))
231231 UNKNOWN_BYTES_AMOUNT
232232 }
233233
234- private fun File.getFreeSpaceSafe () = try {
235- freeSpace
234+ private fun File? .getFreeSpaceSafe () = try {
235+ this ?. freeSpace ? : UNKNOWN_BYTES_AMOUNT
236236 } catch (e: Exception ) {
237237 Timber .e(HardwareCapabilityError (" freeSpace" , e))
238238 UNKNOWN_BYTES_AMOUNT
@@ -268,18 +268,26 @@ class HardwareCapabilitiesProvider(private val context: Context) {
268268 * TODO: once our minSdk > 28 (OS.supportsMediaDrmClose()) we could do this with kotlin's
269269 * try-with-resources.
270270 */
271- private fun getDrmIdFromClosableMediaDrm (drmProviderUuid : UUID ): String {
271+ private fun getDrmIdFromClosableMediaDrm (drmProviderUuid : UUID ): String? {
272272 var mediaDrm: MediaDrm ? = null
273273 try {
274274 mediaDrm = MediaDrm (drmProviderUuid)
275- val deviceIdBytes = mediaDrm.getPropertyByteArray( MediaDrm . PROPERTY_DEVICE_UNIQUE_ID )
275+ val deviceIdBytes = getSafeDeviceId(mediaDrm) ? : return null
276276
277277 return Encodings .bytesToHex(Hashes .sha256(deviceIdBytes))
278278 } finally {
279279 mediaDrm?.let (::releaseMediaDRM)
280280 }
281281 }
282282
283+ private fun getSafeDeviceId (mediaDrm : MediaDrm ): ByteArray? {
284+ return try {
285+ mediaDrm.getPropertyByteArray(MediaDrm .PROPERTY_DEVICE_UNIQUE_ID )
286+ } catch (e: Exception ) {
287+ null
288+ }
289+ }
290+
283291 private fun releaseMediaDRM (drmObject : MediaDrm ) {
284292 if (OS .supportsMediaDrmClose()) {
285293 drmObject.close()
0 commit comments