Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions app-ios/Native/Sources/Component/Constant.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import Foundation

public enum Constant {
/// for Custom Tab Bar space
public static var bottomPadding: CGFloat {
if #available(iOS 26.0, *) {
16
} else {
80
}
}
}
3 changes: 2 additions & 1 deletion app-ios/Native/Sources/Feature/About/AboutScreen.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import Dependencies
import DependencyExtra
import SwiftUI
Expand Down Expand Up @@ -39,7 +40,7 @@ public struct AboutScreen: View {
}
.padding(.horizontal, 16)
}
.padding(.bottom, 80) // Tab bar padding
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
.background(AssetColors.surface.swiftUIColor)
.navigationTitle(String(localized: "About DroidKaigi", bundle: .module))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import SwiftUI
import Theme

Expand All @@ -10,6 +11,13 @@ struct KeyVisual: View {
.aspectRatio(contentMode: .fit)
.frame(maxWidth: .infinity)
.padding(.bottom, 16)
.closureModifier {
if #available(iOS 26, *) {
$0.backgroundExtensionEffect()
} else {
$0
}
}

// Conference description text
Text(String(localized: "DroidKaigi is a conference for Android developers", bundle: .module))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import SwiftUI
import Theme

Expand Down Expand Up @@ -58,7 +59,7 @@ public struct ContributorScreen: View {
}
}
}
.padding(.bottom, 80) // Tab bar padding
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import Dependencies
import DependencyExtra
import SwiftUI
Expand Down Expand Up @@ -52,7 +53,7 @@ public struct EventMapScreen: View {
}
}
}
.padding(.bottom, 80) // Tab bar padding
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
}
.background(AssetColors.background.swiftUIColor)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ struct FavoriteItemList: View {
}
}
.padding(.vertical, 20)
.padding(.bottom, 80) // Tab bar padding
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public struct ProfileCardScreen: View {
EmptyView()
}
}
.padding(.bottom, 80) // Tab bar padding
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public struct ProfileCardEditScreen: View {
public var body: some View {
ScrollView {
EditProfileCardForm(presenter: $presenter)
.padding(.bottom, 80)
.padding(.bottom, Constant.bottomPadding)
}
.background(AssetColors.surface.swiftUIColor)
.navigationTitle("Profile Card")
Expand Down
2 changes: 1 addition & 1 deletion app-ios/Native/Sources/Feature/Search/SearchScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ public struct SearchScreen: View {
}
}
.padding(.horizontal, 16)
.padding(.bottom, 80) // Tab bar padding
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}

private var categoryFilterMenu: some View {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import SwiftUI
import Theme

Expand All @@ -16,7 +17,7 @@ public struct SponsorScreen: View {
}
}
.padding(.top, 24)
.padding(.bottom, 80)
.padding(.bottom, Constant.bottomPadding)
}
.background(AssetColors.background.swiftUIColor) // #111418
.navigationTitle("スポンサー")
Expand Down
3 changes: 2 additions & 1 deletion app-ios/Native/Sources/Feature/Staff/StaffScreen.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import SwiftUI
import Theme

Expand All @@ -24,7 +25,7 @@ public struct StaffScreen: View {
.buttonStyle(PlainButtonStyle())
}
}
.padding(.bottom, 80)
.padding(.bottom, Constant.bottomPadding)
}
.background(AssetColors.surface.swiftUIColor)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Component
import SwiftUI
import Theme

Expand Down Expand Up @@ -25,7 +26,8 @@ struct ToastView: View {
.padding(.vertical, 14)
.padding(.horizontal, 16)
.background(AssetColors.inverseSurface.swiftUIColor, in: RoundedRectangle(cornerRadius: 4))
.padding(.bottom, 100) // Tab bar padding
.padding(.horizontal, 16)
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ public struct TimetableDetailScreen: View {
.padding(16)
}

Spacer().frame(height: 56) // FAB space
Spacer().frame(height: 56 + Constant.bottomPadding) // FAB space + Tab bar padding
}

fabMenu
.padding(.bottom, Constant.bottomPadding) // Tab bar padding
}
.padding(.bottom, 80) // Tab bar padding
.background(AssetColors.background.swiftUIColor)
.frame(maxWidth: .infinity)
.ignoresSafeArea(edges: [.top])
Expand Down
78 changes: 78 additions & 0 deletions app-ios/Native/Sources/Root/Resources/Localizable.xcstrings
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"sourceLanguage" : "ja",
"strings" : {
"%@ starts in %d minutes" : {
"comment" : "Notification body format with session title and minutes",
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "new",
"value" : "%1$@ starts in %2$d minutes"
}
}
}
},
"About DroidKaigi" : {
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "DroidKaigiについて"
}
}
}
},
"Dismiss" : {
"comment" : "Notification action to dismiss"
},
"DroidKaigi Session Reminder" : {
"comment" : "Notification title for session reminders"
},
"Event Map" : {
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "イベントマップ"
}
}
}
},
"Favorites" : {
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "お気に入り"
}
}
}
},
"Navigation handler not available" : {
"comment" : "Navigation error"
},
"Notification permission was denied" : {
"comment" : "Permission error"
},
"Profile Card" : {

Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'Profile Card' localization entry is missing its Japanese translation. Add the appropriate localization structure with 'ja' key and translated value.

Suggested change
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "プロフィールカード"
}
}
}

Copilot uses AI. Check for mistakes.
},
"Timetable" : {
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "タイムテーブル"
}
}
}
},
"UI Mode" : {

Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'UI Mode' localization entry is missing its Japanese translation. Add the appropriate localization structure with 'ja' key and translated value.

Suggested change
"localizations" : {
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "UIモード"
}
}
}

Copilot uses AI. Check for mistakes.
},
"View Session" : {
"comment" : "Notification action to view session"
}
},
"version" : "1.1"
}
6 changes: 6 additions & 0 deletions app-ios/Native/Sources/Root/RootScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -123,32 +123,38 @@ public struct RootScreen: View {
.hiddenTabBarIfNeeded()
} label: {
TabType.timetable.tabImage(selectedTab).swiftUIImage
Text(String(localized: "Timetable", bundle: .module))
}
Tab(value: .map) {
mapTab
.hiddenTabBarIfNeeded()
} label: {
TabType.map.tabImage(selectedTab).swiftUIImage
Text(String(localized: "Event Map", bundle: .module))
}
Tab(value: .favorite) {
favoriteTab
.hiddenTabBarIfNeeded()
} label: {
TabType.favorite.tabImage(selectedTab).swiftUIImage
Text(String(localized: "Favorites", bundle: .module))
}
Tab(value: .info) {
infoTab
.hiddenTabBarIfNeeded()
} label: {
TabType.info.tabImage(selectedTab).swiftUIImage
Text(String(localized: "About DroidKaigi", bundle: .module))
}
Tab(value: .profileCard) {
profileCardTab
.hiddenTabBarIfNeeded()
} label: {
TabType.profileCard.tabImage(selectedTab).swiftUIImage
Text(String(localized: "Profile Card", bundle: .module))
}
}
.tabViewStyle(.sidebarAdaptable)
.tint(AssetColors.primaryFixed.swiftUIColor)
}

Expand Down
Loading