Skip to content

Commit 14de22f

Browse files
authored
💄 - Improve urgent message title display (#335)
- truncate urgent message title - remove html tags and entities from message body - announcement card darker background
1 parent 5b1c61b commit 14de22f

File tree

11 files changed

+58
-33
lines changed

11 files changed

+58
-33
lines changed

‎android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ android {
120120
applicationId "com.betterrail"
121121
minSdkVersion rootProject.ext.minSdkVersion
122122
targetSdkVersion rootProject.ext.targetSdkVersion
123-
versionCode 73
124-
versionName "2.2.0"
123+
versionCode 74
124+
versionName "2.2.1"
125125
missingDimensionStrategy "store", "play"
126126
}
127127

‎app/components/announcements/announcement-card.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import TouchableScale from "react-native-touchable-scale"
33
import { fontScale, spacing, color } from "../../theme"
44
import { Text } from "../text/text"
55
import { openLink } from "../../utils/helpers/open-link"
6+
import { removeHtmlTagsAndEntities } from "./announcements-utils"
67

78
const ANNOUNCEMENT_CARD: ViewStyle = {
89
minHeight: 80 * fontScale,
@@ -12,7 +13,7 @@ const ANNOUNCEMENT_CARD: ViewStyle = {
1213
paddingHorizontal: spacing[3],
1314

1415
borderRadius: Platform.select({ ios: 12, android: 8 }),
15-
backgroundColor: Platform.select({ ios: color.tertiaryBackground, android: color.inputBackground }),
16+
backgroundColor: Platform.select({ ios: color.secondaryBackground, android: color.inputBackground }),
1617
shadowColor: color.palette.black,
1718
shadowOffset: { height: 0, width: 0 },
1819
shadowOpacity: 0.05,
@@ -21,7 +22,7 @@ const ANNOUNCEMENT_CARD: ViewStyle = {
2122

2223
const TITLE_STYLE: TextStyle = {
2324
fontFamily: "Heebo",
24-
color: color.primary,
25+
color: color.primaryLighter,
2526
fontSize: 16,
2627
marginBottom: spacing[0],
2728
}
@@ -41,7 +42,8 @@ export const AnnouncementCard = ({ title, body, link }: AnnouncementCardProps) =
4142
<TouchableScale activeScale={0.98} friction={10} disabled={!link} onPress={() => openLink(link)}>
4243
<View style={ANNOUNCEMENT_CARD}>
4344
{title && <Text style={TITLE_STYLE}>{title}</Text>}
44-
<Text style={BODY_STYLE}>{body}</Text>
45+
46+
<Text style={BODY_STYLE}>{removeHtmlTagsAndEntities(body)}</Text>
4547
</View>
4648
</TouchableScale>
4749
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* Remove HTML tags and HTML entities from a given string.
3+
*/
4+
export function removeHtmlTagsAndEntities(input: string) {
5+
return input.replace(/<[^>]+>|&[^;]+;/g, "")
6+
}

‎app/components/announcements/urgent-announcements.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Text } from "../text/text"
88
import { Screen } from "../screen/screen"
99
import { useIsDarkMode } from "../../hooks"
1010
import { AnnouncementCard } from "./announcement-card"
11+
import { removeHtmlTagsAndEntities } from "./announcements-utils"
1112

1213
export const UrgentAnnouncements = () => {
1314
const isDarkMode = useIsDarkMode()
@@ -17,8 +18,8 @@ export const UrgentAnnouncements = () => {
1718
<Screen unsafe statusBar={Platform.select({ ios: "light-content" })} statusBarBackgroundColor={isDarkMode ? "#000" : "#fff"}>
1819
<Text style={{ fontSize: 48, textAlign: "center", marginVertical: spacing[4] }}>📣</Text>
1920
<View style={{ paddingHorizontal: spacing[4] }}>
20-
{messages?.map((m) => (
21-
<AnnouncementCard body={m.messageBody} />
21+
{messages?.map((message, index) => (
22+
<AnnouncementCard body={message.messageBody} key={index} />
2223
))}
2324
</View>
2425
</Screen>

‎app/screens/planner/Important-announcement-bar.tsx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import Animated, { useAnimatedStyle, useSharedValue, withDelay, withTiming } fro
44
import { color, fontScale } from "../../theme"
55
import { useNavigation } from "@react-navigation/native"
66
import analytics from "@react-native-firebase/analytics"
7+
import { removeHtmlTagsAndEntities } from "../../components/announcements/announcements-utils"
78

89
const TEXT_STYLE: TextStyle = {
910
color: color.whiteText,
@@ -63,8 +64,23 @@ export function ImportantAnnouncementBar({ title }: { title: string }) {
6364
onPress={navigateToAnnouncements}
6465
>
6566
<Animated.Text style={[TEXT_STYLE, TextAnimatedStyle]} maxFontSizeMultiplier={1.15}>
66-
{title}
67+
{truncateString(removeHtmlTagsAndEntities(title), 5)}
6768
</Animated.Text>
6869
</AnimatedTouchable>
6970
)
7071
}
72+
73+
function truncateString(inputString, numWords) {
74+
// Split the input string into an array of words
75+
const words = inputString.split(" ")
76+
77+
// Take the first 'numWords' words and join them back into a string
78+
const truncatedString = words.slice(0, numWords).join(" ")
79+
80+
// Add "..." to the end if there are more words in the original string
81+
if (words.length > numWords) {
82+
return truncatedString + " ..."
83+
} else {
84+
return truncatedString
85+
}
86+
}

‎ios/BetterRail.xcodeproj/project.pbxproj

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,14 +1156,14 @@
11561156
CLANG_ENABLE_MODULES = YES;
11571157
CODE_SIGN_ENTITLEMENTS = BetterRail/BetterRailDebug.entitlements;
11581158
CODE_SIGN_STYLE = Manual;
1159-
CURRENT_PROJECT_VERSION = 10;
1159+
CURRENT_PROJECT_VERSION = 3;
11601160
DEVELOPMENT_TEAM = "";
11611161
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = UE6BVYPPFX;
11621162
ENABLE_BITCODE = NO;
11631163
INFOPLIST_FILE = BetterRail/Info.plist;
11641164
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
11651165
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1166-
MARKETING_VERSION = 2.2.0;
1166+
MARKETING_VERSION = 2.2.1;
11671167
OTHER_LDFLAGS = (
11681168
"$(inherited)",
11691169
"-ObjC",
@@ -1196,13 +1196,13 @@
11961196
CODE_SIGN_IDENTITY = "Apple Development";
11971197
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
11981198
CODE_SIGN_STYLE = Manual;
1199-
CURRENT_PROJECT_VERSION = 10;
1199+
CURRENT_PROJECT_VERSION = 3;
12001200
DEVELOPMENT_TEAM = "";
12011201
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = UE6BVYPPFX;
12021202
INFOPLIST_FILE = BetterRail/Info.plist;
12031203
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
12041204
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1205-
MARKETING_VERSION = 2.2.0;
1205+
MARKETING_VERSION = 2.2.1;
12061206
OTHER_LDFLAGS = (
12071207
"$(inherited)",
12081208
"-ObjC",
@@ -1359,14 +1359,14 @@
13591359
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
13601360
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
13611361
CODE_SIGN_STYLE = Manual;
1362-
CURRENT_PROJECT_VERSION = 10;
1362+
CURRENT_PROJECT_VERSION = 3;
13631363
DEBUG_INFORMATION_FORMAT = dwarf;
13641364
DEVELOPMENT_TEAM = "";
13651365
"DEVELOPMENT_TEAM[sdk=watchos*]" = UE6BVYPPFX;
13661366
GCC_C_LANGUAGE_STANDARD = gnu11;
13671367
IBSC_MODULE = WatchBetterRail_Extension;
13681368
INFOPLIST_FILE = WatchBetterRail/Info.plist;
1369-
MARKETING_VERSION = 2.2.0;
1369+
MARKETING_VERSION = 2.2.1;
13701370
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
13711371
MTL_FAST_MATH = YES;
13721372
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -1401,14 +1401,14 @@
14011401
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution";
14021402
CODE_SIGN_STYLE = Manual;
14031403
COPY_PHASE_STRIP = NO;
1404-
CURRENT_PROJECT_VERSION = 10;
1404+
CURRENT_PROJECT_VERSION = 3;
14051405
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
14061406
DEVELOPMENT_TEAM = "";
14071407
"DEVELOPMENT_TEAM[sdk=watchos*]" = UE6BVYPPFX;
14081408
GCC_C_LANGUAGE_STANDARD = gnu11;
14091409
IBSC_MODULE = WatchBetterRail_Extension;
14101410
INFOPLIST_FILE = WatchBetterRail/Info.plist;
1411-
MARKETING_VERSION = 2.2.0;
1411+
MARKETING_VERSION = 2.2.1;
14121412
MTL_FAST_MATH = YES;
14131413
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
14141414
PRODUCT_BUNDLE_IDENTIFIER = "il.co.better-rail.watchkitapp";
@@ -1437,15 +1437,15 @@
14371437
CODE_SIGN_ENTITLEMENTS = "WatchBetterRail Extension/WatchBetterRail Extension.entitlements";
14381438
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
14391439
CODE_SIGN_STYLE = Manual;
1440-
CURRENT_PROJECT_VERSION = 10;
1440+
CURRENT_PROJECT_VERSION = 3;
14411441
DEBUG_INFORMATION_FORMAT = dwarf;
14421442
DEVELOPMENT_TEAM = "";
14431443
"DEVELOPMENT_TEAM[sdk=watchos*]" = UE6BVYPPFX;
14441444
ENABLE_PREVIEWS = YES;
14451445
GCC_C_LANGUAGE_STANDARD = gnu11;
14461446
INFOPLIST_FILE = "WatchBetterRail Extension/Info.plist";
14471447
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
1448-
MARKETING_VERSION = 2.2.0;
1448+
MARKETING_VERSION = 2.2.1;
14491449
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
14501450
MTL_FAST_MATH = YES;
14511451
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -1478,15 +1478,15 @@
14781478
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution";
14791479
CODE_SIGN_STYLE = Manual;
14801480
COPY_PHASE_STRIP = NO;
1481-
CURRENT_PROJECT_VERSION = 10;
1481+
CURRENT_PROJECT_VERSION = 3;
14821482
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
14831483
DEVELOPMENT_TEAM = "";
14841484
"DEVELOPMENT_TEAM[sdk=watchos*]" = UE6BVYPPFX;
14851485
ENABLE_PREVIEWS = YES;
14861486
GCC_C_LANGUAGE_STANDARD = gnu11;
14871487
INFOPLIST_FILE = "WatchBetterRail Extension/Info.plist";
14881488
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
1489-
MARKETING_VERSION = 2.2.0;
1489+
MARKETING_VERSION = 2.2.1;
14901490
MTL_FAST_MATH = YES;
14911491
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
14921492
PRODUCT_BUNDLE_IDENTIFIER = "il.co.better-rail.watchkitapp.watchkitextension";
@@ -1516,15 +1516,15 @@
15161516
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
15171517
CODE_SIGN_ENTITLEMENTS = BetterRailWidgetExtensionDebug.entitlements;
15181518
CODE_SIGN_STYLE = Manual;
1519-
CURRENT_PROJECT_VERSION = 10;
1519+
CURRENT_PROJECT_VERSION = 3;
15201520
DEBUG_INFORMATION_FORMAT = dwarf;
15211521
DEVELOPMENT_TEAM = "";
15221522
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = UE6BVYPPFX;
15231523
GCC_C_LANGUAGE_STANDARD = gnu11;
15241524
INFOPLIST_FILE = BetterRailWidget/Info.plist;
15251525
IPHONEOS_DEPLOYMENT_TARGET = 16.2;
15261526
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
1527-
MARKETING_VERSION = 2.2.0;
1527+
MARKETING_VERSION = 2.2.1;
15281528
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
15291529
MTL_FAST_MATH = YES;
15301530
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -1557,15 +1557,15 @@
15571557
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
15581558
CODE_SIGN_STYLE = Manual;
15591559
COPY_PHASE_STRIP = NO;
1560-
CURRENT_PROJECT_VERSION = 10;
1560+
CURRENT_PROJECT_VERSION = 3;
15611561
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
15621562
DEVELOPMENT_TEAM = "";
15631563
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = UE6BVYPPFX;
15641564
GCC_C_LANGUAGE_STANDARD = gnu11;
15651565
INFOPLIST_FILE = BetterRailWidget/Info.plist;
15661566
IPHONEOS_DEPLOYMENT_TARGET = 16.2;
15671567
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
1568-
MARKETING_VERSION = 2.2.0;
1568+
MARKETING_VERSION = 2.2.1;
15691569
MTL_FAST_MATH = YES;
15701570
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
15711571
PRODUCT_BUNDLE_IDENTIFIER = "il.co.better-rail.BetterRailWidget";
@@ -1590,15 +1590,15 @@
15901590
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
15911591
CODE_SIGN_ENTITLEMENTS = StationIntent/StationIntentDebug.entitlements;
15921592
CODE_SIGN_STYLE = Manual;
1593-
CURRENT_PROJECT_VERSION = 10;
1593+
CURRENT_PROJECT_VERSION = 3;
15941594
DEBUG_INFORMATION_FORMAT = dwarf;
15951595
DEVELOPMENT_TEAM = "";
15961596
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = UE6BVYPPFX;
15971597
GCC_C_LANGUAGE_STANDARD = gnu11;
15981598
INFOPLIST_FILE = StationIntent/Info.plist;
15991599
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
16001600
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
1601-
MARKETING_VERSION = 2.2.0;
1601+
MARKETING_VERSION = 2.2.1;
16021602
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
16031603
MTL_FAST_MATH = YES;
16041604
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
@@ -1629,15 +1629,15 @@
16291629
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
16301630
CODE_SIGN_STYLE = Manual;
16311631
COPY_PHASE_STRIP = NO;
1632-
CURRENT_PROJECT_VERSION = 10;
1632+
CURRENT_PROJECT_VERSION = 3;
16331633
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
16341634
DEVELOPMENT_TEAM = "";
16351635
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = UE6BVYPPFX;
16361636
GCC_C_LANGUAGE_STANDARD = gnu11;
16371637
INFOPLIST_FILE = StationIntent/Info.plist;
16381638
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
16391639
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
1640-
MARKETING_VERSION = 2.2.0;
1640+
MARKETING_VERSION = 2.2.1;
16411641
MTL_FAST_MATH = YES;
16421642
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
16431643
PRODUCT_BUNDLE_IDENTIFIER = "il.co.better-rail.StationIntent";

‎ios/BetterRail/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<key>CFBundleSignature</key>
2424
<string>????</string>
2525
<key>CFBundleVersion</key>
26-
<string>10</string>
26+
<string>3</string>
2727
<key>ITSAppUsesNonExemptEncryption</key>
2828
<false/>
2929
<key>LSApplicationQueriesSchemes</key>

‎ios/BetterRailWidget/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<key>CFBundleShortVersionString</key>
2020
<string>$(MARKETING_VERSION)</string>
2121
<key>CFBundleVersion</key>
22-
<string>10</string>
22+
<string>3</string>
2323
<key>NSExtension</key>
2424
<dict>
2525
<key>NSExtensionPointIdentifier</key>

‎ios/StationIntent/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<key>CFBundleShortVersionString</key>
2020
<string>$(MARKETING_VERSION)</string>
2121
<key>CFBundleVersion</key>
22-
<string>10</string>
22+
<string>3</string>
2323
<key>NSExtension</key>
2424
<dict>
2525
<key>NSExtensionAttributes</key>

‎ios/WatchBetterRail Extension/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<key>CFBundleShortVersionString</key>
2020
<string>$(MARKETING_VERSION)</string>
2121
<key>CFBundleVersion</key>
22-
<string>10</string>
22+
<string>3</string>
2323
<key>CLKComplicationPrincipalClass</key>
2424
<string>$(PRODUCT_MODULE_NAME).ComplicationController</string>
2525
<key>NSExtension</key>

‎ios/WatchBetterRail/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<key>CFBundleShortVersionString</key>
2020
<string>$(MARKETING_VERSION)</string>
2121
<key>CFBundleVersion</key>
22-
<string>10</string>
22+
<string>3</string>
2323
<key>UISupportedInterfaceOrientations</key>
2424
<array>
2525
<string>UIInterfaceOrientationPortrait</string>

0 commit comments

Comments
 (0)