Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Android save to camera permissions #7225

Merged
merged 2 commits into from
Dec 20, 2024
Merged

Fix Android save to camera permissions #7225

merged 2 commits into from
Dec 20, 2024

Conversation

gaearon
Copy link
Collaborator

@gaearon gaearon commented Dec 20, 2024

This may look like clowny code but it fixes "Save to Camera" on Android 12.

I suspect that the way expo-media-library detects presence of saving permissions on Android 12 with SDK 35 is wrong. So it thinks it doesn't have permissions (even when it does), and doesn't let us actually save the photo.

We always request permissions first so this check shouldn't be useful in our case.

I haven't figured out a "proper" fix cause we were on a tight deadline.

@arcalinea arcalinea temporarily deployed to maybe-fix-perm - social-app PR #7225 December 20, 2024 21:18 — with Render Destroyed
Copy link

github-actions bot commented Dec 20, 2024

The Pull Request introduced fingerprint changes against the base commit:

Fingerprint diff
[{"type":"file","filePath":"package.json","reasons":["expoConfigPlugins"],"hash":"81e0acebea10e08e32ce384bb829c7961cd6c2f4"},{"type":"dir","filePath":"node_modules/expo-media-library/android","reasons":["expoAutolinkingAndroid"],"hash":"f6927126b6c3130daaba752df12b800898360b3e"},{"type":"dir","filePath":"patches","reasons":["patchPackage"],"hash":"93e44db0d5d31708f8c35faf186d9cd97cdffa13"},{"type":"contents","id":"expoConfig","contents":"{\"android\":{\"adaptiveIcon\":{\"backgroundColor\":\"#1185FE\",\"backgroundImage\":\"./assets/icon-android-background.png\",\"foregroundImage\":\"./assets/icon-android-foreground.png\",\"monochromeImage\":\"./assets/icon-android-foreground.png\"},\"googleServicesFile\":\"./google-services.json\",\"icon\":\"./assets/app-icons/android_icon_default_light.png\",\"intentFilters\":[{\"action\":\"VIEW\",\"autoVerify\":true,\"category\":[\"BROWSABLE\",\"DEFAULT\"],\"data\":[{\"host\":\"bsky.app\",\"scheme\":\"https\"},{\"host\":\"localhost:19006\",\"scheme\":\"http\"}]}],\"package\":\"xyz.blueskyweb.app\"},\"androidNavigationBar\":{\"backgroundColor\":\"#0f141b\",\"barStyle\":\"light-content\"},\"androidStatusBar\":{\"backgroundColor\":\"#00000000\",\"barStyle\":\"light-content\"},\"extra\":{\"eas\":{\"build\":{\"experimental\":{\"ios\":{\"appExtensions\":[{\"bundleIdentifier\":\"xyz.blueskyweb.app.AppClip\",\"targetName\":\"BlueskyClip\"},{\"bundleIdentifier\":\"xyz.blueskyweb.app.BlueskyNSE\",\"entitlements\":{\"com.apple.security.application-groups\":[\"group.app.bsky\"]},\"targetName\":\"BlueskyNSE\"},{\"bundleIdentifier\":\"xyz.blueskyweb.app.Share-with-Bluesky\",\"entitlements\":{\"com.apple.security.application-groups\":[\"group.app.bsky\"]},\"targetName\":\"Share-with-Bluesky\"}]}}},\"projectId\":\"55bd077a-d905-4184-9c7f-94789ba0f302\"}},\"hooks\":{\"postPublish\":[{\"config\":{\"dist\":\"undefined.1.96.1.dev\",\"organization\":\"blueskyweb\",\"project\":\"react-native\",\"release\":\"1.96.1\"},\"file\":\"./postHooks/uploadSentrySourcemapsPostHook\"}]},\"icon\":\"./assets/app-icons/ios_icon_default_light.png\",\"ios\":{\"associatedDomains\":[\"appclips:bsky.app\",\"appclips:go.bsky.app\",\"applinks:bsky.app\",\"applinks:staging.bsky.app\"],\"bundleIdentifier\":\"xyz.blueskyweb.app\",\"config\":{\"usesNonExemptEncryption\":false},\"entitlements\":{\"com.apple.developer.kernel.extended-virtual-addressing\":true,\"com.apple.developer.kernel.increased-memory-limit\":true,\"com.apple.security.application-groups\":\"group.app.bsky\"},\"infoPlist\":{\"CFBundleLocalizations\":[\"an\",\"ast\",\"ca\",\"de\",\"en\",\"es\",\"fi\",\"fr\",\"ga\",\"gl\",\"hi\",\"hu\",\"id\",\"it\",\"ja\",\"km\",\"ko\",\"nl\",\"np\",\"pl\",\"pt-BR\",\"ro\",\"ru\",\"th\",\"tr\",\"uk\",\"vi\",\"yue-Hant\",\"zh-Hans\",\"zh-Hant\"],\"CFBundleSpokenName\":\"Blue Sky\",\"NSCameraUsageDescription\":\"Used for profile pictures, posts, and other kinds of content.\",\"NSMicrophoneUsageDescription\":\"Used for posts and other kinds of content.\",\"NSPhotoLibraryAddUsageDescription\":\"Used to save images to your library.\",\"NSPhotoLibraryUsageDescription\":\"Used for profile pictures, posts, and other kinds of content\",\"UIBackgroundModes\":[\"remote-notification\"]},\"privacyManifests\":{\"NSPrivacyAccessedAPITypes\":[{\"NSPrivacyAccessedAPIType\":\"NSPrivacyAccessedAPICategoryDiskSpace\",\"NSPrivacyAccessedAPITypeReasons\":[\"85F4.1\",\"E174.1\"]},{\"NSPrivacyAccessedAPIType\":\"NSPrivacyAccessedAPICategoryFileTimestamp\",\"NSPrivacyAccessedAPITypeReasons\":[\"0A2A.1\",\"3B52.1\",\"C617.1\"]},{\"NSPrivacyAccessedAPIType\":\"NSPrivacyAccessedAPICategorySystemBootTime\",\"NSPrivacyAccessedAPITypeReasons\":[\"35F9.1\"]},{\"NSPrivacyAccessedAPIType\":\"NSPrivacyAccessedAPICategoryUserDefaults\",\"NSPrivacyAccessedAPITypeReasons\":[\"1C8F.1\",\"CA92.1\"]}]},\"supportsTablet\":false},\"name\":\"Bluesky\",\"orientation\":\"portrait\",\"owner\":\"blueskysocial\",\"platforms\":[\"android\",\"ios\",\"web\"],\"plugins\":[\"./plugins/notificationsExtension/withNotificationsExtension.js\",\"./plugins/shareExtension/withShareExtensions.js\",\"./plugins/starterPackAppClipExtension/withStarterPackAppClip.js\",\"./plugins/withAndroidManifestFCMIconPlugin.js\",\"./plugins/withAndroidManifestPlugin.js\",\"./plugins/withAndroidNoJitpackPlugin.js\",\"./plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js\",\"./plugins/withAndroidStylesAccentColorPlugin.js\",\"./plugins/withAppDelegateReferrer.js\",\"expo-localization\",\"react-native-compressor\",[\"@mozzius/expo-dynamic-app-icon\",{\"core_aurora\":{\"android\":\"./assets/app-icons/android_icon_core_aurora.png\",\"ios\":\"./assets/app-icons/ios_icon_core_aurora.png\",\"prerendered\":true},\"core_bonfire\":{\"android\":\"./assets/app-icons/android_icon_core_bonfire.png\",\"ios\":\"./assets/app-icons/ios_icon_core_bonfire.png\",\"prerendered\":true},\"core_classic\":{\"android\":\"./assets/app-icons/android_icon_core_classic.png\",\"ios\":\"./assets/app-icons/ios_icon_core_classic.png\",\"prerendered\":true},\"core_flat_black\":{\"android\":\"./assets/app-icons/android_icon_core_flat_black.png\",\"ios\":\"./assets/app-icons/ios_icon_core_flat_black.png\",\"prerendered\":true},\"core_flat_blue\":{\"android\":\"./assets/app-icons/android_icon_core_flat_blue.png\",\"ios\":\"./assets/app-icons/ios_icon_core_flat_blue.png\",\"prerendered\":true},\"core_flat_white\":{\"android\":\"./assets/app-icons/android_icon_core_flat_white.png\",\"ios\":\"./assets/app-icons/ios_icon_core_flat_white.png\",\"prerendered\":true},\"core_midnight\":{\"android\":\"./assets/app-icons/android_icon_core_midnight.png\",\"ios\":\"./assets/app-icons/ios_icon_core_midnight.png\",\"prerendered\":true},\"core_sunrise\":{\"android\":\"./assets/app-icons/android_icon_core_sunrise.png\",\"ios\":\"./assets/app-icons/ios_icon_core_sunrise.png\",\"prerendered\":true},\"core_sunset\":{\"android\":\"./assets/app-icons/android_icon_core_sunset.png\",\"ios\":\"./assets/app-icons/ios_icon_core_sunset.png\",\"prerendered\":true},\"default_dark\":{\"android\":\"./assets/app-icons/android_icon_default_dark.png\",\"ios\":\"./assets/app-icons/ios_icon_default_dark.png\",\"prerendered\":true},\"default_light\":{\"android\":\"./assets/app-icons/android_icon_default_light.png\",\"ios\":\"./assets/app-icons/ios_icon_default_light.png\",\"prerendered\":true}}],[\"expo-build-properties\",{\"android\":{\"buildToolsVersion\":\"35.0.0\",\"compileSdkVersion\":35,\"newArchEnabled\":false,\"targetSdkVersion\":35},\"ios\":{\"deploymentTarget\":\"15.1\",\"newArchEnabled\":false}}],[\"expo-font\",{\"fonts\":[\"./assets/fonts/inter/Inter-ExtraBold.otf\",\"./assets/fonts/inter/Inter-ExtraBoldItalic.otf\",\"./assets/fonts/inter/Inter-Italic.otf\",\"./assets/fonts/inter/Inter-Regular.otf\",\"./assets/fonts/inter/Inter-SemiBold.otf\",\"./assets/fonts/inter/Inter-SemiBoldItalic.otf\",\"./assets/fonts/inter/InterVariable-Italic.woff2\",\"./assets/fonts/inter/InterVariable.woff2\"]}],[\"expo-notifications\",{\"color\":\"#1185fe\",\"icon\":\"./assets/icon-android-notification.png\",\"sounds\":[\"assets/dm.mp3\"]}],[\"expo-splash-screen\",{\"android\":{\"backgroundColor\":\"#0c7cff\",\"dark\":{\"backgroundColor\":\"#0c2a49\",\"image\":\"./assets/splash-android-icon-dark.png\",\"imageWidth\":150},\"image\":\"./assets/splash-android-icon.png\",\"imageWidth\":150},\"ios\":{\"backgroundColor\":\"#ffffff\",\"dark\":{\"backgroundColor\":\"#001429\",\"enableFullScreenImage_legacy\":true,\"image\":\"./assets/splash-dark.png\",\"resizeMode\":\"cover\"},\"enableFullScreenImage_legacy\":true,\"image\":\"./assets/splash.png\",\"resizeMode\":\"cover\"}}]],\"primaryColor\":\"#1083fe\",\"runtimeVersion\":{\"policy\":\"appVersion\"},\"scheme\":\"bluesky\",\"sdkVersion\":\"52.0.0\",\"slug\":\"bluesky\",\"updates\":{\"checkAutomatically\":\"NEVER\",\"enabled\":false,\"fallbackToCacheTimeout\":30000,\"url\":\"https://updates.bsky.app/manifest\"},\"userInterfaceStyle\":\"automatic\",\"version\":\"1.96.1\",\"web\":{\"favicon\":\"./assets/favicon.png\"}}","reasons":["expoConfig"],"hash":"a8fafd9465243a21b1fbd8d1777519cb6dd9ea2a"}]

Generated by PR labeler 🤖

Copy link

Old size New size Diff
6.84 MB 6.84 MB 0 B (0.00%)

@arcalinea arcalinea temporarily deployed to maybe-fix-perm - social-app PR #7225 December 20, 2024 21:30 — with Render Destroyed
@gaearon gaearon merged commit 3aa1a5f into main Dec 20, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants