diff --git a/android/app/build.gradle b/android/app/build.gradle
index 7dd6ed841..f7c106011 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -142,13 +142,13 @@ android {
dimension "environment"
applicationId "me.tinykitten.trainlcd.dev"
versionNameSuffix "-dev"
- versionCode 100000256
- versionName "10.1.0"
+ versionCode 100000258
+ versionName "10.1.1"
}
prod {
dimension "environment"
- versionCode 100000256
- versionName "10.1.0"
+ versionCode 100000258
+ versionName "10.1.1"
}
}
}
diff --git a/app.config.ts b/app.config.ts
index c55e07db9..9d7066714 100644
--- a/app.config.ts
+++ b/app.config.ts
@@ -3,7 +3,7 @@ import type { ConfigContext } from 'expo/config';
export default ({ config }: ConfigContext) => ({
name: 'TrainLCD',
slug: 'trainlcd',
- version: '10.1.0',
+ version: '10.1.1',
plugins: [
'expo-font',
'expo-localization',
@@ -43,7 +43,7 @@ export default ({ config }: ConfigContext) => ({
},
},
ios: {
- buildNumber: '2469',
+ buildNumber: '2471',
bundleIdentifier:
process.env.EAS_BUILD_PROFILE === 'production'
? 'me.tinykitten.trainlcd'
@@ -60,7 +60,7 @@ export default ({ config }: ConfigContext) => ({
? 'me.tinykitten.trainlcd'
: 'me.tinykitten.trainlcd.dev',
permissions: [],
- versionCode: 100000256,
+ versionCode: 100000258,
},
owner: 'trainlcd',
});
@@ -84,6 +84,8 @@ export default ({ config }: ConfigContext) => ({
+
+
diff --git a/index.js b/index.js
index c4e30f4de..bd0938e1b 100644
--- a/index.js
+++ b/index.js
@@ -6,24 +6,26 @@ import App from './src';
import { LOCATION_TASK_NAME, MAX_PERMIT_ACCURACY } from './src/constants';
import { setLocation } from './src/store/atoms/location';
-Sentry.init({
- dsn: SENTRY_DSN,
- enableAutoSessionTracking: true,
- tracesSampleRate: 1.0,
- profilesSampleRate: 1.0,
- replaysSessionSampleRate: 0.1,
- replaysOnErrorSampleRate: 1.0,
- integrations: [
- Sentry.mobileReplayIntegration({
- maskAllText: true,
- blockAllMedia: true,
- privacyOptions: {
- maskAllInputs: true,
- blockClass: ['sensitive-screen', 'payment-view'],
- },
- }),
- ],
-});
+if (process.env.NODE_ENV === 'production') {
+ Sentry.init({
+ dsn: SENTRY_DSN,
+ enableAutoSessionTracking: true,
+ tracesSampleRate: 1.0,
+ profilesSampleRate: 1.0,
+ replaysSessionSampleRate: 0.1,
+ replaysOnErrorSampleRate: 1.0,
+ integrations: [
+ Sentry.mobileReplayIntegration({
+ maskAllText: true,
+ blockAllMedia: true,
+ privacyOptions: {
+ maskAllInputs: true,
+ blockClass: ['sensitive-screen', 'payment-view'],
+ },
+ }),
+ ],
+ });
+}
if (!TaskManager.isTaskDefined(LOCATION_TASK_NAME)) {
TaskManager.defineTask(LOCATION_TASK_NAME, ({ data, error }) => {
diff --git a/ios/TrainLCD.xcodeproj/project.pbxproj b/ios/TrainLCD.xcodeproj/project.pbxproj
index f7a077650..16ff41619 100644
--- a/ios/TrainLCD.xcodeproj/project.pbxproj
+++ b/ios/TrainLCD.xcodeproj/project.pbxproj
@@ -2435,7 +2435,7 @@
CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = E6R2G33Z36;
INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist;
@@ -2474,7 +2474,7 @@
CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEVELOPMENT_TEAM = E6R2G33Z36;
INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = TrainLCD;
@@ -2533,7 +2533,7 @@
CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
CXX = "";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@@ -2589,7 +2589,7 @@
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
- MARKETING_VERSION = 10.1.0;
+ MARKETING_VERSION = 10.1.1;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "$(inherited)";
@@ -2639,7 +2639,7 @@
CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
CXX = "";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -2691,7 +2691,7 @@
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
- MARKETING_VERSION = 10.1.0;
+ MARKETING_VERSION = 10.1.1;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
@@ -2718,7 +2718,7 @@
CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = E6R2G33Z36;
INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist;
@@ -2757,7 +2757,7 @@
CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist;
@@ -2968,7 +2968,7 @@
CODE_SIGN_ENTITLEMENTS = RideSessionActivity/CanaryRideSessionActivity.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = E6R2G33Z36;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3019,7 +3019,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3070,7 +3070,7 @@
CODE_SIGN_ENTITLEMENTS = WatchWidget/ProdWatchWidget.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3128,7 +3128,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3179,7 +3179,7 @@
CODE_SIGN_ENTITLEMENTS = WatchWidget/CanaryWatchWidget.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3236,7 +3236,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3284,7 +3284,7 @@
CODE_SIGN_ENTITLEMENTS = RideSessionActivity/ProdRideSessionActivity.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = E6R2G33Z36;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3335,7 +3335,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3554,7 +3554,7 @@
CODE_SIGN_ENTITLEMENTS = ProdAppClip/ProdAppClip.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3610,7 +3610,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3660,7 +3660,7 @@
CODE_SIGN_ENTITLEMENTS = CanaryAppClip/CanaryAppClip.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3684,7 +3684,7 @@
"@executable_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
- MARKETING_VERSION = 10.1.0;
+ MARKETING_VERSION = 10.1.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -3718,7 +3718,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2469;
+ CURRENT_PROJECT_VERSION = 2471;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = E6R2G33Z36;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3738,7 +3738,7 @@
"@executable_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
- MARKETING_VERSION = 10.1.0;
+ MARKETING_VERSION = 10.1.1;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PODS_ROOT = "${SRCROOT}/Pods";
diff --git a/ios/TrainLCD/Schemes/Prod/Info.plist b/ios/TrainLCD/Schemes/Prod/Info.plist
index c74ef0970..69690b97b 100644
--- a/ios/TrainLCD/Schemes/Prod/Info.plist
+++ b/ios/TrainLCD/Schemes/Prod/Info.plist
@@ -43,6 +43,8 @@
$(CURRENT_PROJECT_VERSION)
CURRENT_SCHEME_NAME
ProdTrainLCD
+ ITSAppUsesNonExemptEncryption
+
LSApplicationCategoryType
LSRequiresIPhoneOS
diff --git a/package.json b/package.json
index 2c6bd0943..21280ba68 100644
--- a/package.json
+++ b/package.json
@@ -147,5 +147,5 @@
}
},
"name": "trainlcd",
- "version": "10.1.0"
+ "version": "10.1.1"
}
diff --git a/src/components/HeaderE235.tsx b/src/components/HeaderE235.tsx
index 782ec9dbd..c664efb45 100644
--- a/src/components/HeaderE235.tsx
+++ b/src/components/HeaderE235.tsx
@@ -20,7 +20,6 @@ const styles = StyleSheet.create({
},
boundContainer: {
width: '100%',
- height: '50%',
justifyContent: 'flex-end',
},
bound: {
@@ -177,7 +176,9 @@ const HeaderE235: React.FC = (props) => {
},
]}
adjustsFontSizeToFit
- numberOfLines={1}
+ numberOfLines={2}
+ lineBreakStrategyIOS="push-out"
+ textBreakStrategy="balanced"
>
{boundText}
diff --git a/src/components/PresetCard.tsx b/src/components/PresetCard.tsx
index beb7553ef..162e742fe 100644
--- a/src/components/PresetCard.tsx
+++ b/src/components/PresetCard.tsx
@@ -86,6 +86,11 @@ const styles = StyleSheet.create({
fontWeight: 'bold',
textAlignVertical: 'auto',
},
+ stationCodeParen: {
+ fontSize: RFValue(8),
+ fontWeight: 'bold',
+ textAlignVertical: 'auto',
+ },
lineDot: {
width: 16,
height: 16,
@@ -94,6 +99,28 @@ const styles = StyleSheet.create({
},
});
+const renderTextWithSmallerParens = (
+ text: string,
+ baseStyle: typeof styles.stationCode,
+ parenStyle: typeof styles.stationCodeParen,
+ color: string
+) => {
+ const parts = text.split(/([(\uFF08][^)\uFF09]*[)\uFF09])/);
+ if (parts.length === 1) return text;
+ return parts.map((part, i) => {
+ const key = `${i}-${part}`;
+ return /^[(\uFF08]/.test(part) ? (
+
+ {part}
+
+ ) : (
+
+ {part}
+
+ );
+ });
+};
+
const BrokenIcon = () => (