fix ipad layout issues
This commit is contained in:
parent
33ad7d44e8
commit
a3862061a8
|
@ -82,8 +82,8 @@ struct HomeView: View {
|
|||
.resizable()
|
||||
.aspectRatio(contentMode: .fill)
|
||||
.frame(width: geometry.size.width)
|
||||
.frame(height: horizontalSizeClass == .compact ? 350 : geometry.size.height * 0.35)
|
||||
.offset(y: 30)
|
||||
.frame(height: horizontalSizeClass == .compact ? 350 : geometry.size.height * 0.45)
|
||||
.offset(y: horizontalSizeClass == .compact ? 30 : 0)
|
||||
.clipped()
|
||||
.overlay(
|
||||
LinearGradient(
|
||||
|
@ -103,12 +103,22 @@ struct HomeView: View {
|
|||
}
|
||||
.padding()
|
||||
} else {
|
||||
HStack(alignment: .top, spacing: 16) {
|
||||
quickLinksSection
|
||||
.frame(maxWidth: geometry.size.width * 0.4)
|
||||
HStack(alignment: .top, spacing: 32) {
|
||||
VStack(alignment: .leading, spacing: 24) {
|
||||
quickLinksSection
|
||||
.frame(maxWidth: geometry.size.width * 0.35)
|
||||
|
||||
Image("church_logo")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: geometry.size.width * 0.25)
|
||||
.padding(.top, 24)
|
||||
}
|
||||
|
||||
aboutUsSection
|
||||
.padding(.top, 8)
|
||||
}
|
||||
.padding()
|
||||
.padding(32)
|
||||
}
|
||||
}
|
||||
.frame(minHeight: geometry.size.height)
|
||||
|
@ -235,19 +245,20 @@ struct QuickLinkButton: View {
|
|||
let icon: String
|
||||
var color: Color = Color(hex: "fb8b23")
|
||||
var action: () -> Void
|
||||
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
Image(systemName: icon)
|
||||
.font(.system(size: 24))
|
||||
.font(.system(size: horizontalSizeClass == .compact ? 24 : 32))
|
||||
.foregroundColor(color)
|
||||
Text(title)
|
||||
.font(.custom("Montserrat-Medium", size: 14))
|
||||
.font(.custom("Montserrat-Medium", size: horizontalSizeClass == .compact ? 14 : 16))
|
||||
.foregroundColor(.primary)
|
||||
.multilineTextAlignment(.center)
|
||||
}
|
||||
.frame(maxWidth: .infinity)
|
||||
.padding()
|
||||
.padding(horizontalSizeClass == .compact ? 16 : 24)
|
||||
.background(Color(UIColor.secondarySystemBackground))
|
||||
.cornerRadius(12)
|
||||
.onTapGesture(perform: action)
|
||||
|
@ -258,24 +269,25 @@ struct ServiceTimeRow: View {
|
|||
let day: String
|
||||
let time: String
|
||||
let name: String
|
||||
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
|
||||
|
||||
var body: some View {
|
||||
HStack {
|
||||
VStack(alignment: .leading) {
|
||||
Text(day)
|
||||
.font(.custom("Montserrat-Regular", size: 14))
|
||||
.font(.custom("Montserrat-Regular", size: horizontalSizeClass == .compact ? 14 : 16))
|
||||
.foregroundColor(.secondary)
|
||||
Text(time)
|
||||
.font(.custom("Montserrat-SemiBold", size: 16))
|
||||
.font(.custom("Montserrat-SemiBold", size: horizontalSizeClass == .compact ? 16 : 18))
|
||||
}
|
||||
|
||||
Spacer()
|
||||
|
||||
Text(name)
|
||||
.font(.custom("Montserrat-Regular", size: 16))
|
||||
.font(.custom("Montserrat-Regular", size: horizontalSizeClass == .compact ? 16 : 18))
|
||||
.foregroundColor(.secondary)
|
||||
}
|
||||
.padding(.vertical, 4)
|
||||
.padding(.vertical, horizontalSizeClass == .compact ? 4 : 8)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
126
privacy_policy.html
Normal file
126
privacy_policy.html
Normal file
|
@ -0,0 +1,126 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Privacy Policy - Rockville-Tolland SDA Church App</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
h1 {
|
||||
color: #2c3e50;
|
||||
border-bottom: 2px solid #eee;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
h2 {
|
||||
color: #34495e;
|
||||
margin-top: 30px;
|
||||
}
|
||||
h3 {
|
||||
color: #455a64;
|
||||
}
|
||||
ul {
|
||||
padding-left: 20px;
|
||||
}
|
||||
li {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.contact {
|
||||
background-color: #f8f9fa;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
margin-top: 30px;
|
||||
}
|
||||
.effective-date {
|
||||
color: #666;
|
||||
font-style: italic;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Privacy Policy for Rockville-Tolland SDA Church App</h1>
|
||||
|
||||
<p class="effective-date">Effective Date: March 19, 2024</p>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
<p>The Rockville-Tolland SDA Church app ("we," "our," or "us") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, and safeguard your information when you use our mobile application.</p>
|
||||
|
||||
<h2>Information We Collect</h2>
|
||||
|
||||
<h3>Information You Provide</h3>
|
||||
<ul>
|
||||
<li>Contact form submissions</li>
|
||||
<li>App preferences and settings</li>
|
||||
</ul>
|
||||
|
||||
<h3>Automatically Collected Information</h3>
|
||||
<ul>
|
||||
<li>Device information (model, operating system version)</li>
|
||||
<li>App usage statistics</li>
|
||||
<li>Error logs</li>
|
||||
</ul>
|
||||
|
||||
<h3>We Do Not Collect</h3>
|
||||
<ul>
|
||||
<li>Personal identification information unless voluntarily provided</li>
|
||||
<li>Location data</li>
|
||||
<li>Contact lists</li>
|
||||
<li>Photos or media files</li>
|
||||
<li>Browsing history outside the app</li>
|
||||
</ul>
|
||||
|
||||
<h2>How We Use Your Information</h2>
|
||||
<p>We use the collected information to:</p>
|
||||
<ul>
|
||||
<li>Provide and maintain the app's functionality</li>
|
||||
<li>Improve user experience</li>
|
||||
<li>Respond to contact form submissions</li>
|
||||
<li>Analyze app performance and fix issues</li>
|
||||
</ul>
|
||||
|
||||
<h2>Data Storage and Security</h2>
|
||||
<ul>
|
||||
<li>All data is stored securely using industry-standard encryption</li>
|
||||
<li>Video streaming and live services are provided through secure third-party services (Jellyfin and Owncast)</li>
|
||||
<li>We do not sell or share your personal information with third parties</li>
|
||||
</ul>
|
||||
|
||||
<h2>Third-Party Services</h2>
|
||||
<p>Our app uses the following third-party services:</p>
|
||||
<ul>
|
||||
<li>Jellyfin for sermon video content</li>
|
||||
<li>Owncast for live streaming</li>
|
||||
<li>PocketBase for church announcements and events</li>
|
||||
</ul>
|
||||
<p>Each service has its own privacy policy and data handling practices.</p>
|
||||
|
||||
<h2>Your Rights</h2>
|
||||
<p>You have the right to:</p>
|
||||
<ul>
|
||||
<li>Access your personal information</li>
|
||||
<li>Request deletion of your data</li>
|
||||
<li>Opt-out of communications</li>
|
||||
<li>Report privacy concerns</li>
|
||||
</ul>
|
||||
|
||||
<h2>Children's Privacy</h2>
|
||||
<p>Our app is rated 4+ and does not knowingly collect information from children under 13.</p>
|
||||
|
||||
<h2>Changes to This Policy</h2>
|
||||
<p>We may update this Privacy Policy periodically. Users will be notified of any material changes.</p>
|
||||
|
||||
<div class="contact">
|
||||
<h2>Contact Us</h2>
|
||||
<p>For privacy-related questions or concerns, please contact:<br>
|
||||
Rockville-Tolland SDA Church IT Department<br>
|
||||
Email: <a href="mailto:it@rockvilletollandsda.church">it@rockvilletollandsda.church</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue