From 89122ccd5c3d933e548193202bde5c655ed52789 Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Tue, 12 Aug 2025 10:39:01 -0400 Subject: [PATCH] feat(mobile): add share sheet functionality --- apps/mobile/android/app/build.gradle | 4 +- .../android/app/src/main/AndroidManifest.xml | 24 +- .../{mobileapp => linkwarden}/MainActivity.kt | 2 +- .../MainApplication.kt | 2 +- .../app/src/main/res/values/colors.xml | 1 + .../app/src/main/res/values/strings.xml | 2 +- .../app/src/main/res/values/styles.xml | 6 +- apps/mobile/android/settings.gradle | 2 +- apps/mobile/app.json | 22 +- apps/mobile/app/_layout.tsx | 13 +- apps/mobile/ios/Podfile | 2 +- apps/mobile/ios/Podfile.lock | 8 +- .../ShareExtension/MainInterface.storyboard | 25 + .../ios/ShareExtension/PrivacyInfo.xcprivacy | 21 + .../ShareExtension/ShareExtension-Info.plist | 41 ++ .../ShareExtension.entitlements} | 7 +- .../ShareExtensionPreprocessor.js | 28 + .../ShareExtension/ShareViewController.swift | 660 ++++++++++++++++++ .../project.pbxproj | 226 ++++-- .../xcschemes/linkwarden.xcscheme} | 24 +- .../contents.xcworkspacedata | 2 +- .../{mobileapp => linkwarden}/AppDelegate.h | 0 .../{mobileapp => linkwarden}/AppDelegate.mm | 0 .../App-Icon-1024x1024@1x.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Images.xcassets/Contents.json | 0 .../Contents.json | 0 .../SplashScreenLogo.imageset/Contents.json | 0 .../SplashScreenLogo.imageset/image.png | Bin .../SplashScreenLogo.imageset/image@2x.png | Bin .../SplashScreenLogo.imageset/image@3x.png | Bin .../ios/{mobileapp => linkwarden}/Info.plist | 18 +- .../PrivacyInfo.xcprivacy | 0 .../SplashScreen.storyboard | 0 .../Supporting/Expo.plist | 0 .../linkwarden-Bridging-Header.h} | 0 .../ios/linkwarden/linkwarden.entitlements | 10 + .../ios/{mobileapp => linkwarden}/main.m | 0 .../{mobileapp => linkwarden}/noop-file.swift | 0 apps/mobile/package.json | 6 +- package.json | 5 +- patches/xcode+3.0.1.patch | 14 + yarn.lock | 267 ++++++- 43 files changed, 1325 insertions(+), 117 deletions(-) rename apps/mobile/android/app/src/main/java/com/anonymous/{mobileapp => linkwarden}/MainActivity.kt (98%) rename apps/mobile/android/app/src/main/java/com/anonymous/{mobileapp => linkwarden}/MainApplication.kt (98%) create mode 100644 apps/mobile/ios/ShareExtension/MainInterface.storyboard create mode 100644 apps/mobile/ios/ShareExtension/PrivacyInfo.xcprivacy create mode 100644 apps/mobile/ios/ShareExtension/ShareExtension-Info.plist rename apps/mobile/ios/{mobileapp/mobileapp.entitlements => ShareExtension/ShareExtension.entitlements} (53%) create mode 100644 apps/mobile/ios/ShareExtension/ShareExtensionPreprocessor.js create mode 100644 apps/mobile/ios/ShareExtension/ShareViewController.swift rename apps/mobile/ios/{mobileapp.xcodeproj => linkwarden.xcodeproj}/project.pbxproj (65%) rename apps/mobile/ios/{mobileapp.xcodeproj/xcshareddata/xcschemes/mobileapp.xcscheme => linkwarden.xcodeproj/xcshareddata/xcschemes/linkwarden.xcscheme} (80%) rename apps/mobile/ios/{mobileapp.xcworkspace => linkwarden.xcworkspace}/contents.xcworkspacedata (79%) rename apps/mobile/ios/{mobileapp => linkwarden}/AppDelegate.h (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/AppDelegate.mm (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/Contents.json (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/SplashScreenBackground.colorset/Contents.json (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/SplashScreenLogo.imageset/Contents.json (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/SplashScreenLogo.imageset/image.png (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/SplashScreenLogo.imageset/image@2x.png (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Images.xcassets/SplashScreenLogo.imageset/image@3x.png (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Info.plist (91%) rename apps/mobile/ios/{mobileapp => linkwarden}/PrivacyInfo.xcprivacy (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/SplashScreen.storyboard (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/Supporting/Expo.plist (100%) rename apps/mobile/ios/{mobileapp/mobileapp-Bridging-Header.h => linkwarden/linkwarden-Bridging-Header.h} (100%) create mode 100644 apps/mobile/ios/linkwarden/linkwarden.entitlements rename apps/mobile/ios/{mobileapp => linkwarden}/main.m (100%) rename apps/mobile/ios/{mobileapp => linkwarden}/noop-file.swift (100%) create mode 100644 patches/xcode+3.0.1.patch diff --git a/apps/mobile/android/app/build.gradle b/apps/mobile/android/app/build.gradle index 40e833d2..b96861fe 100644 --- a/apps/mobile/android/app/build.gradle +++ b/apps/mobile/android/app/build.gradle @@ -86,9 +86,9 @@ android { buildToolsVersion rootProject.ext.buildToolsVersion compileSdk rootProject.ext.compileSdkVersion - namespace 'com.anonymous.mobileapp' + namespace 'com.anonymous.linkwarden' defaultConfig { - applicationId 'com.anonymous.mobileapp' + applicationId 'com.anonymous.linkwarden' minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 diff --git a/apps/mobile/android/app/src/main/AndroidManifest.xml b/apps/mobile/android/app/src/main/AndroidManifest.xml index 8a68fe8c..e69f8b32 100644 --- a/apps/mobile/android/app/src/main/AndroidManifest.xml +++ b/apps/mobile/android/app/src/main/AndroidManifest.xml @@ -24,9 +24,27 @@ - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/mobile/android/app/src/main/java/com/anonymous/mobileapp/MainActivity.kt b/apps/mobile/android/app/src/main/java/com/anonymous/linkwarden/MainActivity.kt similarity index 98% rename from apps/mobile/android/app/src/main/java/com/anonymous/mobileapp/MainActivity.kt rename to apps/mobile/android/app/src/main/java/com/anonymous/linkwarden/MainActivity.kt index 90c971f2..179f8c80 100644 --- a/apps/mobile/android/app/src/main/java/com/anonymous/mobileapp/MainActivity.kt +++ b/apps/mobile/android/app/src/main/java/com/anonymous/linkwarden/MainActivity.kt @@ -1,4 +1,4 @@ -package com.anonymous.mobileapp +package com.anonymous.linkwarden import expo.modules.splashscreen.SplashScreenManager import android.os.Build diff --git a/apps/mobile/android/app/src/main/java/com/anonymous/mobileapp/MainApplication.kt b/apps/mobile/android/app/src/main/java/com/anonymous/linkwarden/MainApplication.kt similarity index 98% rename from apps/mobile/android/app/src/main/java/com/anonymous/mobileapp/MainApplication.kt rename to apps/mobile/android/app/src/main/java/com/anonymous/linkwarden/MainApplication.kt index 3c112c32..b8b4a372 100644 --- a/apps/mobile/android/app/src/main/java/com/anonymous/mobileapp/MainApplication.kt +++ b/apps/mobile/android/app/src/main/java/com/anonymous/linkwarden/MainApplication.kt @@ -1,4 +1,4 @@ -package com.anonymous.mobileapp +package com.anonymous.linkwarden import android.app.Application import android.content.res.Configuration diff --git a/apps/mobile/android/app/src/main/res/values/colors.xml b/apps/mobile/android/app/src/main/res/values/colors.xml index d86b9d56..26897fa5 100644 --- a/apps/mobile/android/app/src/main/res/values/colors.xml +++ b/apps/mobile/android/app/src/main/res/values/colors.xml @@ -4,4 +4,5 @@ #023c69 #ffffff #000000 + #ffffff \ No newline at end of file diff --git a/apps/mobile/android/app/src/main/res/values/strings.xml b/apps/mobile/android/app/src/main/res/values/strings.xml index 16d8298f..42b41276 100644 --- a/apps/mobile/android/app/src/main/res/values/strings.xml +++ b/apps/mobile/android/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - mobile-app + Linkwarden automatic contain false diff --git a/apps/mobile/android/app/src/main/res/values/styles.xml b/apps/mobile/android/app/src/main/res/values/styles.xml index d4276ae4..cd058e0a 100644 --- a/apps/mobile/android/app/src/main/res/values/styles.xml +++ b/apps/mobile/android/app/src/main/res/values/styles.xml @@ -4,8 +4,10 @@ @style/ResetEditText @drawable/rn_edit_text_material @color/colorPrimary - @android:color/transparent - @android:color/transparent + #ffffff + @color/navigationBarColor + true + true