diff options
Diffstat (limited to 'patches/expo-notifications+0.31.1.patch')
-rw-r--r-- | patches/expo-notifications+0.31.1.patch | 992 |
1 files changed, 992 insertions, 0 deletions
diff --git a/patches/expo-notifications+0.31.1.patch b/patches/expo-notifications+0.31.1.patch new file mode 100644 index 000000000..56e639a26 --- /dev/null +++ b/patches/expo-notifications+0.31.1.patch @@ -0,0 +1,992 @@ +diff --git a/node_modules/expo-notifications/android/.gradle/8.10/checksums/checksums.lock b/node_modules/expo-notifications/android/.gradle/8.10/checksums/checksums.lock +new file mode 100644 +index 0000000..883ef6a +Binary files /dev/null and b/node_modules/expo-notifications/android/.gradle/8.10/checksums/checksums.lock differ +diff --git a/node_modules/expo-notifications/android/.gradle/8.10/dependencies-accessors/gc.properties b/node_modules/expo-notifications/android/.gradle/8.10/dependencies-accessors/gc.properties +new file mode 100644 +index 0000000..e69de29 +diff --git a/node_modules/expo-notifications/android/.gradle/8.10/fileChanges/last-build.bin b/node_modules/expo-notifications/android/.gradle/8.10/fileChanges/last-build.bin +new file mode 100644 +index 0000000..f76dd23 +Binary files /dev/null and b/node_modules/expo-notifications/android/.gradle/8.10/fileChanges/last-build.bin differ +diff --git a/node_modules/expo-notifications/android/.gradle/8.10/fileHashes/fileHashes.lock b/node_modules/expo-notifications/android/.gradle/8.10/fileHashes/fileHashes.lock +new file mode 100644 +index 0000000..774caf7 +Binary files /dev/null and b/node_modules/expo-notifications/android/.gradle/8.10/fileHashes/fileHashes.lock differ +diff --git a/node_modules/expo-notifications/android/.gradle/8.10/gc.properties b/node_modules/expo-notifications/android/.gradle/8.10/gc.properties +new file mode 100644 +index 0000000..e69de29 +diff --git a/node_modules/expo-notifications/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/node_modules/expo-notifications/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +new file mode 100644 +index 0000000..a3c1514 +Binary files /dev/null and b/node_modules/expo-notifications/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ +diff --git a/node_modules/expo-notifications/android/.gradle/buildOutputCleanup/cache.properties b/node_modules/expo-notifications/android/.gradle/buildOutputCleanup/cache.properties +new file mode 100644 +index 0000000..0e5b4da +--- /dev/null ++++ b/node_modules/expo-notifications/android/.gradle/buildOutputCleanup/cache.properties +@@ -0,0 +1,2 @@ ++#Thu Apr 24 20:44:36 PDT 2025 ++gradle.version=8.10 +diff --git a/node_modules/expo-notifications/android/.gradle/config.properties b/node_modules/expo-notifications/android/.gradle/config.properties +new file mode 100644 +index 0000000..0bd71c6 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.gradle/config.properties +@@ -0,0 +1,2 @@ ++#Thu Apr 24 20:44:32 PDT 2025 ++java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home +diff --git a/node_modules/expo-notifications/android/.gradle/vcs-1/gc.properties b/node_modules/expo-notifications/android/.gradle/vcs-1/gc.properties +new file mode 100644 +index 0000000..e69de29 +diff --git a/node_modules/expo-notifications/android/.idea/.gitignore b/node_modules/expo-notifications/android/.idea/.gitignore +new file mode 100644 +index 0000000..26d3352 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/.gitignore +@@ -0,0 +1,3 @@ ++# Default ignored files ++/shelf/ ++/workspace.xml +diff --git a/node_modules/expo-notifications/android/.idea/AndroidProjectSystem.xml b/node_modules/expo-notifications/android/.idea/AndroidProjectSystem.xml +new file mode 100644 +index 0000000..4a53bee +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/AndroidProjectSystem.xml +@@ -0,0 +1,6 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="AndroidProjectSystem"> ++ <option name="providerId" value="com.android.tools.idea.GradleProjectSystem" /> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/.idea/caches/deviceStreaming.xml b/node_modules/expo-notifications/android/.idea/caches/deviceStreaming.xml +new file mode 100644 +index 0000000..9e9ba09 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/caches/deviceStreaming.xml +@@ -0,0 +1,607 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="DeviceStreaming"> ++ <option name="deviceSelectionList"> ++ <list> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="27" /> ++ <option name="brand" value="DOCOMO" /> ++ <option name="codename" value="F01L" /> ++ <option name="id" value="F01L" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="FUJITSU" /> ++ <option name="name" value="F-01L" /> ++ <option name="screenDensity" value="360" /> ++ <option name="screenX" value="720" /> ++ <option name="screenY" value="1280" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="OnePlus" /> ++ <option name="codename" value="OP5552L1" /> ++ <option name="id" value="OP5552L1" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="OnePlus" /> ++ <option name="name" value="CPH2415" /> ++ <option name="screenDensity" value="480" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2412" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="OPPO" /> ++ <option name="codename" value="OP573DL1" /> ++ <option name="id" value="OP573DL1" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="OPPO" /> ++ <option name="name" value="CPH2557" /> ++ <option name="screenDensity" value="480" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="28" /> ++ <option name="brand" value="DOCOMO" /> ++ <option name="codename" value="SH-01L" /> ++ <option name="id" value="SH-01L" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="SHARP" /> ++ <option name="name" value="AQUOS sense2 SH-01L" /> ++ <option name="screenDensity" value="480" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2160" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="Lenovo" /> ++ <option name="codename" value="TB370FU" /> ++ <option name="formFactor" value="Tablet" /> ++ <option name="id" value="TB370FU" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Lenovo" /> ++ <option name="name" value="Tab P12" /> ++ <option name="screenDensity" value="340" /> ++ <option name="screenX" value="1840" /> ++ <option name="screenY" value="2944" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="a15" /> ++ <option name="id" value="a15" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="A15" /> ++ <option name="screenDensity" value="450" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="a35x" /> ++ <option name="id" value="a35x" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="A35" /> ++ <option name="screenDensity" value="450" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="31" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="a51" /> ++ <option name="id" value="a51" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy A51" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="akita" /> ++ <option name="id" value="akita" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 8a" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="motorola" /> ++ <option name="codename" value="arcfox" /> ++ <option name="id" value="arcfox" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Motorola" /> ++ <option name="name" value="razr plus 2024" /> ++ <option name="screenDensity" value="360" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="1272" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="motorola" /> ++ <option name="codename" value="austin" /> ++ <option name="id" value="austin" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Motorola" /> ++ <option name="name" value="moto g 5G (2022)" /> ++ <option name="screenDensity" value="280" /> ++ <option name="screenX" value="720" /> ++ <option name="screenY" value="1600" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="b0q" /> ++ <option name="id" value="b0q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy S22 Ultra" /> ++ <option name="screenDensity" value="600" /> ++ <option name="screenX" value="1440" /> ++ <option name="screenY" value="3088" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="32" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="bluejay" /> ++ <option name="id" value="bluejay" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 6a" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="caiman" /> ++ <option name="id" value="caiman" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 9 Pro" /> ++ <option name="screenDensity" value="360" /> ++ <option name="screenX" value="960" /> ++ <option name="screenY" value="2142" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="comet" /> ++ <option name="default" value="true" /> ++ <option name="id" value="comet" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 9 Pro Fold" /> ++ <option name="screenDensity" value="390" /> ++ <option name="screenX" value="2076" /> ++ <option name="screenY" value="2152" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="29" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="crownqlteue" /> ++ <option name="id" value="crownqlteue" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy Note9" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="2220" /> ++ <option name="screenY" value="1080" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="dm2q" /> ++ <option name="id" value="dm2q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="S23 Plus" /> ++ <option name="screenDensity" value="450" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="dm3q" /> ++ <option name="id" value="dm3q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy S23 Ultra" /> ++ <option name="screenDensity" value="600" /> ++ <option name="screenX" value="1440" /> ++ <option name="screenY" value="3088" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="e1q" /> ++ <option name="default" value="true" /> ++ <option name="id" value="e1q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy S24" /> ++ <option name="screenDensity" value="480" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="e3q" /> ++ <option name="id" value="e3q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy S24 Ultra" /> ++ <option name="screenDensity" value="450" /> ++ <option name="screenX" value="1440" /> ++ <option name="screenY" value="3120" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="eos" /> ++ <option name="id" value="eos" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Eos" /> ++ <option name="screenDensity" value="320" /> ++ <option name="screenX" value="384" /> ++ <option name="screenY" value="384" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="felix" /> ++ <option name="id" value="felix" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel Fold" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="2208" /> ++ <option name="screenY" value="1840" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="felix" /> ++ <option name="id" value="felix" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel Fold" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="2208" /> ++ <option name="screenY" value="1840" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="felix_camera" /> ++ <option name="id" value="felix_camera" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel Fold (Camera-enabled)" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="2208" /> ++ <option name="screenY" value="1840" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="motorola" /> ++ <option name="codename" value="fogona" /> ++ <option name="id" value="fogona" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Motorola" /> ++ <option name="name" value="moto g play - 2024" /> ++ <option name="screenDensity" value="280" /> ++ <option name="screenX" value="720" /> ++ <option name="screenY" value="1600" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="g0q" /> ++ <option name="id" value="g0q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="SM-S906U1" /> ++ <option name="screenDensity" value="450" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="gta9pwifi" /> ++ <option name="id" value="gta9pwifi" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="SM-X210" /> ++ <option name="screenDensity" value="240" /> ++ <option name="screenX" value="1200" /> ++ <option name="screenY" value="1920" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="gts7xllite" /> ++ <option name="id" value="gts7xllite" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="SM-T738U" /> ++ <option name="screenDensity" value="340" /> ++ <option name="screenX" value="1600" /> ++ <option name="screenY" value="2560" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="gts8uwifi" /> ++ <option name="formFactor" value="Tablet" /> ++ <option name="id" value="gts8uwifi" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy Tab S8 Ultra" /> ++ <option name="screenDensity" value="320" /> ++ <option name="screenX" value="1848" /> ++ <option name="screenY" value="2960" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="gts8wifi" /> ++ <option name="formFactor" value="Tablet" /> ++ <option name="id" value="gts8wifi" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy Tab S8" /> ++ <option name="screenDensity" value="274" /> ++ <option name="screenX" value="1600" /> ++ <option name="screenY" value="2560" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="gts9fe" /> ++ <option name="id" value="gts9fe" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy Tab S9 FE 5G" /> ++ <option name="screenDensity" value="280" /> ++ <option name="screenX" value="1440" /> ++ <option name="screenY" value="2304" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="husky" /> ++ <option name="id" value="husky" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 8 Pro" /> ++ <option name="screenDensity" value="390" /> ++ <option name="screenX" value="1008" /> ++ <option name="screenY" value="2244" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="30" /> ++ <option name="brand" value="motorola" /> ++ <option name="codename" value="java" /> ++ <option name="id" value="java" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Motorola" /> ++ <option name="name" value="G20" /> ++ <option name="screenDensity" value="280" /> ++ <option name="screenX" value="720" /> ++ <option name="screenY" value="1600" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="komodo" /> ++ <option name="id" value="komodo" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 9 Pro XL" /> ++ <option name="screenDensity" value="360" /> ++ <option name="screenX" value="1008" /> ++ <option name="screenY" value="2244" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="lynx" /> ++ <option name="id" value="lynx" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 7a" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="motorola" /> ++ <option name="codename" value="maui" /> ++ <option name="id" value="maui" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Motorola" /> ++ <option name="name" value="moto g play - 2023" /> ++ <option name="screenDensity" value="280" /> ++ <option name="screenX" value="720" /> ++ <option name="screenY" value="1600" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="o1q" /> ++ <option name="id" value="o1q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy S21" /> ++ <option name="screenDensity" value="421" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="31" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="oriole" /> ++ <option name="id" value="oriole" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 6" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="panther" /> ++ <option name="id" value="panther" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 7" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="q5q" /> ++ <option name="id" value="q5q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy Z Fold5" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1812" /> ++ <option name="screenY" value="2176" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="q6q" /> ++ <option name="id" value="q6q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy Z Fold6" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1856" /> ++ <option name="screenY" value="2160" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="30" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="r11" /> ++ <option name="formFactor" value="Wear OS" /> ++ <option name="id" value="r11" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel Watch" /> ++ <option name="screenDensity" value="320" /> ++ <option name="screenX" value="384" /> ++ <option name="screenY" value="384" /> ++ <option name="type" value="WEAR_OS" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="r11q" /> ++ <option name="id" value="r11q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="SM-S711U" /> ++ <option name="screenDensity" value="450" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="30" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="redfin" /> ++ <option name="id" value="redfin" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 5" /> ++ <option name="screenDensity" value="440" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2340" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="shiba" /> ++ <option name="id" value="shiba" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 8" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="samsung" /> ++ <option name="codename" value="t2q" /> ++ <option name="id" value="t2q" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Samsung" /> ++ <option name="name" value="Galaxy S21 Plus" /> ++ <option name="screenDensity" value="394" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2400" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="33" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="tangorpro" /> ++ <option name="formFactor" value="Tablet" /> ++ <option name="id" value="tangorpro" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel Tablet" /> ++ <option name="screenDensity" value="320" /> ++ <option name="screenX" value="1600" /> ++ <option name="screenY" value="2560" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="34" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="tokay" /> ++ <option name="default" value="true" /> ++ <option name="id" value="tokay" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 9" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2424" /> ++ </PersistentDeviceSelectionData> ++ <PersistentDeviceSelectionData> ++ <option name="api" value="35" /> ++ <option name="brand" value="google" /> ++ <option name="codename" value="tokay" /> ++ <option name="default" value="true" /> ++ <option name="id" value="tokay" /> ++ <option name="labId" value="google" /> ++ <option name="manufacturer" value="Google" /> ++ <option name="name" value="Pixel 9" /> ++ <option name="screenDensity" value="420" /> ++ <option name="screenX" value="1080" /> ++ <option name="screenY" value="2424" /> ++ </PersistentDeviceSelectionData> ++ </list> ++ </option> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/.idea/gradle.xml b/node_modules/expo-notifications/android/.idea/gradle.xml +new file mode 100644 +index 0000000..b838237 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/gradle.xml +@@ -0,0 +1,12 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="GradleSettings"> ++ <option name="linkedExternalProjectsSettings"> ++ <GradleProjectSettings> ++ <option name="testRunner" value="CHOOSE_PER_TEST" /> ++ <option name="externalProjectPath" value="$PROJECT_DIR$" /> ++ <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" /> ++ </GradleProjectSettings> ++ </option> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/.idea/migrations.xml b/node_modules/expo-notifications/android/.idea/migrations.xml +new file mode 100644 +index 0000000..f8051a6 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/migrations.xml +@@ -0,0 +1,10 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="ProjectMigrations"> ++ <option name="MigrateToGradleLocalJavaHome"> ++ <set> ++ <option value="$PROJECT_DIR$" /> ++ </set> ++ </option> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/.idea/misc.xml b/node_modules/expo-notifications/android/.idea/misc.xml +new file mode 100644 +index 0000000..3040d03 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/misc.xml +@@ -0,0 +1,10 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="ExternalStorageConfigurationManager" enabled="true" /> ++ <component name="ProjectRootManager"> ++ <output url="file://$PROJECT_DIR$/build/classes" /> ++ </component> ++ <component name="ProjectType"> ++ <option name="id" value="Android" /> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/.idea/runConfigurations.xml b/node_modules/expo-notifications/android/.idea/runConfigurations.xml +new file mode 100644 +index 0000000..16660f1 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/runConfigurations.xml +@@ -0,0 +1,17 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="RunConfigurationProducerService"> ++ <option name="ignoredProducers"> ++ <set> ++ <option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" /> ++ <option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" /> ++ <option value="com.intellij.execution.junit.PatternConfigurationProducer" /> ++ <option value="com.intellij.execution.junit.TestInClassConfigurationProducer" /> ++ <option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" /> ++ <option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" /> ++ <option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" /> ++ <option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" /> ++ </set> ++ </option> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/.idea/workspace.xml b/node_modules/expo-notifications/android/.idea/workspace.xml +new file mode 100644 +index 0000000..df26928 +--- /dev/null ++++ b/node_modules/expo-notifications/android/.idea/workspace.xml +@@ -0,0 +1,47 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<project version="4"> ++ <component name="AutoImportSettings"> ++ <option name="autoReloadType" value="NONE" /> ++ </component> ++ <component name="ChangeListManager"> ++ <list default="true" id="fed6a9c0-2e93-4b6e-953a-d1cd1e93b59f" name="Changes" comment="" /> ++ <option name="SHOW_DIALOG" value="false" /> ++ <option name="HIGHLIGHT_CONFLICTS" value="true" /> ++ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> ++ <option name="LAST_RESOLUTION" value="IGNORE" /> ++ </component> ++ <component name="ClangdSettings"> ++ <option name="formatViaClangd" value="false" /> ++ </component> ++ <component name="ProjectColorInfo"><![CDATA[{ ++ "associatedIndex": 4 ++}]]></component> ++ <component name="ProjectId" id="2wCjuanPzVGKP91vdmftQVgUlaM" /> ++ <component name="ProjectViewState"> ++ <option name="hideEmptyMiddlePackages" value="true" /> ++ <option name="showLibraryContents" value="true" /> ++ </component> ++ <component name="PropertiesComponent"><![CDATA[{ ++ "keyToString": { ++ "RunOnceActivity.ShowReadmeOnStart": "true", ++ "RunOnceActivity.cidr.known.project.marker": "true", ++ "RunOnceActivity.readMode.enableVisualFormatting": "true", ++ "android.gradle.sync.needed": "true", ++ "cf.first.check.clang-format": "false", ++ "cidr.known.project.marker": "true", ++ "kotlin-language-version-configured": "true", ++ "last_opened_file_path": "/Users/hailey/bsky/social-app/node_modules/expo-notifications/android" ++ } ++}]]></component> ++ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" /> ++ <component name="TaskManager"> ++ <task active="true" id="Default" summary="Default task"> ++ <changelist id="fed6a9c0-2e93-4b6e-953a-d1cd1e93b59f" name="Changes" comment="" /> ++ <created>1745552672693</created> ++ <option name="number" value="Default" /> ++ <option name="presentableId" value="Default" /> ++ <updated>1745552672693</updated> ++ </task> ++ <servers /> ++ </component> ++</project> +\ No newline at end of file +diff --git a/node_modules/expo-notifications/android/build.gradle b/node_modules/expo-notifications/android/build.gradle +index bc479ee..1ebfa00 100644 +--- a/node_modules/expo-notifications/android/build.gradle ++++ b/node_modules/expo-notifications/android/build.gradle +@@ -42,6 +42,7 @@ dependencies { + implementation 'com.google.firebase:firebase-messaging:24.0.1' + + implementation 'me.leolin:ShortcutBadger:1.1.22@aar' ++ implementation project(':expo-background-notification-handler') + + if (project.findProject(':expo-modules-test-core')) { + testImplementation project(':expo-modules-test-core') +diff --git a/node_modules/expo-notifications/android/local.properties b/node_modules/expo-notifications/android/local.properties +new file mode 100644 +index 0000000..ab4c86d +--- /dev/null ++++ b/node_modules/expo-notifications/android/local.properties +@@ -0,0 +1,8 @@ ++## This file must *NOT* be checked into Version Control Systems, ++# as it contains information specific to your local configuration. ++# ++# Location of the SDK. This is only used by Gradle. ++# For customization when using a Version Control System, please read the ++# header note. ++#Thu Apr 24 20:44:32 PDT 2025 ++sdk.dir=/Users/hailey/Library/Android/sdk +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt +index 7b99e6c..45a450d 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/interfaces/INotificationContent.kt +@@ -15,6 +15,7 @@ import org.json.JSONObject + * This interface exists to provide a common API for both classes. + * */ + interface INotificationContent : Parcelable { ++ val channelId: String? + val title: String? + val text: String? + val subText: String? +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +index 191b64e..fe8b3c5 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +@@ -35,6 +35,7 @@ import kotlin.coroutines.Continuation; + * Refactoring this class may require a migration strategy for the data stored in SharedPreferences. + */ + public class NotificationContent implements Parcelable, Serializable, INotificationContent { ++ private String mChannelId; + private String mTitle; + private String mText; + private String mSubtitle; +@@ -65,6 +66,11 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + } + }; + ++ @Nullable ++ public String getChannelId() { ++ return mChannelId; ++ } ++ + @Nullable + public String getTitle() { + return mTitle; +@@ -158,6 +164,7 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + } + + protected NotificationContent(Parcel in) { ++ mChannelId = in.readString(); + mTitle = in.readString(); + mText = in.readString(); + mSubtitle = in.readString(); +@@ -183,6 +190,7 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + + @Override + public void writeToParcel(Parcel dest, int flags) { ++ dest.writeString(mChannelId); + dest.writeString(mTitle); + dest.writeString(mText); + dest.writeString(mSubtitle); +@@ -203,6 +211,7 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + private static final long serialVersionUID = 397666843266836802L; + + private void writeObject(java.io.ObjectOutputStream out) throws IOException { ++ out.writeObject(mChannelId); + out.writeObject(mTitle); + out.writeObject(mText); + out.writeObject(mSubtitle); +@@ -285,6 +294,11 @@ public class NotificationContent implements Parcelable, Serializable, INotificat + useDefaultVibrationPattern(); + } + ++ public Builder setChannelId(String channelId) { ++ content.mChannelId = channelId; ++ return this; ++ } ++ + public Builder setTitle(String title) { + content.mTitle = title; + return this; +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt +index 3af254c..3c77e9d 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationData.kt +@@ -11,6 +11,9 @@ import org.json.JSONObject + * */ + @JvmInline + value class NotificationData(private val data: Map<String, String>) { ++ val channelId: String? ++ get() = data["channelId"] ++ + val title: String? + get() = data["title"] + +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt +index d2cc6cf..6a48ff2 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/RemoteNotificationContent.kt +@@ -31,6 +31,8 @@ class RemoteNotificationContent(private val remoteMessage: RemoteMessage) : INot + return remoteMessage.notification?.imageUrl != null + } + ++ override val channelId = remoteMessage.notification?.channelId ?: notificationData.channelId ++ + override val title = remoteMessage.notification?.title ?: notificationData.title + + override val text = remoteMessage.notification?.body ?: notificationData.message +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt +index 98f003f..2f745e8 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.kt +@@ -101,6 +101,9 @@ open class ExpoNotificationBuilder( + builder.setOngoing(content.isSticky) + + // see "Notification anatomy" https://developer.android.com/develop/ui/views/notifications#Templates ++ content.channelId?.let { ++ builder.setChannelId(it) ++ } + builder.setContentTitle(content.title) + builder.setContentText(content.text) + builder.setSubText(content.subText) +diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt +index 90ca4ff..9d4cb09 100644 +--- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt ++++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt +@@ -3,6 +3,9 @@ package expo.modules.notifications.service.delegates + import android.content.Context + import android.os.Bundle + import com.google.firebase.messaging.RemoteMessage ++import expo.modules.backgroundnotificationhandler.BackgroundNotificationHandler ++import expo.modules.backgroundnotificationhandler.BackgroundNotificationHandlerInterface ++import expo.modules.backgroundnotificationhandler.ExpoBackgroundNotificationHandlerModule + import expo.modules.interfaces.taskManager.TaskServiceProviderHelper + import expo.modules.notifications.notifications.RemoteMessageSerializer + import expo.modules.notifications.notifications.background.BackgroundRemoteNotificationTaskConsumer +@@ -18,7 +21,7 @@ import expo.modules.notifications.tokens.interfaces.FirebaseTokenListener + import java.lang.ref.WeakReference + import java.util.* + +-open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate { ++open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface{ + companion object { + // Unfortunately we cannot save state between instances of a service other way + // than by static properties. Fortunately, using weak references we can +@@ -105,8 +108,19 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM + DebugLogging.logRemoteMessage("FirebaseMessagingDelegate.onMessageReceived: message", remoteMessage) + val notification = createNotification(remoteMessage) + DebugLogging.logNotification("FirebaseMessagingDelegate.onMessageReceived: notification", notification) +- NotificationsService.receive(context, notification) +- runTaskManagerTasks(context.applicationContext, RemoteMessageSerializer.toBundle(remoteMessage)) ++ if (!ExpoBackgroundNotificationHandlerModule.isForegrounded) { ++ BackgroundNotificationHandler(context, this).handleMessage(remoteMessage) ++ } else { ++ NotificationsService.receive(context, notification) ++ runTaskManagerTasks( ++ context.applicationContext, ++ RemoteMessageSerializer.toBundle(remoteMessage) ++ ) ++ } ++ } ++ ++ override fun showMessage(remoteMessage: RemoteMessage) { ++ NotificationsService.receive(context, createNotification(remoteMessage)) + } + + protected fun createNotification(remoteMessage: RemoteMessage): Notification { |