API-level-21-prevent-crash-on-download.patch 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. From: csagan5 <32685696+csagan5@users.noreply.github.com>
  2. Date: Sun, 27 Jun 2021 16:53:48 +0200
  3. Subject: API level 21: prevent crash on download
  4. On Lollipop 5.0.x it is not possible to use the system persistent bundle.
  5. This patch ignores boolean settings for them and prevents the crash.
  6. See also: https://github.com/bromite/bromite/issues/1184
  7. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  8. ---
  9. .../BundleToPersistableBundleConverter.java | 13 +++++++++++--
  10. 1 file changed, 11 insertions(+), 2 deletions(-)
  11. diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java
  12. --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java
  13. +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverter.java
  14. @@ -4,6 +4,7 @@
  15. package org.chromium.components.background_task_scheduler.internal;
  16. +import android.os.Build;
  17. import android.os.Bundle;
  18. import android.os.PersistableBundle;
  19. @@ -82,9 +83,17 @@ class BundleToPersistableBundleConverter {
  20. if (obj == null) {
  21. persistableBundle.putString(key, null);
  22. } else if (obj instanceof Boolean) {
  23. - persistableBundle.putBoolean(key, (Boolean) obj);
  24. + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
  25. + failedKeys.add(key);
  26. + } else {
  27. + persistableBundle.putBoolean(key, (Boolean) obj);
  28. + }
  29. } else if (obj instanceof boolean[]) {
  30. - persistableBundle.putBooleanArray(key, (boolean[]) obj);
  31. + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
  32. + failedKeys.add(key);
  33. + } else {
  34. + persistableBundle.putBooleanArray(key, (boolean[]) obj);
  35. + }
  36. } else if (obj instanceof Double) {
  37. persistableBundle.putDouble(key, (Double) obj);
  38. } else if (obj instanceof double[]) {
  39. --
  40. 2.25.1