mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
Add iOS privacy purpose strings and version display
- Add descriptive purpose strings for camera, photo library, and microphone - Display app version and build number on profile screen - Add email redirect URL for sign-up flow - Update Android OAuth client configurations 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This commit is contained in:
1 parent
1f0201ec5f
commit
314745c6cb
7 files changed
+152
-57
No files matched your search
@@ -13,6 +13,22 @@
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "764866133492-4g566mrb8tm5uti4ejub6oogcvnln7kc.apps.googleusercontent.com",
|
||||
"client_type": 1,
|
||||
"android_info": {
|
||||
"package_name": "com.sauci.app",
|
||||
"certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625"
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_id": "764866133492-57iilbc72t1urtmurgioci9tne5l6j67.apps.googleusercontent.com",
|
||||
"client_type": 1,
|
||||
"android_info": {
|
||||
"package_name": "com.sauci.app",
|
||||
"certificate_hash": "1b146774b7ca6bfefd88995db76cf6d097093c4f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_id": "764866133492-e78o2rh3rdjc4rfj2j6r2j77b065kggm.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
@@ -36,4 +52,4 @@
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
||||
}
|
||||
@@ -16,13 +16,17 @@
|
||||
"ios": {
|
||||
"supportsTablet": false,
|
||||
"bundleIdentifier": "com.sauci.app",
|
||||
"buildNumber": "5",
|
||||
"buildNumber": "20",
|
||||
"usesAppleSignIn": true,
|
||||
"infoPlist": {
|
||||
"UIBackgroundModes": [
|
||||
"remote-notification"
|
||||
],
|
||||
"NSFaceIDUsageDescription": "Sauci uses Face ID to unlock the app and keep your conversations private."
|
||||
"NSFaceIDUsageDescription": "Sauci uses Face ID to unlock the app and keep your conversations private.",
|
||||
"NSCameraUsageDescription": "Sauci uses your camera to take photos and videos that you can share privately with your partner in encrypted chat messages.",
|
||||
"NSPhotoLibraryUsageDescription": "Sauci uses your photo library so you can select photos and videos to share privately with your partner in encrypted chat messages.",
|
||||
"NSPhotoLibraryAddUsageDescription": "Sauci saves photos and videos from your partner's messages to your photo library when you tap the save button.",
|
||||
"NSMicrophoneUsageDescription": "Sauci uses your microphone to record audio when you capture videos to share privately with your partner."
|
||||
}
|
||||
},
|
||||
"android": {
|
||||
@@ -31,7 +35,7 @@
|
||||
"backgroundColor": "#1a1a2e"
|
||||
},
|
||||
"package": "com.sauci.app",
|
||||
"versionCode": 12,
|
||||
"versionCode": 17,
|
||||
"googleServicesFile": "./google-services.json",
|
||||
"permissions": [
|
||||
"RECEIVE_BOOT_COMPLETED",
|
||||
|
||||
@@ -228,6 +228,9 @@ export default function LoginScreen() {
|
||||
const { data, error: signUpError } = await supabase.auth.signUp({
|
||||
email: email.trim(),
|
||||
password,
|
||||
options: {
|
||||
emailRedirectTo: Linking.createURL("/(auth)/login"),
|
||||
},
|
||||
});
|
||||
|
||||
setIsLoading(false);
|
||||
|
||||
@@ -13,6 +13,22 @@
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "764866133492-4g566mrb8tm5uti4ejub6oogcvnln7kc.apps.googleusercontent.com",
|
||||
"client_type": 1,
|
||||
"android_info": {
|
||||
"package_name": "com.sauci.app",
|
||||
"certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625"
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_id": "764866133492-57iilbc72t1urtmurgioci9tne5l6j67.apps.googleusercontent.com",
|
||||
"client_type": 1,
|
||||
"android_info": {
|
||||
"package_name": "com.sauci.app",
|
||||
"certificate_hash": "1b146774b7ca6bfefd88995db76cf6d097093c4f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_id": "764866133492-e78o2rh3rdjc4rfj2j6r2j77b065kggm.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
|
||||
@@ -13,10 +13,8 @@
|
||||
"test": "jest",
|
||||
"test:watch": "jest --watch",
|
||||
"test:ci": "jest --runInBand --ci",
|
||||
"build:ios": "dotenv -e .env -- eas build --platform ios --profile production",
|
||||
"build:ios:local": "dotenv -e .env -- eas build --platform ios --profile production --local",
|
||||
"build:android": "dotenv -e .env -- eas build --platform android --profile production",
|
||||
"build:android:local": "dotenv -e .env -- eas build --platform android --profile production --local"
|
||||
"release:ios": "dotenv -e .env -- eas build --platform ios --profile production --local",
|
||||
"release:android": "dotenv -e .env -- eas build --platform android --profile production --local"
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/ngrok": "^4.1.0",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import React from 'react';
|
||||
import { View, Text, StyleSheet, ScrollView, TouchableOpacity, useWindowDimensions, Platform, Alert } from 'react-native';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import Constants from 'expo-constants';
|
||||
import Animated, {
|
||||
FadeInDown,
|
||||
useSharedValue,
|
||||
@@ -69,6 +70,15 @@ export function ProfileScreen() {
|
||||
});
|
||||
};
|
||||
|
||||
// Version info
|
||||
const version = Constants.expoConfig?.version ?? '1.0.0';
|
||||
const buildNumber = Platform.select({
|
||||
ios: Constants.expoConfig?.ios?.buildNumber,
|
||||
android: Constants.expoConfig?.android?.versionCode?.toString(),
|
||||
default: undefined,
|
||||
});
|
||||
const versionString = buildNumber ? `v${version} (${buildNumber})` : `v${version}`;
|
||||
|
||||
// Scroll animation
|
||||
const scrollY = useSharedValue(0);
|
||||
const scrollHandler = useAnimatedScrollHandler({
|
||||
@@ -374,7 +384,7 @@ export function ProfileScreen() {
|
||||
>
|
||||
<View style={styles.versionBadge}>
|
||||
<Ionicons name="heart" size={12} color={featureColors.profile.accent} />
|
||||
<Text style={styles.version}>Sauci v1.0.0</Text>
|
||||
<Text style={styles.version}>Sauci {versionString}</Text>
|
||||
</View>
|
||||
</Animated.View>
|
||||
|
||||
|
||||
Reference in new issue
Block a user