From b31066a04c88e74cd24cb5f7a6d44a7b73fafd3e Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Sat, 30 May 2026 09:14:32 +0200 Subject: [PATCH] feat(chat): native action sheet + Insta-style heart for DM messages - ChatBubble: useActionSheet replaces custom Modal (native iOS popup, Android bottom sheet) - DM mode (isDM prop): hides like-count, shows Insta-style heart badge under bubble when liked - Group chat unchanged - Cleanup: remove unused Modal/Platform imports, sheet styles, actionsOpen state - deploy.sh: auto-detect ANDROID_HOME + auto-create local.properties for local Gradle - NEXT_RELEASE.md: DM reactions release note - Includes other staged work across binder-mac, marketing, ops/mdm, ios/ --- android-shot.png | 0 app.json | 5 + apps/marketing/app/locales/de.json | 65 +- apps/marketing/app/locales/en.json | 63 +- apps/marketing/app/pages/index.vue | 4 +- apps/marketing/app/pages/pricing.vue | 68 +- .../Sources/Models/DeviceState.swift | 10 +- .../Sources/Models/WizardModel.swift | 3 + .../AppIcon.appiconset/Contents.json | 20 +- .../AppIcon.appiconset/icon_128x128.png | Bin 0 -> 6880 bytes .../AppIcon.appiconset/icon_128x128@2x.png | Bin 0 -> 20591 bytes .../AppIcon.appiconset/icon_16x16.png | Bin 0 -> 1067 bytes .../AppIcon.appiconset/icon_16x16@2x.png | Bin 0 -> 1539 bytes .../AppIcon.appiconset/icon_256x256.png | Bin 0 -> 20591 bytes .../AppIcon.appiconset/icon_256x256@2x.png | Bin 0 -> 66930 bytes .../AppIcon.appiconset/icon_32x32.png | Bin 0 -> 1539 bytes .../AppIcon.appiconset/icon_32x32@2x.png | Bin 0 -> 2932 bytes .../AppIcon.appiconset/icon_512x512.png | Bin 0 -> 66930 bytes .../AppIcon.appiconset/icon_512x512@2x.png | Bin 0 -> 222924 bytes .../Sources/Services/DeviceDetector.swift | 93 ++- .../Sources/Services/SuperviseRunner.swift | 3 +- .../Sources/Views/ConfigureView.swift | 281 +++++-- .../Sources/Views/ContentView.swift | 50 +- .../Sources/Views/EnrollView.swift | 268 ++++++- .../Sources/Views/SuperviseView.swift | 23 +- .../Sources/Views/WelcomeView.swift | 161 ++++ apps/rebreak-native/.gitignore | 3 + apps/rebreak-native/CHANGELOG.md | 1 + apps/rebreak-native/NEXT_RELEASE.md | 2 +- apps/rebreak-native/README.md | 120 +++ apps/rebreak-native/SCRIPTS.md | 223 ++++++ apps/rebreak-native/app.config.ts | 53 +- apps/rebreak-native/app/(app)/_layout.tsx | 4 + apps/rebreak-native/app/(app)/blocker.tsx | 30 +- apps/rebreak-native/app/(app)/chat.tsx | 69 +- apps/rebreak-native/app/dm.tsx | 383 +++++++-- apps/rebreak-native/app/help/faq.tsx | 5 + apps/rebreak-native/app/lyra.tsx | 13 +- apps/rebreak-native/app/settings.tsx | 20 +- .../build-config/exportOptions-adhoc.plist | 25 + .../build-config/exportOptions-tf.plist | 18 + .../rebreak-native/components/ComposeCard.tsx | 18 +- apps/rebreak-native/components/NativeTabs.tsx | 3 + .../components/SearchBarFloating.tsx | 196 +++++ .../components/blocker/AddDomainSheet.tsx | 24 +- .../blocker/ProtectionDetailsSheet.tsx | 75 +- .../blocker/ProtectionLockedCard.tsx | 22 +- .../components/chat/ChatBubble.tsx | 150 ++-- .../components/games/GameOverScreen.tsx | 299 ++++--- .../components/header/HeaderDropdownMenu.tsx | 27 +- .../components/mail/ConnectMailSheet.tsx | 73 +- .../components/urge/UrgeGames.tsx | 30 +- apps/rebreak-native/deploy.sh | 19 +- apps/rebreak-native/dev.sh | 431 ++++++++++ apps/rebreak-native/eas.json | 2 +- apps/rebreak-native/hooks/useCustomDomains.ts | 37 + .../hooks/useProtectionState.ts | 16 +- apps/rebreak-native/lib/protection.ts | 110 ++- apps/rebreak-native/locales/ar.json | 43 +- apps/rebreak-native/locales/de.json | 51 +- apps/rebreak-native/locales/en.json | 45 +- apps/rebreak-native/locales/fr.json | 43 +- .../RebreakProtectionModule.kt | 6 +- .../vpn/RebreakVpnService.kt | 9 + .../FilterDataProvider.swift | 228 ++++++ .../ios/RebreakContentFilter/Info.plist | 31 + .../RebreakContentFilter.entitlements | 14 + .../RebreakPacketTunnelExtension/Info.plist | 4 +- .../PacketTunnelProvider.swift | 101 ++- .../ios/RebreakProtectionModule.swift | 218 ++++- .../ios/RebreakURLFilterExtension/Info.plist | 4 +- .../src/RebreakProtection.types.ts | 9 + .../src/RebreakProtectionModule.ts | 47 +- .../src/RebreakProtectionModule.web.ts | 8 + .../plugins/with-rebreak-protection-ios.js | 180 ++++- apps/rebreak-native/scripts/play-submit.mjs | 179 +++++ apps/rebreak-native/stores/community.ts | 6 +- .../rebreak-native/stores/mailConnectDraft.ts | 2 +- apps/rebreak-native/tmp/FilteringTrafficByURL | 1 + .../tmp/ios-vpn-filter-research.md | 582 ++++++++++++++ .../tmp/webcontent-layer2-research.md | 183 +++++ ios/.gitignore | 30 + ios/.xcode.env | 11 + ios/Podfile | 63 ++ ios/Podfile.properties.json | 4 + ios/rebreakmonorepo.xcodeproj/project.pbxproj | 432 ++++++++++ .../xcschemes/rebreakmonorepo.xcscheme | 88 +++ ios/rebreakmonorepo/AppDelegate.swift | 70 ++ .../AppIcon.appiconset/Contents.json | 13 + .../Images.xcassets/Contents.json | 6 + .../SplashScreenLegacy.imageset/Contents.json | 21 + .../SplashScreenLegacy.png | Bin 0 -> 79333 bytes ios/rebreakmonorepo/Info.plist | 53 ++ ios/rebreakmonorepo/SplashScreen.storyboard | 47 ++ ios/rebreakmonorepo/Supporting/Expo.plist | 6 + .../rebreakmonorepo-Bridging-Header.h | 3 + ops/BUSINESS_PLAN_NBANK.md | 742 ++++++++++++++++++ ops/COMPLIANCE_ROADMAP.md | 282 +++++++ ops/LYRA_PERSONA.md | 258 ++++++ ops/TODO_QUEUE.md | 40 + ops/mdm/profiles/README.md | 137 ++++ ops/mdm/profiles/UNSUPERVISED-NGINX.conf | 111 +++ ops/mdm/profiles/UNSUPERVISED-TEST-PLAN.md | 190 +++++ .../profiles/generate-unsupervised-profile.py | 113 +++ ...break-content-filter-sideload.mobileconfig | 114 +++ .../rebreak-iphone-protect.mobileconfig | 135 ++++ ...-iphone-unsupervised-sideload.mobileconfig | 247 ++++++ ops/mdm/supervise-magic/README.md | 16 + ops/mdm/supervise-magic/cmd/supervise/main.go | 18 +- .../internal/cloudconfig/writer.go | 123 ++- .../internal/mobilebackup2/embed.go | 16 + .../internal/mobilebackup2/fileserver.go | 53 +- .../internal/mobilebackup2/manifest_db.go | 16 + .../internal/mobilebackup2/mobilebackup2.go | 45 +- .../templates/TL_Manifest.db-shm | Bin 0 -> 32768 bytes .../templates/TL_Manifest.db-wal | 0 .../internal/supervise/flow.go | 69 ++ .../internal/supervise/flow_backup.go | 209 ++++- ops/mdm/supervise-magic/tools/ab-profile.sh | 114 +++ ops/mdm/supervise-magic/tools/delta-matrix.md | 61 ++ .../supervise-magic/tools/experiment-run.sh | 80 ++ .../tools/systematic-playbook.md | 46 ++ ops/strategy/FAGS_OUTREACH.md | 155 ++++ ops/strategy/OUTREACH_MAILS_READY.md | 106 +++ ops/strategy/PARTNER_ANALYSIS.md | 178 +++++ 125 files changed, 9256 insertions(+), 877 deletions(-) create mode 100644 android-shot.png create mode 100644 app.json create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_128x128.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_16x16.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_256x256.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_32x32.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512.png create mode 100644 apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png create mode 100644 apps/rebreak-native/SCRIPTS.md create mode 100644 apps/rebreak-native/build-config/exportOptions-adhoc.plist create mode 100644 apps/rebreak-native/build-config/exportOptions-tf.plist create mode 100644 apps/rebreak-native/components/SearchBarFloating.tsx create mode 100755 apps/rebreak-native/dev.sh create mode 100644 apps/rebreak-native/modules/rebreak-protection/ios/RebreakContentFilter/FilterDataProvider.swift create mode 100644 apps/rebreak-native/modules/rebreak-protection/ios/RebreakContentFilter/Info.plist create mode 100644 apps/rebreak-native/modules/rebreak-protection/ios/RebreakContentFilter/RebreakContentFilter.entitlements create mode 100644 apps/rebreak-native/scripts/play-submit.mjs create mode 160000 apps/rebreak-native/tmp/FilteringTrafficByURL create mode 100644 apps/rebreak-native/tmp/ios-vpn-filter-research.md create mode 100644 apps/rebreak-native/tmp/webcontent-layer2-research.md create mode 100644 ios/.gitignore create mode 100644 ios/.xcode.env create mode 100644 ios/Podfile create mode 100644 ios/Podfile.properties.json create mode 100644 ios/rebreakmonorepo.xcodeproj/project.pbxproj create mode 100644 ios/rebreakmonorepo.xcodeproj/xcshareddata/xcschemes/rebreakmonorepo.xcscheme create mode 100644 ios/rebreakmonorepo/AppDelegate.swift create mode 100644 ios/rebreakmonorepo/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/rebreakmonorepo/Images.xcassets/Contents.json create mode 100644 ios/rebreakmonorepo/Images.xcassets/SplashScreenLegacy.imageset/Contents.json create mode 100644 ios/rebreakmonorepo/Images.xcassets/SplashScreenLegacy.imageset/SplashScreenLegacy.png create mode 100644 ios/rebreakmonorepo/Info.plist create mode 100644 ios/rebreakmonorepo/SplashScreen.storyboard create mode 100644 ios/rebreakmonorepo/Supporting/Expo.plist create mode 100644 ios/rebreakmonorepo/rebreakmonorepo-Bridging-Header.h create mode 100644 ops/BUSINESS_PLAN_NBANK.md create mode 100644 ops/COMPLIANCE_ROADMAP.md create mode 100644 ops/LYRA_PERSONA.md create mode 100644 ops/TODO_QUEUE.md create mode 100644 ops/mdm/profiles/README.md create mode 100644 ops/mdm/profiles/UNSUPERVISED-NGINX.conf create mode 100644 ops/mdm/profiles/UNSUPERVISED-TEST-PLAN.md create mode 100644 ops/mdm/profiles/generate-unsupervised-profile.py create mode 100644 ops/mdm/profiles/rebreak-content-filter-sideload.mobileconfig create mode 100644 ops/mdm/profiles/rebreak-iphone-protect.mobileconfig create mode 100644 ops/mdm/profiles/rebreak-iphone-unsupervised-sideload.mobileconfig create mode 100644 ops/mdm/supervise-magic/internal/mobilebackup2/templates/TL_Manifest.db-shm create mode 100644 ops/mdm/supervise-magic/internal/mobilebackup2/templates/TL_Manifest.db-wal create mode 100755 ops/mdm/supervise-magic/tools/ab-profile.sh create mode 100644 ops/mdm/supervise-magic/tools/delta-matrix.md create mode 100755 ops/mdm/supervise-magic/tools/experiment-run.sh create mode 100644 ops/mdm/supervise-magic/tools/systematic-playbook.md create mode 100644 ops/strategy/FAGS_OUTREACH.md create mode 100644 ops/strategy/OUTREACH_MAILS_READY.md create mode 100644 ops/strategy/PARTNER_ANALYSIS.md diff --git a/android-shot.png b/android-shot.png new file mode 100644 index 0000000..e69de29 diff --git a/app.json b/app.json new file mode 100644 index 0000000..879ea76 --- /dev/null +++ b/app.json @@ -0,0 +1,5 @@ +{ + "ios": { + "bundleIdentifier": "com.chahinebrini.rebreak-monorepo" + } +} diff --git a/apps/marketing/app/locales/de.json b/apps/marketing/app/locales/de.json index a6886f1..ac314de 100644 --- a/apps/marketing/app/locales/de.json +++ b/apps/marketing/app/locales/de.json @@ -13,7 +13,7 @@ "cta_start": "Jetzt kostenlos starten", "stat_affected": "Menschen in DE betroffen", "stat_blocked": "Domains geblockt", - "stat_free": "Zum Starten", + "stat_from": "Ab pro Monat", "more_info": "Mehr erfahren", "blocker_badge": "Gambling Blocker", "blocker_title_domains": "Domains.", @@ -146,7 +146,7 @@ "quotes_subtitle": "Von Psychologen und Denkern über Selbstschutz und Veränderung", "faq_title": "Häufige Fragen", "cta_title": "Bereit anzufangen?", - "cta_desc": "Kostenlos starten, jederzeit upgraden.", + "cta_desc": "14 Tage gratis testen, jederzeit kündbar.", "cta_button": "App herunterladen", "footer_home": "Home", "footer_pricing": "Preise", @@ -158,73 +158,70 @@ "billing_forever": "für immer", "billing_per_month": "/ Monat", "billing_per_year": "/ Monat, jährlich", - "plan_free_title": "Kostenlos", - "plan_free_desc": "Einstieg ohne Risiko – für immer gratis.", - "plan_free_btn": "App herunterladen", "plan_pro_title": "Pro", - "plan_pro_desc": "Vollständiger Schutz und alle Tools für deinen Alltag.", + "plan_pro_desc": "Voller Schutz für ein Gerät – alles, was du im Alltag brauchst.", "plan_pro_btn": "Pro starten", "plan_legend_title": "Legend", - "plan_legend_desc": "Für die, die stark genug sind – um anderen den Weg zu ebnen.", + "plan_legend_desc": "Maximaler Schutz für bis zu 3 Geräte – inkl. Selbstbindungs-Modus.", "plan_legend_btn": "Legend starten", "plan_loading": "Wird geladen...", "plan_recommended": "Empfohlen", - "feat_free_domains": "5 eigene Domains", - "feat_free_mail": "1 Mail-Agent (Scan alle 4h)", - "feat_coach_basic": "KI-Coach Basis", + "feat_pro_devices": "1 Gerät (iOS, Android oder macOS)", + "feat_pro_domains": "5 eigene Domains (rückfüllbar)", + "feat_pro_mail": "Echtzeit-Mail-Schutz (IMAP-IDLE, 2 Konten)", + "feat_blocklist": "ReBreak Blocklist (208k+ Domains)", + "feat_coach_pro": "KI-Coach Lyra mit Streak & Urge-Statistiken", "feat_streak": "Streak & Ersparnisse Tracker", "feat_urge": "Urge Tracker + Atemübung", "feat_sos": "SOS-Button (Sofort-Hilfe)", "feat_community": "Gemeinschaft erleben", - "feat_all_free": "Alles aus Kostenlos", - "feat_blocklist": "ReBreak Blocklist (208k+ Domains)", - "feat_pro_domains": "5 eigene Domains (rückfüllbar)", - "feat_pro_mail": "3 Mail-Agenten (Intervall: 1h / 4h / 8h)", - "feat_community_post": "Community posten", + "feat_community_post": "Community posten + Buddy-System", "feat_buddy": "Buddy System", - "feat_coach_pro": "KI-Coach (besser)", "feat_urge_stats": "Urge-Statistiken & Muster", "feat_all_pro": "Alles aus Pro", - "feat_legend_domains": "Unbegrenzte eigene Domains (rückfüllbar)", - "feat_legend_mail": "Unbegrenzte Mail-Agenten (Echtzeit)", + "feat_legend_devices": "Bis zu 3 Geräte (iOS, Android, macOS)", + "feat_legend_domains": "Unbegrenzte eigene Domains", + "feat_legend_mail": "Echtzeit-Mail-Schutz (IMAP-IDLE, unbegrenzte Konten)", + "feat_legend_binder": "RebReakBinder – Selbstbindungs-Modus (opt-in, macOS)", "feat_legend_add": "Domains direkt zur ReBreak Blocklist hinzufügen", "feat_legend_validate": "Community-Domains validieren", "feat_legend_groups": "Gruppen gründen & leiten", - "feat_coach_legend": "Top KI-Coach mit Gedächtnis", + "feat_coach_legend": "Top KI-Coach mit Langzeit-Gedächtnis", + "comp_devices": "Geräte", "comp_domains": "Eigene Domains", - "comp_mail": "Mail-Agent", - "comp_coach": "KI-Coach", + "comp_mail": "Mail-Schutz", + "comp_coach": "KI-Coach Lyra", + "comp_blocklist": "ReBreak Blocklist (208k+ Domains)", "comp_streak": "Streak & Ersparnisse Tracker", "comp_urge": "Urge Tracker + Atemübung", "comp_sos": "SOS-Button (Sofort-Hilfe)", "comp_community": "Gemeinschaft erleben", - "comp_blocklist": "ReBreak Blocklist (208k+ Domains)", "comp_post": "Community posten", "comp_buddy": "Buddy System", "comp_urge_stats": "Urge-Statistiken & Muster", + "comp_binder": "RebReakBinder (Selbstbindungs-Modus, macOS)", "comp_add_domain": "Domains zur Blocklist hinzufügen", "comp_validate": "Community-Domains validieren", "comp_groups": "Gruppen gründen & leiten", - "comp_free_domains": "5", + "comp_pro_devices": "1", + "comp_legend_devices": "bis 3", "comp_pro_domains": "5 (rückfüllbar)", - "comp_legend_domains": "Unbegrenzt (rückfüllbar)", - "comp_free_mail_val": "1 (4h)", - "comp_pro_mail_val": "3 (1h / 4h / 8h)", - "comp_legend_mail_val": "Echtzeit", - "comp_free_coach_val": "Basis", - "comp_pro_coach_val": "Besser", - "comp_legend_coach_val": "Top + Gedächtnis", + "comp_legend_domains": "Unbegrenzt", + "comp_pro_mail_val": "Echtzeit · 2 Konten", + "comp_legend_mail_val": "Echtzeit · unbegrenzt", + "comp_pro_coach_val": "Streak + Urge-Stats", + "comp_legend_coach_val": "+ Langzeit-Gedächtnis", "faq1_q": "Muss ich eine E-Mail-Adresse angeben?", "faq1_a": "Ja, für die Registrierung wird eine E-Mail-Adresse benötigt. Deine Daten werden ausschließlich auf deutschen Servern gespeichert und verarbeitet – vollständig anonym, nach strengen DSGVO-Standards. Kein Name, kein Standort, kein Nutzungsverhalten wird an Dritte weitergegeben.", "faq2_q": "Was ist der Unterschied zwischen Pro und Legend?", - "faq2_a": "Pro gibt dir vollständigen Schutz: ReBreak Blocklist (208k+ Domains), 3 Mail-Agenten, KI-Coach und Community. Legend geht weiter: unbegrenzte Domains und Agenten, direktes Hinzufügen zur Blocklist, Validierung von Community-Domains, Gruppen leiten und Top KI-Coach mit Gedächtnis.", + "faq2_a": "Pro schützt EIN Gerät mit Echtzeit-Mail-Schutz (IMAP-IDLE, 2 Konten), ReBreak Blocklist (208k+ Domains) und Lyra mit Streak/Urge-Stats. Legend deckt BIS ZU 3 Geräte ab, hat unbegrenzte Mail-Konten und Domains, schaltet den RebReakBinder-Selbstbindungs-Modus (macOS) frei und gibt dir Lyra mit Langzeit-Gedächtnis sowie Gruppen-Leitung.", "faq3_q": "Welche Zahlungszyklen gibt es?", "faq3_a": "Monatlich (voller Preis) oder jährlich (Spare 39%). Du kannst jederzeit wechseln.", "faq4_q": "Kann ich jederzeit kündigen?", "faq4_a": "Ja, du kannst dein Abo jederzeit kündigen. Du behältst den Zugang bis zum Ende der bezahlten Periode.", - "faq5_q": "Was passiert mit meinen Daten wenn ich kündige?", - "faq5_a": "Dein Account und alle Daten bleiben erhalten. Dein Streak und alle Tracker gehören dir – für immer.", + "faq5_q": "Was ist der RebReakBinder?", + "faq5_a": "Der RebReakBinder ist ein optionaler Selbstbindungs-Modus auf macOS (Legend exklusiv). Er bindet die Schutz-App so an dein Gerät, dass du sie im akuten Druck NICHT einfach selbst deinstallieren kannst – nur eine Vertrauensperson kann lösen. Vollständig opt-in, jederzeit umkehrbar mit Bedenkzeit.", "faq6_q": "Ist ReBreak ein Ersatz für professionelle Hilfe?", - "faq6_a": "Nein. ReBreak ist ein Selbsthilfe-Tool. Bei Krisen: BZgA (0800 1372700) oder Arzt aufsuchen." + "faq6_a": "Nein. ReBreak ist ein Selbsthilfe-Tool. Bei Krisen: BZgA Sucht & Drogen Hotline 0800 1372700 oder Telefonseelsorge 0800 1110 111." } } diff --git a/apps/marketing/app/locales/en.json b/apps/marketing/app/locales/en.json index db87ff6..b3077ef 100644 --- a/apps/marketing/app/locales/en.json +++ b/apps/marketing/app/locales/en.json @@ -13,7 +13,7 @@ "cta_start": "Start free now", "stat_affected": "People in DE affected", "stat_blocked": "Domains blocked", - "stat_free": "To start", + "stat_from": "From / month", "more_info": "Learn more", "blocker_badge": "Gambling Blocker", "blocker_title_domains": "Domains.", @@ -146,7 +146,7 @@ "quotes_subtitle": "From psychologists and thinkers on self-protection and change", "faq_title": "Frequently Asked Questions", "cta_title": "Ready to start?", - "cta_desc": "Start free, upgrade anytime.", + "cta_desc": "14-day free trial, cancel anytime.", "cta_button": "Download the App", "footer_home": "Home", "footer_pricing": "Pricing", @@ -158,72 +158,69 @@ "billing_forever": "forever", "billing_per_month": "/ month", "billing_per_year": "/ month, billed yearly", - "plan_free_title": "Free", - "plan_free_desc": "Get started with no risk – free forever.", - "plan_free_btn": "Download App", "plan_pro_title": "Pro", - "plan_pro_desc": "Full protection and all tools for your daily life.", + "plan_pro_desc": "Full protection for one device – everything you need day to day.", "plan_pro_btn": "Start Pro", "plan_legend_title": "Legend", - "plan_legend_desc": "For those strong enough to light the way for others.", + "plan_legend_desc": "Maximum protection for up to 3 devices – incl. self-binding mode.", "plan_legend_btn": "Start Legend", "plan_loading": "Loading...", "plan_recommended": "Recommended", - "feat_free_domains": "5 custom domains", - "feat_free_mail": "1 mail agent (scan every 4h)", - "feat_coach_basic": "AI Coach Basic", + "feat_pro_devices": "1 device (iOS, Android or macOS)", + "feat_pro_domains": "5 custom domains (refillable)", + "feat_pro_mail": "Real-time mail protection (IMAP IDLE, 2 accounts)", + "feat_blocklist": "ReBreak Blocklist (208k+ domains)", + "feat_coach_pro": "AI Coach Lyra with streak & urge stats", "feat_streak": "Streak & Savings Tracker", "feat_urge": "Urge Tracker + Breathing Exercise", "feat_sos": "SOS Button (Instant Help)", "feat_community": "Experience the community", - "feat_all_free": "Everything in Free", - "feat_blocklist": "ReBreak Blocklist (208k+ domains)", - "feat_pro_domains": "5 custom domains (refillable)", - "feat_pro_mail": "3 mail agents (interval: 1h / 4h / 8h)", - "feat_community_post": "Post in community", + "feat_community_post": "Post in community + Buddy System", "feat_buddy": "Buddy System", - "feat_coach_pro": "AI Coach (Better)", "feat_urge_stats": "Urge statistics & patterns", "feat_all_pro": "Everything in Pro", - "feat_legend_domains": "Unlimited custom domains (refillable)", - "feat_legend_mail": "Unlimited mail agents (real-time)", + "feat_legend_devices": "Up to 3 devices (iOS, Android, macOS)", + "feat_legend_domains": "Unlimited custom domains", + "feat_legend_mail": "Real-time mail protection (IMAP IDLE, unlimited accounts)", + "feat_legend_binder": "RebReakBinder – self-binding mode (opt-in, macOS)", "feat_legend_add": "Add domains directly to the ReBreak Blocklist", "feat_legend_validate": "Validate community domains", "feat_legend_groups": "Create & lead groups", - "feat_coach_legend": "Top AI Coach with memory", + "feat_coach_legend": "Top AI Coach with long-term memory", + "comp_devices": "Devices", "comp_domains": "Custom Domains", - "comp_mail": "Mail Agent", - "comp_coach": "AI Coach", + "comp_mail": "Mail Protection", + "comp_coach": "AI Coach Lyra", + "comp_blocklist": "ReBreak Blocklist (208k+ domains)", "comp_streak": "Streak & Savings Tracker", "comp_urge": "Urge Tracker + Breathing", "comp_sos": "SOS Button (Instant Help)", "comp_community": "Experience community", - "comp_blocklist": "ReBreak Blocklist (208k+ domains)", "comp_post": "Post in community", "comp_buddy": "Buddy System", "comp_urge_stats": "Urge statistics & patterns", + "comp_binder": "RebReakBinder (self-binding mode, macOS)", "comp_add_domain": "Add domains to blocklist", "comp_validate": "Validate community domains", "comp_groups": "Create & lead groups", - "comp_free_domains": "5", + "comp_pro_devices": "1", + "comp_legend_devices": "up to 3", "comp_pro_domains": "5 (refillable)", - "comp_legend_domains": "Unlimited (refillable)", - "comp_free_mail_val": "1 (4h)", - "comp_pro_mail_val": "3 (1h / 4h / 8h)", - "comp_legend_mail_val": "Real-time", - "comp_free_coach_val": "Basic", - "comp_pro_coach_val": "Better", - "comp_legend_coach_val": "Top + Memory", + "comp_legend_domains": "Unlimited", + "comp_pro_mail_val": "Real-time · 2 accounts", + "comp_legend_mail_val": "Real-time · unlimited", + "comp_pro_coach_val": "Streak + Urge Stats", + "comp_legend_coach_val": "+ Long-term memory", "faq1_q": "Do I need to provide an email address?", "faq1_a": "Yes, an email address is required for registration. Your data is stored and processed exclusively on German servers – fully anonymously, according to strict GDPR standards.", "faq2_q": "What's the difference between Pro and Legend?", - "faq2_a": "Pro gives you full protection: ReBreak Blocklist (208k+ domains), 3 mail agents, AI Coach and community. Legend goes further: unlimited domains, direct blocklist additions, domain validation, group leadership and top AI Coach with memory.", + "faq2_a": "Pro protects ONE device with real-time mail protection (IMAP IDLE, 2 accounts), ReBreak Blocklist (208k+ domains) and Lyra with streak/urge stats. Legend covers UP TO 3 devices, has unlimited mail accounts and domains, unlocks the RebReakBinder self-binding mode (macOS) and gives you Lyra with long-term memory plus group leadership.", "faq3_q": "What billing cycles are available?", "faq3_a": "Monthly (full price) or yearly (save 39%). You can switch at any time.", "faq4_q": "Can I cancel at any time?", "faq4_a": "Yes, you can cancel your subscription at any time. You keep access until the end of the paid period.", - "faq5_q": "What happens to my data when I cancel?", - "faq5_a": "Your account and all data remain intact. Your streak and all trackers belong to you – forever.", + "faq5_q": "What is the RebReakBinder?", + "faq5_a": "The RebReakBinder is an optional self-binding mode on macOS (Legend exclusive). It binds the protection app to your device so you CANNOT uninstall it yourself under acute pressure – only a trusted person can release it. Fully opt-in, reversible at any time with a cooling-off period.", "faq6_q": "Is ReBreak a substitute for professional help?", "faq6_a": "No. ReBreak is a self-help tool. In crises: contact a professional or call a helpline." } diff --git a/apps/marketing/app/pages/index.vue b/apps/marketing/app/pages/index.vue index 2e632c2..532ed18 100644 --- a/apps/marketing/app/pages/index.vue +++ b/apps/marketing/app/pages/index.vue @@ -49,8 +49,8 @@
{{ $t('landing.stat_blocked') }}
-
0€
-
{{ $t('landing.stat_free') }}
+
3,99€
+
{{ $t('landing.stat_from') }}
diff --git a/apps/marketing/app/pages/pricing.vue b/apps/marketing/app/pages/pricing.vue index a8b4863..c783b75 100644 --- a/apps/marketing/app/pages/pricing.vue +++ b/apps/marketing/app/pages/pricing.vue @@ -75,9 +75,6 @@ {{ $t('pricing.feature') }} - - {{ $t('pricing.free') }} - Pro Legend @@ -86,11 +83,6 @@ {{ row.label }} - - - {{ row.free }} - - @@ -191,28 +183,6 @@ const billingCycleLabel = computed(() => { const appStoreUrl = "https://apps.apple.com/app/rebreak"; const plans = computed(() => [ - { - title: t('pricing.plan_free_title'), - description: t('pricing.plan_free_desc'), - price: "0€", - billingCycle: t('pricing.billing_forever'), - features: [ - t('pricing.feat_free_domains'), - t('pricing.feat_free_mail'), - t('pricing.feat_coach_basic'), - t('pricing.feat_streak'), - t('pricing.feat_urge'), - t('pricing.feat_sos'), - t('pricing.feat_community'), - ], - button: { - label: t('pricing.plan_free_btn'), - to: appStoreUrl, - target: "_blank", - color: "neutral" as const, - variant: "outline" as const, - }, - }, { title: t('pricing.plan_pro_title'), description: t('pricing.plan_pro_desc'), @@ -221,14 +191,14 @@ const plans = computed(() => [ scale: true, badge: t('pricing.plan_recommended'), features: [ - t('pricing.feat_all_free'), + t('pricing.feat_pro_devices'), t('pricing.feat_blocklist'), t('pricing.feat_pro_domains'), t('pricing.feat_pro_mail'), - t('pricing.feat_community_post'), - t('pricing.feat_buddy'), t('pricing.feat_coach_pro'), + t('pricing.feat_streak'), t('pricing.feat_urge_stats'), + t('pricing.feat_community_post'), ], button: { label: t('pricing.plan_pro_btn'), @@ -243,8 +213,10 @@ const plans = computed(() => [ billingCycle: billingCycleLabel.value, features: [ t('pricing.feat_all_pro'), + t('pricing.feat_legend_devices'), t('pricing.feat_legend_domains'), t('pricing.feat_legend_mail'), + t('pricing.feat_legend_binder'), t('pricing.feat_legend_add'), t('pricing.feat_legend_validate'), t('pricing.feat_legend_groups'), @@ -261,20 +233,22 @@ const plans = computed(() => [ ]); const comparisonRows = computed(() => [ - { label: t('pricing.comp_domains'), free: t('pricing.comp_free_domains'), pro: t('pricing.comp_pro_domains'), legend: t('pricing.comp_legend_domains') }, - { label: t('pricing.comp_mail'), free: t('pricing.comp_free_mail_val'), pro: t('pricing.comp_pro_mail_val'), legend: t('pricing.comp_legend_mail_val') }, - { label: t('pricing.comp_coach'), free: t('pricing.comp_free_coach_val'), pro: t('pricing.comp_pro_coach_val'), legend: t('pricing.comp_legend_coach_val') }, - { label: t('pricing.comp_streak'), free: true, pro: true, legend: true }, - { label: t('pricing.comp_urge'), free: true, pro: true, legend: true }, - { label: t('pricing.comp_sos'), free: true, pro: true, legend: true }, - { label: t('pricing.comp_community'), free: true, pro: true, legend: true }, - { label: t('pricing.comp_blocklist'), free: false, pro: true, legend: true }, - { label: t('pricing.comp_post'), free: false, pro: true, legend: true }, - { label: t('pricing.comp_buddy'), free: false, pro: true, legend: true }, - { label: t('pricing.comp_urge_stats'), free: false, pro: true, legend: true }, - { label: t('pricing.comp_add_domain'), free: false, pro: false, legend: true }, - { label: t('pricing.comp_validate'), free: false, pro: false, legend: true }, - { label: t('pricing.comp_groups'), free: false, pro: false, legend: true }, + { label: t('pricing.comp_devices'), pro: t('pricing.comp_pro_devices'), legend: t('pricing.comp_legend_devices') }, + { label: t('pricing.comp_domains'), pro: t('pricing.comp_pro_domains'), legend: t('pricing.comp_legend_domains') }, + { label: t('pricing.comp_mail'), pro: t('pricing.comp_pro_mail_val'), legend: t('pricing.comp_legend_mail_val') }, + { label: t('pricing.comp_coach'), pro: t('pricing.comp_pro_coach_val'), legend: t('pricing.comp_legend_coach_val') }, + { label: t('pricing.comp_blocklist'), pro: true, legend: true }, + { label: t('pricing.comp_streak'), pro: true, legend: true }, + { label: t('pricing.comp_urge'), pro: true, legend: true }, + { label: t('pricing.comp_sos'), pro: true, legend: true }, + { label: t('pricing.comp_community'), pro: true, legend: true }, + { label: t('pricing.comp_post'), pro: true, legend: true }, + { label: t('pricing.comp_buddy'), pro: true, legend: true }, + { label: t('pricing.comp_urge_stats'), pro: true, legend: true }, + { label: t('pricing.comp_binder'), pro: false, legend: true }, + { label: t('pricing.comp_add_domain'), pro: false, legend: true }, + { label: t('pricing.comp_validate'), pro: false, legend: true }, + { label: t('pricing.comp_groups'), pro: false, legend: true }, ]); const quotes = [ diff --git a/apps/rebreak-binder-mac/Sources/Models/DeviceState.swift b/apps/rebreak-binder-mac/Sources/Models/DeviceState.swift index bc3a194..40a024c 100644 --- a/apps/rebreak-binder-mac/Sources/Models/DeviceState.swift +++ b/apps/rebreak-binder-mac/Sources/Models/DeviceState.swift @@ -23,7 +23,15 @@ struct DeviceState: Equatable { static let lockProfileID = "org.rebreak.protection.contentfilter.sideload" var isOwnedByReBreak: Bool { - (isSupervised == true) && (supervisorOrgName?.localizedCaseInsensitiveCompare("ReBreak") == .orderedSame) + (isSupervised == true) && (normalizedSupervisorOrgName?.localizedCaseInsensitiveCompare("ReBreak") == .orderedSame) + } + + /// Entfernt Quotes/Whitespace aus OrganizationName damit Skip-Logik robust ist + /// (z.B. wenn Tools "ReBreak" statt ReBreak liefern). + var normalizedSupervisorOrgName: String? { + supervisorOrgName? + .trimmingCharacters(in: .whitespacesAndNewlines) + .trimmingCharacters(in: CharacterSet(charactersIn: "\"'")) } /// Ground-Truth: ist das Enrollment-Profil aktuell auf dem iPhone installiert? diff --git a/apps/rebreak-binder-mac/Sources/Models/WizardModel.swift b/apps/rebreak-binder-mac/Sources/Models/WizardModel.swift index fb1a360..9b84f36 100644 --- a/apps/rebreak-binder-mac/Sources/Models/WizardModel.swift +++ b/apps/rebreak-binder-mac/Sources/Models/WizardModel.swift @@ -19,6 +19,8 @@ final class WizardModel { var configureRunning: Bool = false var configureError: String? + var showAdvancedLogs: Bool = false + var cooldownEndsAt: Date? func advance() { @@ -40,6 +42,7 @@ final class WizardModel { supervisionError = nil enrollmentError = nil configureError = nil + showAdvancedLogs = false cooldownEndsAt = nil } } diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json index 5dc4daa..700d5cf 100644 --- a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,15 +1,15 @@ { "images" : [ - {"idiom" : "mac", "scale" : "1x", "size" : "16x16"}, - {"idiom" : "mac", "scale" : "2x", "size" : "16x16"}, - {"idiom" : "mac", "scale" : "1x", "size" : "32x32"}, - {"idiom" : "mac", "scale" : "2x", "size" : "32x32"}, - {"idiom" : "mac", "scale" : "1x", "size" : "128x128"}, - {"idiom" : "mac", "scale" : "2x", "size" : "128x128"}, - {"idiom" : "mac", "scale" : "1x", "size" : "256x256"}, - {"idiom" : "mac", "scale" : "2x", "size" : "256x256"}, - {"idiom" : "mac", "scale" : "1x", "size" : "512x512"}, - {"idiom" : "mac", "scale" : "2x", "size" : "512x512"} + { "filename" : "icon_16x16.png", "idiom" : "mac", "scale" : "1x", "size" : "16x16" }, + { "filename" : "icon_16x16@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "16x16" }, + { "filename" : "icon_32x32.png", "idiom" : "mac", "scale" : "1x", "size" : "32x32" }, + { "filename" : "icon_32x32@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "32x32" }, + { "filename" : "icon_128x128.png", "idiom" : "mac", "scale" : "1x", "size" : "128x128" }, + { "filename" : "icon_128x128@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "128x128" }, + { "filename" : "icon_256x256.png", "idiom" : "mac", "scale" : "1x", "size" : "256x256" }, + { "filename" : "icon_256x256@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "256x256" }, + { "filename" : "icon_512x512.png", "idiom" : "mac", "scale" : "1x", "size" : "512x512" }, + { "filename" : "icon_512x512@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "512x512" } ], "info" : { "author" : "xcode", diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..ab43b129cc2805afa3fff8d0be20c4c1b992957f GIT binary patch literal 6880 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 a%)xL~{6`U^o1QeNjP!K%b6Mw<&;$UH31E}} literal 0 HcmV?d00001 diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..609d38b94139b4a8bc6d07a52fa2f240be2dde39 GIT binary patch literal 20591 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�?@$ ze~~Z>ojPUF|BUrIF3PRG-LLgS#g$&YX*TBPpn||!;PREZZUm#K5u@w@_WPusl*Wal zRDVs_s1{%ZX@VYmc!$)cP)wkFanP^H<1v%>Dy3q(Pjp=I-D9}W^{bYHe6 zdT!bppf4gxsqKqF{(LQCRq=1qf^Gs?qkEr2({9BS?pA#4BRWHOvFTKxhC;w|oAlU_ z$Ef%40I)GW$WVS3%|_HQ-2SLmh-S}SMqVk{NRkXV!yMxf_`KAO5O_KE_q|IL5@BTE z5Z(HRh?dsaPyI6UeP)uwq%yXEW<=$g#Ug6((@95XXKeaQp|Njo2$chhKSS=zCMjZ6 zF$GGxH}CM`S7f2r2qj}_Qp+(}ofr|ZXiS>)cTd1^a(ihzT@3PTu_GGe6^58TSIn=r za7^g16pt9M?Buk_T*CV$@Ve)5d56y1&_TFb)PAf7OhxLXX56Jp!{M3W`=hQZ*1xe| zbPc&$_(E(!g`h2uL!tN3F(qB5P?4so0+W$X-A6Mh4jgFBcmVibN(_ecYKcv7DKUB# zh^2+=tw`8Vz2h~E#ycQKjYnX`Pe4)$7-KE$4*<*VOdx>GGRJNjmJn0^hJ5tKXwl$w zrKkH|8$;*mZlCNSp>B$zLy8izIbEg&fF|X)XW_qyN(4@W2ZtMpYYD_N_XadTc2JlO z1J@2Iv9EpD8k^t?Hw|8_J(Q>Wb0x_Gt5d*|Orb?SUvJ zm~QJ>6jvdt6*=$AjsVOKlo`6So?n%AHW4JAOfDksnPVu%X1BSn*vTU9)QZoPJpeva}ekh;5~N6Y(3% z)%G_D5!h5=2GHDX`J9<(1X3P(IR>(`zKfeU36N<*keLnHnl_iTg_^=mnLWvZ)Rj!CA&`lg>jSj7Nx!YA7iI_jT!v z&*{dcY!%lDwALH4<>;Jw~yCRsQyY z`Ym{Nxg<~hOF(KDO_ES`Qx!HJDvkQv9K35gNnYHdlQcO37{p3Qa!w@MkhqxKhOttF zB_AETyF4KrmEu76UPx}v_hkhQRr6(f*x3pjqB}WFV@vRqmr{;-rZQsrkinV|FW5Dc zaRd^Mu?`~tU^EOFXzoYlo_kOzE8gIx;sbROs4Z<%f2gg5k`PuZ|M|xcw0@m}MvbBG zIc3|h!)2jEVSvcZXSui>HFV96;-3+`EyIN08PaPB_^T3}UV0t_b{(a-uL2Bh;|e7V zP~x)h>Ee4YV-9&wF-;(AA5!H{Ep^Oar}N@8$>hf1X};0M&?Synigx*gkM09D;CjGS zEjk*p)T2pP0mNZTHbe`zYmB3Y)?ZlbP@77VlqrSNC0860sqNpF#lSA}{aT9mH}Qy* zEldRXhwKXoTa@N=jDlxf*riiGrAT!h-WfP0vT;w~(IA>CUcK6qm+1U3= zHW-6W;-{skL$Hj;#dZeb5sX)K(}{+5|N9BJ6bnHrs!0-Yrj}CA+yvI-T6yRtiLJUg zZzylrvzUwen{LERpNDT0_9k2qTFA$~+wb`yBJLsSUI`hIbme=hVg`~7j&kU4*~XxG zRig&}qSD(;>)vLdg<-W;4iNO=h%zjy(K@SueAl*g@#TMCchPb5OezbsJr)vQ*1mW!p~@|NL7n9mhJ z<#?s>u6p2yu^}DQU-JszS=4F_qj8jCW9fTwd)z${;Bm-Ahca;iH~Q^wtD36VS?Avx8w^Bu`*^P&N1 zg@&)gz{+I8mh1uO;-;0W>&Q^nYlWS|_4ABoVR_d{fn>RFHB4fj#a~UHh=`a3X5D zhhKO~)A$zYz1CLrd*zb#E!fhZ%`cv-24$? zwmw3|vt~oEk|w~WATw_Uw9T0Z2d*m9dOzq~fV-ZxmV$XF>I<1TVQ;arRbJ^AhMg9@ zWzPV*@2eQ(@MqGY7afApu!yt&7%I%(AOkTXr@ZuLwk|NM5`pxnP*TGxV{l2dnju%j zAW}oOYP|P*T>CF>yLq+?(v)?(*<*DOfaUWaa zx5i=4*HIfOJp;>tHz`KS#SBros;8;m@~YWd*UF5Kj-E;JRQvGk`gw603@n*%LIp;u z+>o>EhFoGs5i<8#6$&uL`%&^Kdf@)zfAUf*-Y>gG=B_=SeZTLTkLpmQoo7f;8xNLJ zC-7XxLXMUtecvXG`Cr!<TGH`12;|>FiG24nWCLLk7)9M>Fe#I5H)pkDahAk}Nf+mEYZpa_EnkhRMX(?ZX zL%c_`8mM&j#Qqo#mUYZDhI0j}83RIaF$U3RL)2Pz-Ov|#(Y}ir1tsDiD=)eZn|F#~ zRK6|DDIL$&qZS|yVmxh2AKcssTn78}U+3HKPL!3X|Jf)Qi>iqGX&++NlomG#6D)yR zW%b2M!Fo_27+|==!a}4$;;zQ>NQ5W$rTDvJlxKzXQcBP(p6Pv2OLt9kyar|oIUVD< zbvBl!{zD1DX#~;?z0!~d8W>(Y9)7Ar_!-kpE8h>33-XKIPWivXhaf{J!R7DMoYkdXBB9LswWPf_}S zV7UiLzl&h_|9EBU81rlJmD_a|PFrh3wj;VD_ZQF>Nl*5)D%GO~SBr01vY&N_s@Qkd zIm9DE#wd{c*Yu)Z&`=RI5B4gYCa>uI>5o;ZA_gHZqmpe`tkFvTrBv_w7NC;qY=p`T zd&XzP{F?^<(lRL>TiNczip6cy(35Wl>Txy{g^|Rzhzkvk+n4`yQfPY)2+~y|T*Y}V z6qEMMenR=7gHV+}jwysdtcg=RhlJAt=y!U~mmoek$cqHM_m#&J@l=sTm^mg+06Obm zlit;e>O#QnMFU^>llnWP_hK7pEQs=77cz`H80-@}aI}75FJpbH?HW&%Y7vQW1>WA# z5IcHF4?s=Hdl5=3_jBcfWBNmDOtXBhkEca#rtDZx5ZnkmG22n(Hoo&(*l}c@Y~2 z+YD+BS>E5C5K?A?PYj^wZc*^Cg?G@kWoJR`YDbdL)+j$D2xV7pVrHT9Z$rLB7NP*ZXCayWR zD~yJ>0&LK%kk(!1Y`0Ct#krC4GlHXre+!WAC&9Ce{Uh)^kVIGfl?|J*h^wbk6*GHO zeKbhRN4vGx^?~_q$)y3hY6n;-mWO^5G5Y$Ig^_#c=Qg$NpJXW79j88fb$!Ws;>Wom zmz}p9ZcY`3+hdtC*3t&V)Pjp&QpGVT{t!cu(CGRV(@m}hN2DP%=|qP zpEHRJ!wNyOB#f~B947pXr_C0{lV?-TIK=nofM{s?d1@r8T^&W{*F5 zTi9DjpO%6MFZ#Cd!<=jQ?k)rPR3MiV;1x=;LL&y8W*zi({|M`JOJ2YOBGd(73$nEW!Q3(HU zX1PxhlxA6A(IOSv1P2!As2sJJxJ=Ld5Fw`QDR_9xaPV-ZRX8&v7W^_AjSDj{Ccg^xte?jXdJ$|t*7%&By+?qZmVT5dijz+b>$0CPJ==(& z%Vkk)q?_RPv zfe-48U{j=ltm+0U`x`6x07F95pQ5hHu3!bBX0jkPy4{<~uiaTzGAq-S6Hut{iW&yK z>r4#aA4=d1dyDcXhAEXG32}{phS>_1z`8F1_mvpxVWkBkz3iBV5dbNWL~XP;adyLA z{6Xv4^(7y|wV91vT9^~h3-Fh7PB~Lv*&Rmq^7+H!%QRJ&ghf>qW8tg=rJJqZ2uhtR z0dA`+Q2+Z0(9?DNb+tE0BklS6;WIZ*@!frpo|@WovmVjY^|CG;%fqNruUcQ2RWC|Y zP>Hz&AK2`-tN!Vw3frse+o^sSG#+~DK|C-1+gvNYPVgqgsLbP`1=Ly{^uA&uZsm8it{(e9jb!<*M+-(9GqprT6P~2;nZcfw00lCVvH} z!IXla((<<+*tSWEjAFO^!yA8<5Sn*P7-k$mwOP~BkpLs)QaY|iJ+vnBJrUSc@ zAfjZNB0F`Ml*{=T%8tv4ps){3dVYU#!4qzO0!s$$kW@jL&E^lV;WmZvT~T5e$2?NS zO;#J7CfQheh=MgT?t8S;({8>tE_A*cFH)UgY0@t#OkN{TJ@RD~JUrZWJgFE-NU2a~ zxEI*}8>;D#kzjV45~%%@R-+Pi<`8=%-YRk0*x3ctz&;o)u2^j7q@}pv-4?%&_e=Pn z?(bZF&aVUI>W{hDii_lw$+JmN9Fk}*)gle*i&RZI_!t|zZL8QVI>rc(#q_H^+osUX zL~i>b*umcQ(r@+-!YM-SZO`!{;h#vn+MZ0P)Qoh7sYtfQJ-taAGEH+Vry*8$9mgS; zu1`_6O;S{sr&-@2b|=%Y%uwkRH=n%Or!utk#m?K=NvnV6T5r7=~M znq)Rj1g{DI4wq3_w@eL=8}zKxbtc5Lgd3Tm`ZKL8K3&{1=s#@HyhB)=Xq3w;MX@@l zciikmi}iN+v0>MMuhs_m+`fWSKlbFGefCi(rgPe)rTrU%4|jvES5jy@PLH^&du}Oey1E<7Y-mu^ zQv#`w?E9ZU)~)iis2S;euK3;&o4WkC=`Z1Hh>a7bP&5I%6FGHun$?d#>Sylz&6$l0 zm*9Sw>z6T>qBRn&E_EJR@(wSrT#q+98qc@+HXY>=Q2aztDyAtN6#*mFOD4tQfUPd0 zv3zknMvr-SFKuR@{lS~L8st)l2zrhI^i8X0oW}|L5enSz{7kzp>G4RPy!--@+4$+# zu||iqWUbNWsE(U@f=T_GLGc)Fv#Xp2txTL>9K-5HujAXV&;0I>KO%u%V_zB;wDQ>bkz9Ch|W$!qC$=qps?~Lzz5vfETi+^d9Nc4o{k7j(iyYxFdhQF6z2v)NK_p zwt2_YQtou;6BXCcYSkCi0eE+qLM&U`Z2@|-Olef>;3UB^mWL6CBYzJHnO)Oj@+zjG z^sOQeOOu2&;KwM!7ZDoTnnfd1e-z+umgn4HfudbzbQN3a=yh78;z=xQ%_iE|041AT z9#vaT6hBQR*e1uRXjKM?w+^>$hj(RpPDO|v3?V{n$=&bUp;sRRJ{@woOva&? zcbszWw6L)7&MuF9@9Z(`f74Zt=Dz9!$3@R+-{1z$NOvyKqK{P4O1A3)=0oiS*q=@q;MoLEVMC*N|xbVk!DSGUBtl7mEJz*7D2}o6V&$S2Q1D3AIGpwr^bwiiZk!TFkg6a(9Z6!t*f* zgY1i9_7r<8v3KOKK|DBcR;7R^mmhD4;-;qSLg#hq*Vd8yQD@94)LD$Arphn}q-0VK zZK+2TRgs8|3?k{-oj}XV;)+SYmj>mpH|K_)Qx3N@RB_5sx6{|;mzuIxXRr4$pehPZ` z_V-KVbAvx9H8NScsd9)n5xcE6S^P9ZLIrvZtaHX07xw|nZ=yWk<)|uo-dFbo3oI)K zn6k5j+iY=M?_LJm?vA=99}P~JeLqPoQmC6`BTk+6vIZsFuE(4ayZ6t5&R~KI=%IR% zVta5IW$|j}0So9G8E;HlN1~y9x*SqYrZ9LqT5z0oN75`;`Z{7-Kf1lb7jsozroLtj zpn`iY-~^DeH!cSUVoCuZO%_NX(|~inOsO2NqmkU7fL03h?hIS&V{3LHb10lkRRal! zO>OcOp0C3phQI$dF!XP??v+(DJOo5wRKUUeAJg|&aAN#^wd`rw)XwCgE$$GlB|ea- z?WxVTgX3+F53El&>Y0{YwtTOO^DpkKhyt==K~bSFkSrj<18Kr_s5gG9s};BBM~YL_ z`gpc*yP{6ySMQ@mWq!WqhANKL0X8Rc&SD)|G-7|XRFMvKrZpLD@jri#R~@qd4M$;Z z%&%t{Dl0u%hwsCB7jS6g`RP@lLcDXveqAujTQwz8ou3EZP@q@x7NL!n?=ZVbs%lrC z?uiSUGyd+vNtSX5q5~N>=cdhid{^hJQBWVE?m$O^y!I|x)q&%M0d7=F;Kg6nghDle zz%D=4iNNy^16Om+b~!rry5{7@4Qa+MPeB?c^`roi04*9CrSdT;UU9bKFS|!#!3puC!9E*v0*9@la|z6w4p$hD^&Qq9?XfPNUEG{omb?CZsWWb|v^bqC zzEe48-IgDYz1eL&h@*^c*%1$vL^Y~+Yj!A24ypZNSq2UR@-r$CrvS|e6G!_^c*u(m=U!O`! z8wGN(1BVKphCm;aHN84B#Ry?d5JW*DLBx`uj7x~I>$Wslx*y|pRVGq6t9sCf z?jx!y!CM|y;0datb4Z4)H^Ijg1w ze=zGVv)O~G(fRv`03M>4u7JQ4j4)?vZLpH<)_T(att`=iG;x6uR!LmVM|nrb3I>?^&e}iUvy{HnNhx&Ebyx$hTl_@=uFQoDq&Gvd z=x!_|zx(P=;Fom6-om(zf@xTc)Ak@e_ zbR8)gHC3*ygvtIokrXz~wRw2bi=T);HEe6@gA?AsD8jzx@d(PqpjHDFseEgKPf+V2 zSn%~HCxw4PUH(bl6_z(FRcbW2qh8s{;lv12c&;a3;@$7FXcKxfwK+0}a5O^p%x{Du zMd{wGTMyaSx@`p=>NsP2Ns+@sc(Og4_MmazZrZ58sK`~OR8r7938l@A5e-s&WUQkI zD>^4X!B>mI+S31y`QK}zJ-8@CR7*rmRMdkjRSY$Kz-i&mO}Zw3I2&@6$V;V9MJI9k zs0;q@S1wzs7}q~2Jb1gFc;Y;&gxVq!=%4bPLJAch<7GVYm|0&DUV86<^@M7qj!_qY zhJ-qJ2gb~*Yd@>Hj{BsdIOr+dPT|-dTYE7+^<`DHAE}Re#&?b(y0_5IS<#4SyNQc{ zM4(12pT;j0zO8|Wa=+gjXjU&+r45T7G=W_-dKq2+7OkpzzAG2x2J^5si&I2-=UZ9t zOrn_v`Gk~Q*VXt%tQRramo5GKr`C7e(Q&*X@n&&9~nz;Tw#gOrMAd&a}Iy z8Xa;upJCyv8gdvV779n(22sH)(^XMbK998G$FV^6)PIW{`V}G5IE-FtuElpLQ&l*5 zB7p{0m@p+u`g}S4=`me@k+J~7F<2Jz80pznmL*@>Y+m{RllQqECxERR2ys_Hbs_z9 z{P$n^>EPZ~W~Vw!x)O$BDL=o}tEjc8t(ut3Cd|Krq_|hzp?j`m2~9mT?MIp0n2w?3*Oi~DEuOn!Ozu-?Ua2pQfBI1y zYkATLs7#Q1(_9h=m2d7nZBFjKGWC^D>X_y@Y{mKOe%fc3Yn36CCibz|80gM?WkTRW z3?14SRkUgl8sk{iIE%uUPgDS1jhea1m4K>O`8FJRb{R!p8x1H;6?a{8ct5Z1JQ=v= zuUzeDWLZ@mCAEMP*rZKNBLOcz^u8aho{OR88jKt!ZPKi7Tx@Y%lV*0ydKx&VPv>>| z(>`J_o?#V1J2)e1Vzn061bFQH5pMmu=C;1Am`RD$eRZaEU)ND~6*q(m2Hp>xD~XKe z`$jfp&7>`<7~q}I!DP4zvlVE!ZXk1_xk;Ae=2r8B#dr(|*vCjYVsG@o2s&p^uq z#|j(UEC~3hcqFIFgT$C(tAwIxC=`+IqdEadq6}v{Jy{I=qL~2rvlM3&OUbE<&zGwR z{?^1UYjln2`WhzKdCJ@oqgz4T?qP=lmdfa$3kTBv7i%vwK8o1YvbelhMT8auWYOl; zq%&E|xF5oOiUz9CMLdG*vzYDnb^4l`%A^Gu^w6{w*~z=K8|AWZZH+Xr+P}H+qJirS7juDZ|#LggB@Tj0Ib9^df`E$PU>gh%#@MJb}7E!s_uy`;~l^0`ZMYq$6Mn~lyx1;a-U z)*^kF5g}#49F{uc+L%;7sWE)HeP7!u_0AV_*Pks7a+zF)AJR4Swqxu`9PuGyVXY)W z)R3x{C&}ZxkfE!K%Mdqai+gtNc{MDnkuJ^1B0^XLgkt+Z=kdfa^0nMnZDGDSiCE!x zeGnIJKWla$cSjrC!?s|gYCNNOvbL%NsS*7W;Za|oThF+k+axL`_DJ}ym-;w?y~C7+ z(fK&qJzm{5EqKkD>kIsoMEWYURJo{nvj&J2Tuk)?Y>C?ezbDG%x`__au~=o})9SXG zF|vHO+j2jZ)ZJ>pRKKb1$Vi>*m}clT@wk1o{)ktAa)(tB6Z5cAfXXy`{a0%7ZA1lCW zIX$Iy-L$2iDAS`!=WFY2p`6J|G0izIPi9-~h7W3)xT{?+KN+K$CMZ-jvSA$Ieg1$o zd^gozUw0cFS2@1l!qTY>h3dSCQ|cPWd3x3XGz}*i5Ybroq0 zuI|ehEzM2r!63*Egs{koKOeWJG?H&7UqL2a74hVZ5);Uf&AtCfpUd&X;z&+nM*)EkrhdxARv7g^yAV|H!83BQ5-DnO}^YP?J+)0PE}H5lnu==6A!qLwY-XEPFhkGV`oav)`-`!> zeE{@!sdJ&Mq3>N1mDhFGh}yrAi}w3z^NmI|hXUf+-B~8l4tQCb`ohBq$k32bu+X6N zdu(AT7x|xBlhT`zGG-9)F%Eemgrq37G(oC5HkrY);8U<R;MUSVHiFd!NnC= z#EHJ-RMNA&7fH&6Kj^oV3?`t5f>C2J3VeTvrtha9AyE{NLh_Qb;)S+}pLMP({FnOk zCy6!-_k6{-g9scR2MR1NXe&&GfQLyg)34o*E#KMj)Oq0V_SAKRF)#EZ$YvCgX9{DQ zW8a1<={CwLGnULhb=H$iJZmByt_IoC!lkt5@@`EG{%!l1b4vN?e{lWB9SZ%s5Vrp{FHcK z%|-hxRC+20lpMKn{B8*eD*uK^DQ#S$Nn{d~XNjPS$U(7TvkuoMu)Ia3h%ZQx)d7lJ zX_Z4%z@&h1*PTk%R7E^Q+DG`8(vTG7foU73QgK;$25XE*%DAj-2jf|Wf;{(V7O`gP z!Ws1m6cHK{b9#|~K(QYn-pKbG$ZQpP(B3 z8#GaYKm`N>Dr#cHV5xXD$i^Isg>6CQKZvao?QV~5c)y2&?IlqhU9rUo_v%S5cDll^v-9}IQ*-_LcJdL+TO;F4#6UZIwzvJSB#Xn4}FpFWYdc6O;!LMD@|2^P;P4xexUbHhD(*Xno!YC;s msPext@xN)~|J%&!{|ynWwP6|DEzk+{vq_4|iBt<21pGf|_0EC- literal 0 HcmV?d00001 diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c07441dc85783bb0219f416cb54f81c7747ef6e1 GIT binary patch literal 1539 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WSkfJR9T^xl_H+M9WCckkdj$D1 zFjT2AFf_CF#;h&dnN-5n9aZdGzkcp7ce4Z7cjwP6&5ff*dT@bqJ7>nFff^9hD4M^`1)8S z=jZArrsOB3>Q&?xfD|y;R9FF-xv3?I3Kh9IdBs*0wn|_XRzNmLSYJs2tfVB{Rw=?a zK*2e`C{@8s&p^*W$&O1wLBXadCCw_x#SN+*$g@?-C@Cqh($_C9FV`zK*2^zS*Eh7Z zwA42+(l;{F1**_3uFNY*tkBIXR)!b?Gsh*hIJqdZpd>RtPXT0ZVp4u-iLH_n$Rap^ zxHGjP6Jb+cG1OZ?59)(t^bPe4^s#9x$xOqc4I~562KE=kIvbE-Rsoq6sX37@nYpQX z#XzUo85$Uw*nsW9kV3c=Noxddtw>VnTAlNA@{58C5|dNy4579m2_dNlx!lUXC^Hop zsGy(&DaR0ls<+Vxg)34xLn09@3XDZNE*pJ#im>ByWq6zlOh2DIT^vI^c$5G9|8LK% z%P6eN%RbXKi}9d<+%Lx?P8a%TaM{)T*^~0NuYdl&mS0vYHBTpNIfyBmb=3X;$9wVH zpQp1|oY@upeBHjv?}i%}JbiYz{lu}vL}p_t!-S{DZ2RZ!srdP8ZFEJP^Ld$$X_t<9 zo~B>LiYzlZvh=-u-NVOEk3Gs#Q9LBJVS_=n zMMTDm6ZSQ~J{|ABpT;(;?&H(z`FH1=q(6O}uD`hH&P1QXhg7sC{Wmt6vgK^ywkv&fH#_jfN_9}qlY&c#SIC6$JwAwcu&Dt`Y#5_9^BsE|^Ve%$_kt^zO4?>~Njf8Tuk z{8Z7D57{jzgtjrPc=vI0czB*|z{Kf6p(>{WQo1`gF+?)2%z5)O;rPB}etG-tTMe!R zg)`0i@$2pH-rM{fTpxb!xVdTb#)UUOKDc-}|9*YOO6|p+&O2`C-YEVsW#YVFbCyc~ zv3>L2wn9luspRFYT)wihFtN0R#O3RB>R;beE>6DdKY#zdo&RS{Zhrgm@^t<9{ly#1 z5>s6I%if6nN&m4w_k5ss@ZO`Vw{w2{%+$?d7G@SFx9)Rz-p7xhWNd3+{_GCdkKgZ%&4|I_^@i6`H~IbxTOYGpQFV3=NGpZrb3{+5IAW z<&8+G!h(Vq8Cv^m|9i%SctlLl*Sqrh;p6lhn^~{b{CIv|eu2dXK89r{fX-vM8NZL| z^uqZLY!^fnIM?L<`}_O*=jZF!-{0pf^8eRgX$__+PRu6$t~Z)Fva1yQ3$8FVJv95$ a%)xL~{6`U^o1QeNjP!K%b6Mw<&;$UH31E}} literal 0 HcmV?d00001 diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bfe24b3ce097fea20fe86b0e380cc97184c5fad3 GIT binary patch literal 2932 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 literal 0 HcmV?d00001 diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4e0f459dc46102b315938166fa4f632e1bb985 GIT binary patch literal 66930 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�?@$ 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 literal 0 HcmV?d00001 diff --git a/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/apps/rebreak-binder-mac/Sources/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9b4d7130b57f40e74be8546aadb57ff59d11e2 GIT binary patch literal 222924 zcmeFZXIN8P*ESl81rSl1(h=!ZsnVPD-n&8R9f1&fQGpFg?;uTj2}th*QKZ)Zp@ks5 zgLDWXC%E_XzRz{O^Zh!1H(Xq-wPv4d%rWk9kC8-bYbp^FQWF9I0Ady8m%0D|KK2qH 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 String { + value + .trimmingCharacters(in: .whitespacesAndNewlines) + .trimmingCharacters(in: CharacterSet(charactersIn: "\"'")) + } + /// Parse ` Key = Value` (cloud-config Format). private static func parseEquals(line: String, key: String) -> String? { let trimmed = line.trimmingCharacters(in: .whitespaces) @@ -157,4 +185,65 @@ enum DeviceDetector { return trimmed.split(whereSeparator: { $0 == "\t" || $0 == " " }).first.map(String.init) } } + + /// Versucht ein .mobileconfig direkt auf ein per USB verbundenes iPhone zu + /// installieren. Nutzt cfgutil und ist damit ohne AirDrop-Dialog möglich, + /// sofern Device trusted/entsperrt ist. + static func installProfileSilently(path: String) async throws { + guard let cfgutil = Paths.cfgutilPath else { + throw DetectorError.cfgutilMissing + } + let r = try await ProcessRunner.run(cfgutil, arguments: ["--foreach", "install-profile", path]) + if r.exitCode != 0 { + let err = r.stderr.isEmpty ? r.stdout : r.stderr + if err.localizedCaseInsensitiveContains("device is locked") { + throw DetectorError.deviceLocked + } + if err.localizedCaseInsensitiveContains("benutzerinteraktion") + || err.localizedCaseInsensitiveContains("user interaction") + || err.contains("MCInstallationErrorDomain Code: 4009") { + throw DetectorError.profileUserInteractionRequired + } + if err.contains("DMCInstallationErrorDomain") && err.contains("Code: 4020") { + throw DetectorError.profileInstallRequiresManagementTool + } + throw DetectorError.parseError(err.trimmingCharacters(in: .whitespacesAndNewlines)) + } + } + + /// Entfernt eine App per Bundle-ID via cfgutil (USB). + static func removeApp(bundleID: String) async throws { + guard let cfgutil = Paths.cfgutilPath else { + throw DetectorError.cfgutilMissing + } + let r = try await ProcessRunner.run(cfgutil, arguments: ["--foreach", "remove-app", bundleID]) + if r.exitCode != 0 { + let err = r.stderr.isEmpty ? r.stdout : r.stderr + throw DetectorError.parseError(err.trimmingCharacters(in: .whitespacesAndNewlines)) + } + } + + /// Entfernt alle per Identifier angegebenen Profile via cfgutil. + /// Wird für interne Test-Resets genutzt. + static func removeProfiles(identifiers: [String]) async throws { + guard let cfgutil = Paths.cfgutilPath else { + throw DetectorError.cfgutilMissing + } + for identifier in identifiers { + let r = try await ProcessRunner.run(cfgutil, arguments: ["--foreach", "remove-profile", identifier]) + if r.exitCode != 0 { + let err = r.stderr.isEmpty ? r.stdout : r.stderr + throw DetectorError.parseError(err.trimmingCharacters(in: .whitespacesAndNewlines)) + } + } + } + + /// Internal QA helper: entfernt alle Profile mit `org.rebreak.` Prefix. + /// Returnt die tatsächlich angezielten Profil-IDs. + static func removeAllReBreakProfiles() async throws -> [String] { + let profileIDs = await installedProfileIDs().filter { $0.hasPrefix("org.rebreak.") } + guard !profileIDs.isEmpty else { return [] } + try await removeProfiles(identifiers: profileIDs) + return profileIDs + } } diff --git a/apps/rebreak-binder-mac/Sources/Services/SuperviseRunner.swift b/apps/rebreak-binder-mac/Sources/Services/SuperviseRunner.swift index ecf3979..1cf8299 100644 --- a/apps/rebreak-binder-mac/Sources/Services/SuperviseRunner.swift +++ b/apps/rebreak-binder-mac/Sources/Services/SuperviseRunner.swift @@ -34,13 +34,14 @@ enum SuperviseRunner { static func supervise( organizationName: String = "ReBreak", force: Bool = true, + verbose: Bool = false, onLine: @escaping (String) -> Void ) async throws -> ProcessRunner.Result { guard let bin = Paths.firstExecutable(in: Paths.superviseMagicCandidates) else { throw RunnerError.binaryMissing } // -yes ist Pflicht: ohne TTY-Pipe hängt der Bestätigungs-Prompt sonst endlos. - var args: [String] = ["-v", "-yes"] + var args: [String] = verbose ? ["-v", "-yes"] : ["-yes"] if force { args.append("-force") } args.append(contentsOf: ["-org", organizationName, "supervise"]) let result = try await ProcessRunner.stream(bin, arguments: args, onLine: onLine) diff --git a/apps/rebreak-binder-mac/Sources/Views/ConfigureView.swift b/apps/rebreak-binder-mac/Sources/Views/ConfigureView.swift index 2ded2f8..b76588c 100644 --- a/apps/rebreak-binder-mac/Sources/Views/ConfigureView.swift +++ b/apps/rebreak-binder-mac/Sources/Views/ConfigureView.swift @@ -4,21 +4,59 @@ struct ConfigureView: View { @Environment(WizardModel.self) private var model @State private var task: Task? + @State private var needsPushRetry = false + @State private var lockProfileConfirmed = false + @State private var configureReady = false + @State private var appPushDone = false + @State private var backendValidationDone = false + @State private var didAutoFinish = false + + private let sideloadProfileID = "org.rebreak.protection.contentfilter.sideload" var body: some View { VStack(alignment: .leading, spacing: 16) { header - Text("Wizard pusht 2 MDM-Commands (silent über APNs): App wird **managed**, NEFilter-Mode aktiviert. Danach Sideload des Lock-Profils per AirDrop (User-Tap am iPhone).") + Text("Wir richten den Schutz jetzt automatisch ein: App-Setup per Push und anschließend Lock-Profil (non-removable) mit automatischer Prüfung.") .foregroundStyle(.secondary) + TransferAnimationView( + leftSymbol: "server.rack", + rightSymbol: "iphone.gen3", + title: "App-Setup", + subtitle: appPushDone + ? "ReBreak-App Push/Management bestätigt." + : "ReBreak-Server pusht App-Setup auf das iPhone.", + isActive: model.configureRunning && !appPushDone, + isDone: appPushDone + ) + + TransferAnimationView( + leftSymbol: "iphone.gen3", + rightSymbol: "server.rack", + title: "Lock + DNS Validierung", + subtitle: backendValidationDone + ? "Lock-Profil aktiv und Backend-Check-In ist frisch." + : "Warte auf Lock-Profil und anschließende Backend-Bestätigung.", + isActive: model.configureRunning && appPushDone && !backendValidationDone, + isDone: backendValidationDone + ) + stepList appPreStatus statusBox - logViewer + if model.showAdvancedLogs { + logViewer + } + + Button(model.showAdvancedLogs ? "Details ausblenden" : "Details anzeigen") { + model.showAdvancedLogs.toggle() + } + .buttonStyle(.borderless) + .foregroundStyle(.secondary) Spacer() @@ -41,11 +79,10 @@ struct ConfigureView: View { private var stepList: some View { VStack(alignment: .leading, spacing: 6) { - Label("Pre-Check: ist ReBreak-App auf iPhone? Managed?", systemImage: "magnifyingglass") - Label("Mode-Auswahl: Take-Management (TF-installiert) ODER Install-Push (Ad-Hoc-IPA via Manifest)", systemImage: "arrow.triangle.branch") - Label("Settings mdmSupervised=true (NEFilter-Mode)", systemImage: "shield") - Label("Post-Check: ManagedApplicationList Query — managed verified?", systemImage: "checkmark.seal") - Label("Sideload Lock-Profile per AirDrop", systemImage: "paperplane") + Label("Automatischer Pre-Check", systemImage: "magnifyingglass") + Label("App-Setup + Managed-Status per Push", systemImage: "arrow.triangle.branch") + Label("Lock-Profil (non-removable) anwenden", systemImage: "paperplane") + Label("Automatische Verifikation", systemImage: "checkmark.seal") } .font(.callout) .foregroundStyle(.secondary) @@ -56,14 +93,14 @@ struct ConfigureView: View { let installed = model.device?.installedAppBundleIDs.contains("org.rebreak.app") == true return HStack(spacing: 8) { Image(systemName: installed ? "checkmark.circle.fill" : "xmark.circle") - .foregroundStyle(installed ? .green : .orange) + .foregroundStyle(installed ? .green : .secondary) Text(installed - ? "ReBreak-App ist installiert (cfgutil) — Mode: Take-Management" - : "ReBreak-App NICHT installiert — Mode: Install-Push (Manifest)") + ? "ReBreak-App ist bereits installiert. Wir setzen jetzt den Managed-Status." + : "ReBreak-App noch nicht lokal sichtbar. Wir installieren sie jetzt automatisch per Push.") .font(.callout) } .padding(8) - .background((installed ? Color.green : Color.orange).opacity(0.08)) + .background((installed ? Color.green : Color.blue).opacity(0.08)) .cornerRadius(6) } @@ -72,7 +109,7 @@ struct ConfigureView: View { if model.configureRunning { HStack(spacing: 8) { ProgressView().controlSize(.small) - Text("Sende Commands an NanoMDM …") + Text("Automatischer Schutz-Flow läuft …") } .padding(10) .background(Color.blue.opacity(0.08)) @@ -88,7 +125,7 @@ struct ConfigureView: View { } else if !model.configureLog.isEmpty { HStack { Image(systemName: "checkmark.circle.fill").foregroundStyle(.green) - Text("3 Commands erfolgreich enqueued. iPhone empfängt via APNs (~5–30 Sekunden).") + Text("Schutz vollständig validiert. Du kannst abschließen.") } .padding(10) .background(Color.green.opacity(0.08)) @@ -125,23 +162,17 @@ struct ConfigureView: View { .buttonStyle(.bordered) .disabled(model.configureRunning) Spacer() - if let path = sideloadProfilePath, !model.configureRunning, model.configureError == nil, !model.configureLog.isEmpty { - Button("Lock-Profile per AirDrop senden") { - sendViaAirDrop(path: path) - } - .buttonStyle(.borderedProminent) - Button("…im Finder zeigen") { - NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: path)]) - } - .buttonStyle(.bordered) + if configureReady { + Text("Schutz bestätigt. Abschluss wird automatisch geöffnet …") + .font(.callout) + .foregroundStyle(.secondary) + Button("Jetzt zu Fertig") { model.advance() } + .buttonStyle(.borderedProminent) + } else { + Text("Bitte kurz warten …") + .font(.callout) + .foregroundStyle(.secondary) } - if model.configureError != nil { - Button("Neu versuchen") { startConfigure() } - .buttonStyle(.bordered) - } - Button("Schutz ist aktiv → Fertig") { model.advance() } - .buttonStyle(.borderedProminent) - .disabled(model.configureRunning || model.configureLog.isEmpty || model.configureError != nil) } } @@ -186,6 +217,12 @@ struct ConfigureView: View { model.configureLog = [] model.configureError = nil model.configureRunning = true + needsPushRetry = false + lockProfileConfirmed = false + configureReady = false + appPushDone = false + backendValidationDone = false + didAutoFinish = false task?.cancel() task = Task { @MainActor in do { @@ -217,71 +254,116 @@ struct ConfigureView: View { // bleibt nach Ack auf true — daher zählen wir command_results. let pushStartTime = Date() - // Mode-Auswahl: wenn App schon installed → Take-Management, - // sonst → Install-Push via Manifest. - let appAlreadyInstalled = model.device?.installedAppBundleIDs.contains("org.rebreak.app") == true - let modeLabel = appAlreadyInstalled - ? "Take-Management (App schon installiert, nur managed-state setzen)" - : "Install-Push via Manifest (App nicht installiert, Ad-Hoc-IPA pushen)" - model.configureLog.append("→ Mode: \(modeLabel)") - - model.configureLog.append("→ [1/2] MDM-Push InstallApplication …") - let r1: String + // Harte Variante fuer robuste Tests: + // Wenn ReBreak-App schon da ist, zuerst löschen und dann frisch pushen. + let appAlreadyInstalled = await DeviceDetector.installedAppBundleIDs().contains("org.rebreak.app") if appAlreadyInstalled { - r1 = try await MDMClient.takeManagement(udid: udid) + model.configureLog.append("→ Hard-Reinstall: vorhandene ReBreak-App wird entfernt …") + try await DeviceDetector.removeApp(bundleID: "org.rebreak.app") + let removed = await waitForAppInstalled(expectedInstalled: false) + if !removed { + throw NSError(domain: "Binder", code: 7, userInfo: [NSLocalizedDescriptionKey: + "Vorhandene ReBreak-App konnte nicht sicher entfernt werden."]) + } + model.configureLog.append("✓ Vorhandene ReBreak-App entfernt.") } else { - r1 = try await MDMClient.installApp(udid: udid) + model.configureLog.append("→ ReBreak-App nicht vorhanden, starte frischen Install-Push.") } - model.configureLog.append("✓ enqueued: \(r1.prefix(80))") - model.configureLog.append("→ [2/2] MDM-Push Settings mdmSupervised=true …") - let r2 = try await MDMClient.setSupervisedMode(udid: udid) - model.configureLog.append("✓ enqueued: \(r2.prefix(80))") + for attempt in 1...2 { + model.configureLog.append("→ [1/2] Push-Versuch \(attempt): InstallApplication …") + let r1 = try await MDMClient.installApp(udid: udid) + model.configureLog.append("✓ enqueued: \(r1.prefix(80))") - model.configureLog.append("") - model.configureLog.append("Beide MDM-Pushes enqueued. Warte 30s und re-check ob iPhone sie acked …") + model.configureLog.append("→ [2/2] Push-Versuch \(attempt): Settings mdmSupervised=true …") + let r2 = try await MDMClient.setSupervisedMode(udid: udid) + model.configureLog.append("✓ enqueued: \(r2.prefix(80))") + + model.configureLog.append("") + model.configureLog.append("Warte 30s und prüfe automatische Rückmeldung …") + + // POST-FLIGHT: 30s warten + checken ob neue Acks NACH pushStartTime da sind + try? await Task.sleep(for: .seconds(30)) + let after = try await MDMStatus.query(udid: udid) + let lastAckAfter = after.lastAckAt + let hasNewAck = (lastAckAfter ?? .distantPast) > pushStartTime + if !hasNewAck { + needsPushRetry = true + model.configureLog.append("⚠ Kein neuer Ack erkannt (Versuch \(attempt)).") + if attempt == 2 { + throw NSError(domain: "Binder", code: 2, userInfo: [NSLocalizedDescriptionKey: + "iPhone hat keine Pushes abgeholt. Bitte Enrollment-Verbindung prüfen."]) + } + continue + } - // POST-FLIGHT: 30s warten + checken ob neue Acks NACH pushStartTime da sind - try? await Task.sleep(for: .seconds(30)) - let after = try await MDMStatus.query(udid: udid) - let lastAckAfter = after.lastAckAt - let hasNewAck = (lastAckAfter ?? .distantPast) > pushStartTime - if hasNewAck { model.configureLog.append("✓ iPhone hat ge-acked (\(lastAckAfter!.formatted(date: .omitted, time: .standard))).") - // Post-Check 1: cfgutil refresh — ist App jetzt installiert? let appsAfter = await DeviceDetector.installedAppBundleIDs() let isAppInstalled = appsAfter.contains("org.rebreak.app") model.configureLog.append(isAppInstalled - ? "✓ ReBreak-App jetzt auf iPhone (cfgutil)." - : "⚠ ReBreak-App noch nicht auf iPhone — iPhone lädt evtl. noch (IPA = 19.6MB).") + ? "✓ ReBreak-App ist auf dem iPhone." + : "⚠ ReBreak-App noch nicht sichtbar (Versuch \(attempt)).") - // Post-Check 2: ManagedApplicationList-Query — ist App managed? - model.configureLog.append("→ Post-Check: ManagedApplicationList query …") - do { - if let isManaged = try await MDMClient.checkAppIsManaged(udid: udid) { - model.configureLog.append(isManaged - ? "✓ ReBreak ist MANAGED. App nicht löschbar durch User." - : "⚠ ReBreak ist installiert aber NICHT managed.") - model.device?.isManaged = isManaged - } else { - model.configureLog.append("⚠ iPhone hat Managed-Query nicht (rechtzeitig) ge-acked.") - } - } catch { - model.configureLog.append("⚠ Post-Check fehlgeschlagen: \(error.localizedDescription)") + model.configureLog.append("→ Verifiziere Managed-Status …") + let managed = try await MDMClient.checkAppIsManaged(udid: udid) + if isAppInstalled, managed == true { + model.device?.isManaged = true + needsPushRetry = false + appPushDone = true + break } - } else { - model.configureLog.append("✗ Kein neuer Ack nach 30s. Push-Zeitstempel: \(pushStartTime.formatted(date: .omitted, time: .standard)), letzter Ack: \(lastAckAfter?.formatted(date: .omitted, time: .standard) ?? "nie").") - throw NSError(domain: "Binder", code: 2, userInfo: [NSLocalizedDescriptionKey: - "iPhone hat 30s lang keine MDM-Commands abgeholt — MDM-Channel tot. Step 4 wiederholen."]) + needsPushRetry = true + if attempt == 2 { + throw NSError(domain: "Binder", code: 3, userInfo: [NSLocalizedDescriptionKey: + "App-Setup konnte nicht stabil verifiziert werden. Bitte Schritt erneut starten."]) + } + model.configureLog.append("⚠ Automatischer Retry läuft …") } model.configureLog.append("") - model.configureLog.append("→ Sideload-Step: Lock-Profile per AirDrop ans iPhone schicken …") - model.configureLog.append(" Datei: \(sideloadProfilePath ?? "(nicht gefunden)")") - model.configureLog.append(" Am iPhone: Profil-Dialog akzeptieren → Settings → Profil installieren") - model.device?.isFilterActive = true // wird's nach sideload sein + model.configureLog.append("→ [3/3] Installiere non-removable Lock-Profil …") + guard let profilePath = sideloadProfilePath else { + throw NSError(domain: "Binder", code: 4, userInfo: [NSLocalizedDescriptionKey: + "Lock-Profil-Datei nicht gefunden."]) + } + do { + try await DeviceDetector.installProfileSilently(path: profilePath) + model.configureLog.append("✓ Lock-Profil via USB installiert.") + } catch { + // Falls cfgutil zwar Fehler liefert, das Profil aber dennoch + // bereits installiert wurde, kein AirDrop mehr öffnen. + let alreadyInstalled = await waitForLockProfileInstalled(maxChecks: 4, intervalSeconds: 2) + if alreadyInstalled { + model.configureLog.append("✓ Lock-Profil wurde trotz USB-Fehler erkannt. Kein AirDrop nötig.") + } else { + model.configureLog.append("⚠ USB-Install nicht möglich: \(error.localizedDescription)") + model.configureLog.append("→ Öffne AirDrop-Fallback für das Lock-Profil …") + sendViaAirDrop(path: profilePath) + } + } + + let lockInstalled = await waitForLockProfileInstalled() + if !lockInstalled { + throw NSError(domain: "Binder", code: 5, userInfo: [NSLocalizedDescriptionKey: + "Lock-Profil wurde noch nicht erkannt. Bitte iPhone-Dialog abschließen."]) + } + lockProfileConfirmed = true + model.device?.isFilterActive = true + + model.configureLog.append("→ Validiere frischen Backend-Check-In …") + let backendOk = await waitForFreshBackendStatus(udid: udid) + if !backendOk { + throw NSError(domain: "Binder", code: 6, userInfo: [NSLocalizedDescriptionKey: + "Backend-Bestätigung für aktiven Schutz fehlt noch. Bitte kurz warten und erneut versuchen."]) + } + backendValidationDone = true + + configureReady = true + model.configureLog.append("✓ Lock-Profil ist aktiv erkannt.") + model.configureLog.append("✓ Backend-Status bestätigt aktiven Schutz.") model.configureRunning = false + triggerAutomaticFinish() } catch { model.configureLog.append("✗ Fehler: \(error.localizedDescription)") model.configureError = error.localizedDescription @@ -289,4 +371,49 @@ struct ConfigureView: View { } } } + + private func waitForLockProfileInstalled(maxChecks: Int = 40, intervalSeconds: UInt64 = 3) async -> Bool { + for _ in 0.. Bool { + for _ in 0..<20 { + let installed = await DeviceDetector.installedAppBundleIDs().contains("org.rebreak.app") + if installed == expectedInstalled { + return true + } + try? await Task.sleep(for: .seconds(2)) + } + return false + } + + private func waitForFreshBackendStatus(udid: String) async -> Bool { + for _ in 0..<30 { + if let status = try? await MDMStatus.query(udid: udid) { + model.device?.enrollmentStatus = status + if status.isEnrolled && status.isFresh { + return true + } + } + try? await Task.sleep(for: .seconds(3)) + } + return false + } + + @MainActor + private func triggerAutomaticFinish() { + guard configureReady, !didAutoFinish else { return } + didAutoFinish = true + Task { @MainActor in + try? await Task.sleep(for: .seconds(0.8)) + model.advance() + } + } } diff --git a/apps/rebreak-binder-mac/Sources/Views/ContentView.swift b/apps/rebreak-binder-mac/Sources/Views/ContentView.swift index dd0fc45..f8aa709 100644 --- a/apps/rebreak-binder-mac/Sources/Views/ContentView.swift +++ b/apps/rebreak-binder-mac/Sources/Views/ContentView.swift @@ -1,3 +1,4 @@ +import AppKit import SwiftUI struct ContentView: View { @@ -5,13 +6,17 @@ struct ContentView: View { var body: some View { VStack(spacing: 0) { - // Header mit Step-Indicator VStack(spacing: 8) { HStack { - Image(systemName: "shield.lefthalf.filled") - .foregroundStyle(.tint) - Text("ReBreak Binder") - .font(.headline) + appBadge + + VStack(alignment: .leading, spacing: 1) { + Text("ReBreak Binder") + .font(.headline) + Text("macOS supervision tool") + .font(.caption) + .foregroundStyle(.secondary) + } Spacer() if model.step != .done { Text("Schritt \(model.step.stepNumber) von \(WizardStep.total)") @@ -42,4 +47,39 @@ struct ContentView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) } } + + @ViewBuilder + private var appBadge: some View { + if let icon = resolvedAppIcon { + Image(nsImage: icon) + .resizable() + .frame(width: 28, height: 28) + .clipShape(RoundedRectangle(cornerRadius: 7, style: .continuous)) + .overlay( + RoundedRectangle(cornerRadius: 7, style: .continuous) + .strokeBorder(.white.opacity(0.25), lineWidth: 1) + ) + } else { + ZStack { + RoundedRectangle(cornerRadius: 7, style: .continuous) + .fill(Color.accentColor.opacity(0.15)) + Image(systemName: "shield.lefthalf.filled") + .foregroundStyle(.tint) + } + .frame(width: 28, height: 28) + } + } + + private var resolvedAppIcon: NSImage? { + if let icon = NSApplication.shared.applicationIconImage, + icon.size.width > 2, + icon.size.height > 2 { + return icon + } + let bundleIcon = NSWorkspace.shared.icon(forFile: Bundle.main.bundlePath) + if bundleIcon.size.width > 2, bundleIcon.size.height > 2 { + return bundleIcon + } + return nil + } } diff --git a/apps/rebreak-binder-mac/Sources/Views/EnrollView.swift b/apps/rebreak-binder-mac/Sources/Views/EnrollView.swift index f3ecd88..13c110c 100644 --- a/apps/rebreak-binder-mac/Sources/Views/EnrollView.swift +++ b/apps/rebreak-binder-mac/Sources/Views/EnrollView.swift @@ -1,19 +1,105 @@ import SwiftUI import AppKit +struct TransferAnimationView: View { + let leftSymbol: String + let rightSymbol: String + let title: String + let subtitle: String + let isActive: Bool + let isDone: Bool + + @State private var animate = false + + var body: some View { + VStack(alignment: .leading, spacing: 8) { + Text(title) + .font(.callout.weight(.semibold)) + Text(subtitle) + .font(.caption) + .foregroundStyle(.secondary) + + HStack(spacing: 14) { + iconNode(systemName: leftSymbol) + + ZStack(alignment: .leading) { + Capsule() + .fill(Color.gray.opacity(0.22)) + .frame(height: 6) + + if isDone { + Capsule() + .fill(Color.green) + .frame(height: 6) + } else if isActive { + Circle() + .fill(Color.accentColor) + .frame(width: 12, height: 12) + .offset(x: animate ? 150 : 0) + .animation(.easeInOut(duration: 1.2).repeatForever(autoreverses: false), value: animate) + } + } + .frame(width: 150) + + iconNode(systemName: rightSymbol) + } + } + .padding(12) + .frame(maxWidth: .infinity, alignment: .leading) + .background(Color.accentColor.opacity(0.06)) + .cornerRadius(10) + .onAppear { + animate = isActive + } + .onChange(of: isActive) { _, active in + animate = active + } + } + + private func iconNode(systemName: String) -> some View { + ZStack { + Circle() + .fill(Color.accentColor.opacity(0.12)) + .frame(width: 34, height: 34) + Image(systemName: systemName) + .font(.system(size: 15, weight: .semibold)) + .foregroundStyle(.tint) + } + } +} + struct EnrollView: View { @Environment(WizardModel.self) private var model @State private var downloadStatus: String? @State private var localPath: String? + @State private var flowStatus: String? + @State private var busy = false + @State private var enrollmentReady = false + @State private var pollTask: Task? + @State private var didAutoAdvance = false + @State private var showUnlockModal = false + + private let enrollmentProfileID = "org.rebreak.mdm.enrollment" var body: some View { VStack(alignment: .leading, spacing: 20) { header - Text("Jetzt installierst du das **minimale** MDM-Enrollment-Profile, damit dein iPhone mit unserem NanoMDM-Server (mdm.rebreak.org) sprechen kann. Das Profile bringt **keine Restrictions** — nur den MDM-Channel. Restrictions kommen später per Sideload-Lock.") + Text("Wir installieren jetzt automatisch das Verbindungs-Profil für die Geräteverwaltung. Danach prüfen wir selbst, ob alles korrekt aktiv ist.") .foregroundStyle(.secondary) + TransferAnimationView( + leftSymbol: "iphone.gen3", + rightSymbol: "server.rack", + title: "Enrollment Live-Status", + subtitle: enrollmentReady + ? "Profil aktiv und iPhone am ReBreak-Server bestätigt enrolled." + : "Warte auf Profil-Installation am iPhone und Backend-Enrollment.", + isActive: busy && !enrollmentReady, + isDone: enrollmentReady + ) + instructions Spacer() @@ -21,7 +107,19 @@ struct EnrollView: View { navigationBar } .padding(40) - .onAppear { downloadProfile() } + .onAppear { startIfNeeded() } + .onDisappear { pollTask?.cancel() } + .alert("iPhone entsperren", isPresented: $showUnlockModal) { + Button("Erneut versuchen") { + if let path = localPath { + busy = true + runInstallFlow(path: path) + } + } + Button("OK", role: .cancel) {} + } message: { + Text("Bitte iPhone entsperren und verbunden lassen. Danach erneut versuchen.") + } } private var header: some View { @@ -29,14 +127,14 @@ struct EnrollView: View { Image(systemName: "doc.badge.gearshape") .font(.system(size: 30)) .foregroundStyle(.tint) - Text("MDM-Enrollment") + Text("Verbindung einrichten") .font(.title).bold() } } private var instructions: some View { VStack(alignment: .leading, spacing: 14) { - stepRow(number: 1, text: "Profile wird automatisch vom Server runtergeladen.") + stepRow(number: 1, text: "Profil wird automatisch geladen.") if let status = downloadStatus { HStack(spacing: 8) { Image(systemName: localPath != nil ? "checkmark.circle.fill" : "arrow.down.circle") @@ -46,10 +144,18 @@ struct EnrollView: View { .padding(.leading, 36) } - stepRow(number: 2, text: "Klick „Per AirDrop senden\" → wähle dein iPhone im Sheet.") - stepRow(number: 3, text: "Am iPhone: AirDrop-Dialog akzeptieren → Settings öffnet sich automatisch.") - stepRow(number: 4, text: "Settings → „Installieren\" tappen → 6-stelligen Geräte-Code eingeben → „Installieren\" bestätigen.") - stepRow(number: 5, text: "Zurück hier klick auf „Enrollment fertig → Weiter\".") + stepRow(number: 2, text: "Automatische Installation wird versucht.") + if let status = flowStatus { + HStack(spacing: 8) { + Image(systemName: enrollmentReady ? "checkmark.circle.fill" : (busy ? "hourglass" : "info.circle")) + .foregroundStyle(enrollmentReady ? .green : .secondary) + Text(status).font(.caption).foregroundStyle(.secondary) + } + .padding(.leading, 36) + } + + stepRow(number: 3, text: "Wenn iOS den Profil-Dialog zeigt, bitte direkt am iPhone bestätigen.") + stepRow(number: 4, text: "Wir warten automatisch auf Profil aktiv + Backend-Enroll und schalten dann Weiter frei.") } } @@ -71,27 +177,27 @@ struct EnrollView: View { Button("Zurück") { model.goTo(.supervise) } .buttonStyle(.bordered) Spacer() - if let path = localPath { - Button("Per AirDrop senden") { - sendViaAirDrop(path: path) - } - .buttonStyle(.borderedProminent) + if enrollmentReady { + Text("Enrollment bestätigt. Weiterleitung läuft automatisch …") + .font(.callout) + .foregroundStyle(.secondary) + } else { + Text("Bitte kurz warten …") + .font(.callout) + .foregroundStyle(.secondary) + } + } + } - Button("…im Finder zeigen") { - NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: path)]) - } - .buttonStyle(.bordered) - } - Button("Enrollment fertig → Weiter") { - model.device?.isEnrolled = true - model.advance() - } - .buttonStyle(.bordered) + private func startIfNeeded() { + if localPath == nil && !busy && !enrollmentReady { + downloadProfile() } } private func downloadProfile() { let dest = "/tmp/rebreak-enrollment.mobileconfig" + busy = true downloadStatus = "Lade von mdm.rebreak.org …" Task { do { @@ -107,20 +213,124 @@ struct EnrollView: View { localPath = dest downloadStatus = "Geladen: \(dest) (\(data.count) Bytes)" } + await MainActor.run { + runInstallFlow(path: dest) + } } catch { await MainActor.run { + busy = false downloadStatus = "Download fehlgeschlagen: \(error.localizedDescription)" } } } } - private func sendViaAirDrop(path: String) { - let url = URL(fileURLWithPath: path) - guard let service = NSSharingService(named: .sendViaAirDrop), service.canPerform(withItems: [url]) else { - NSWorkspace.shared.activateFileViewerSelecting([url]) - return + private func runInstallFlow(path: String) { + guard !enrollmentReady else { return } + flowStatus = "Versuche automatische Installation via USB …" + Task { + var installSucceeded = false + var shouldPollEnrollment = false + + for attempt in 1...3 { + do { + try await DeviceDetector.installProfileSilently(path: path) + installSucceeded = true + shouldPollEnrollment = true + await MainActor.run { + flowStatus = "✓ Profil wurde übertragen. Prüfe Installation + Enrollment …" + } + break + } catch DeviceDetector.DetectorError.deviceLocked { + if attempt < 3 { + await MainActor.run { + flowStatus = "iPhone ist gesperrt. Retry \(attempt)/2 … bitte entsperren." + } + try? await Task.sleep(for: .seconds(3)) + continue + } + await MainActor.run { + busy = false + flowStatus = "iPhone weiter gesperrt. Bitte entsperren und erneut versuchen." + showUnlockModal = true + } + return + } catch DeviceDetector.DetectorError.profileUserInteractionRequired { + shouldPollEnrollment = true + await MainActor.run { + flowStatus = "Bitte am iPhone Profil bestätigen. Wir prüfen danach automatisch weiter …" + } + break + } catch { + await MainActor.run { + flowStatus = "iOS verlangt Bestätigung am Gerät: \(error.localizedDescription)" + } + break + } + } + + if installSucceeded || shouldPollEnrollment { + await waitForEnrollmentReady() + } else { + await MainActor.run { + busy = false + } + } + } + } + + private func waitForEnrollmentReady() async { + pollTask?.cancel() + let task = Task { + for _ in 0..<40 { + let profiles = await DeviceDetector.installedProfileIDs() + let hasProfile = profiles.contains(enrollmentProfileID) + let isBackendEnrolled = await checkBackendEnrolled() + if hasProfile, isBackendEnrolled { + await MainActor.run { + busy = false + enrollmentReady = true + model.device?.isEnrolled = true + flowStatus = "✓ Profil aktiv und Server-Enrollment bestätigt." + triggerAutomaticContinue() + } + return + } + if hasProfile { + await MainActor.run { + flowStatus = "Profil aktiv. Warte auf Enrollment-Check-In am Server …" + } + } + try? await Task.sleep(for: .seconds(3)) + } + await MainActor.run { + busy = false + flowStatus = "⚠ Enrollment noch nicht vollständig bestätigt. Bitte iPhone-Profil-Dialog prüfen." + } + } + pollTask = task + _ = await task.result + } + + private func checkBackendEnrolled() async -> Bool { + guard let udid = model.device?.udid else { return false } + guard let status = try? await MDMStatus.query(udid: udid) else { return false } + await MainActor.run { + model.device?.enrollmentStatus = status + if status.isEnrolled { + model.device?.isEnrolled = true + } + } + return status.isEnrolled + } + + @MainActor + private func triggerAutomaticContinue() { + guard enrollmentReady, !didAutoAdvance else { return } + didAutoAdvance = true + Task { @MainActor in + try? await Task.sleep(for: .seconds(0.8)) + model.goTo(.configure) } - service.perform(withItems: [url]) } } diff --git a/apps/rebreak-binder-mac/Sources/Views/SuperviseView.swift b/apps/rebreak-binder-mac/Sources/Views/SuperviseView.swift index a114043..8447623 100644 --- a/apps/rebreak-binder-mac/Sources/Views/SuperviseView.swift +++ b/apps/rebreak-binder-mac/Sources/Views/SuperviseView.swift @@ -9,12 +9,20 @@ struct SuperviseView: View { VStack(alignment: .leading, spacing: 16) { header - Text("Wir schreiben jetzt die Supervision-Plist auf dein iPhone und starten es neu. Das dauert ~60 Sekunden. **Trenne das USB-Kabel nicht.**") + Text("Wir schreiben jetzt nur die Supervision-Metadaten auf dein iPhone und starten es neu. Apps, Daten und Logins bleiben erhalten. Das dauert ~60 Sekunden. **Trenne das USB-Kabel nicht.**") .foregroundStyle(.secondary) statusBox - logViewer + if model.showAdvancedLogs { + logViewer + } + + Button(model.showAdvancedLogs ? "Details ausblenden" : "Details anzeigen") { + model.showAdvancedLogs.toggle() + } + .buttonStyle(.borderless) + .foregroundStyle(.secondary) Spacer() @@ -117,11 +125,20 @@ struct SuperviseView: View { task?.cancel() task = Task { @MainActor in do { - _ = try await SuperviseRunner.supervise(organizationName: "ReBreak", force: true) { line in + _ = try await SuperviseRunner.supervise( + organizationName: "ReBreak", + force: true, + verbose: model.showAdvancedLogs + ) { line in model.supervisionLog.append(line) } model.supervisionRunning = false model.device?.isSupervised = true + model.device?.supervisorOrgName = "ReBreak" + // Nach re-supervise ist der MDM-Channel oft weg; Enroll-Step soll + // deshalb nicht fälschlich übersprungen werden. + model.device?.isEnrolled = false + model.device?.enrollmentStatus = nil } catch { model.supervisionError = error.localizedDescription model.supervisionRunning = false diff --git a/apps/rebreak-binder-mac/Sources/Views/WelcomeView.swift b/apps/rebreak-binder-mac/Sources/Views/WelcomeView.swift index ca8dcfa..db047e9 100644 --- a/apps/rebreak-binder-mac/Sources/Views/WelcomeView.swift +++ b/apps/rebreak-binder-mac/Sources/Views/WelcomeView.swift @@ -1,11 +1,34 @@ import SwiftUI +private enum DebugSupervisionMode: String, CaseIterable, Identifiable { + case none + case forceSupervised + case forceUnsupervised + + var id: String { rawValue } + + var title: String { + switch self { + case .none: return "Kein Mode-Change" + case .forceSupervised: return "Supervised setzen" + case .forceUnsupervised: return "Unsupervised setzen" + } + } +} + struct WelcomeView: View { @Environment(WizardModel.self) private var model @State private var detecting = false @State private var error: String? @State private var pollTask: Task? + @State private var resetRunning = false + @State private var resetStatus: String? + @State private var resetAll = true + @State private var resetEnrollmentProfile = true + @State private var resetLockProfile = true + @State private var resetApp = true + @State private var supervisionMode: DebugSupervisionMode = .none var body: some View { VStack(spacing: 24) { @@ -47,12 +70,71 @@ struct WelcomeView: View { .buttonStyle(.borderedProminent) .disabled(model.device == nil) } + + resetSection } .padding(40) .onAppear { startDetection() } .onDisappear { pollTask?.cancel() } } + private var resetSection: some View { + VStack(alignment: .leading, spacing: 8) { + Divider() + Text("Interner Test-Reset") + .font(.headline) + Text("Wähle gezielt, was entfernt werden soll. Optional kann zusätzlich supervised/unsupervised für Tests gesetzt werden.") + .font(.callout) + .foregroundStyle(.secondary) + + Toggle("Alles entfernen (Profile + App)", isOn: $resetAll) + .toggleStyle(.checkbox) + .onChange(of: resetAll) { _, newValue in + if newValue { + resetEnrollmentProfile = true + resetLockProfile = true + resetApp = true + } + } + + Group { + Toggle("MDM Enrollment-Profil löschen", isOn: $resetEnrollmentProfile) + .toggleStyle(.checkbox) + Toggle("Lock-Profil löschen", isOn: $resetLockProfile) + .toggleStyle(.checkbox) + Toggle("ReBreak-App löschen", isOn: $resetApp) + .toggleStyle(.checkbox) + } + .disabled(resetAll) + + Picker("Test-Mode", selection: $supervisionMode) { + ForEach(DebugSupervisionMode.allCases) { mode in + Text(mode.title).tag(mode) + } + } + .pickerStyle(.segmented) + + if let resetStatus { + Text(resetStatus) + .font(.caption) + .foregroundStyle(.secondary) + } + + HStack(spacing: 10) { + if resetRunning { + ProgressView() + .controlSize(.small) + } + Button("Debug-Reset ausführen") { + startDebugReset() + } + .buttonStyle(.bordered) + .disabled(model.device == nil || resetRunning || detecting) + } + } + .frame(maxWidth: 520, alignment: .leading) + } + private var nextButtonLabel: String { if model.device?.isFullyBound == true { return "Weiter → Schutz aktivieren" @@ -197,4 +279,83 @@ struct WelcomeView: View { } } } + + private func startDebugReset() { + guard model.device != nil else { + resetStatus = "Kein iPhone erkannt." + return + } + resetRunning = true + resetStatus = "Führe Debug-Reset aus …" + + Task { + do { + var changes: [String] = [] + + let removeEnrollment = resetAll || resetEnrollmentProfile + let removeLock = resetAll || resetLockProfile + let removeApp = resetAll || resetApp + + let installedProfileIDs = await DeviceDetector.installedProfileIDs() + var profileIDs: [String] = [] + if removeEnrollment, installedProfileIDs.contains(DeviceState.enrollmentProfileID) { + profileIDs.append(DeviceState.enrollmentProfileID) + } + if removeLock, installedProfileIDs.contains(DeviceState.lockProfileID) { + profileIDs.append(DeviceState.lockProfileID) + } + if !profileIDs.isEmpty { + try await DeviceDetector.removeProfiles(identifiers: profileIDs) + changes.append("Profile gelöscht: \(profileIDs.joined(separator: ", "))") + } + + if removeApp { + try await DeviceDetector.removeApp(bundleID: "org.rebreak.app") + changes.append("App gelöscht: org.rebreak.app") + } + + switch supervisionMode { + case .forceSupervised: + _ = try await SuperviseRunner.supervise(verbose: false) { _ in } + changes.append("Mode gesetzt: supervised") + case .forceUnsupervised: + _ = try await SuperviseRunner.unsupervise { _ in } + changes.append("Mode gesetzt: unsupervised") + case .none: + break + } + + let nowInstalledProfiles = await DeviceDetector.installedProfileIDs() + let nowApps = await DeviceDetector.installedAppBundleIDs() + let status = await DeviceDetector.readSupervisionStatus() + + await MainActor.run { + if changes.isEmpty { + resetStatus = "Keine Aktion gewählt." + } else { + resetStatus = "✓ \(changes.joined(separator: " · "))" + } + + if var device = model.device { + device.installedProfileIDs = nowInstalledProfiles + device.installedAppBundleIDs = nowApps + device.isSupervised = status.isSupervised + device.supervisorOrgName = status.organizationName + device.isFmiOn = status.findMyEnabled + device.isEnrolled = nowInstalledProfiles.contains(DeviceState.enrollmentProfileID) + if !nowApps.contains("org.rebreak.app") { device.isManaged = false } + if !nowInstalledProfiles.contains(DeviceState.lockProfileID) { device.isFilterActive = false } + model.device = device + } + + resetRunning = false + } + } catch { + await MainActor.run { + resetStatus = "✗ Reset fehlgeschlagen: \(error.localizedDescription)" + resetRunning = false + } + } + } + } } diff --git a/apps/rebreak-native/.gitignore b/apps/rebreak-native/.gitignore index 4bd5ccd..6a15af4 100644 --- a/apps/rebreak-native/.gitignore +++ b/apps/rebreak-native/.gitignore @@ -43,3 +43,6 @@ yarn-error.* # Storybook storybook-static/ +android/local.properties +android/key.properties +apps/rebreak-native/tmp/ diff --git a/apps/rebreak-native/CHANGELOG.md b/apps/rebreak-native/CHANGELOG.md index 739206d..fba86e8 100644 --- a/apps/rebreak-native/CHANGELOG.md +++ b/apps/rebreak-native/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog All notable changes to rebreak-native will be documented in this file. +## v0.3.13 (Build 27 / versionCode 18) — 2026-05-30\n\nPush-Notifications für Chat: Du erhältst jetzt Pushes bei neuen Direkt-Nachrichten und Raum-Nachrichten. Abschaltbar in den Einstellungen.\n ## v0.3.13 (Build 26 / versionCode 16) — 2026-05-30\n\nneue push für chat\n Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) Versioning: `version` follows SemVer, `versionCode` is monotonically increasing. diff --git a/apps/rebreak-native/NEXT_RELEASE.md b/apps/rebreak-native/NEXT_RELEASE.md index 68bb06b..3a244a7 100644 --- a/apps/rebreak-native/NEXT_RELEASE.md +++ b/apps/rebreak-native/NEXT_RELEASE.md @@ -1 +1 @@ -Push-Notifications für Chat: Du erhältst jetzt Pushes bei neuen Direkt-Nachrichten und Raum-Nachrichten. Abschaltbar in den Einstellungen. +Chat-DM: Lange auf Nachricht drücken öffnet jetzt das native Aktions-Menü (Antworten, Liken, Kopieren). Likes erscheinen Insta-Style als Herz unter der Nachricht. diff --git a/apps/rebreak-native/README.md b/apps/rebreak-native/README.md index 4d5c2da..8beec7c 100644 --- a/apps/rebreak-native/README.md +++ b/apps/rebreak-native/README.md @@ -72,6 +72,57 @@ apps/rebreak-native/ └── assets/ # Icons, Splashscreens, Fonts ``` +## Dev-Variant (Hot-Reload parallel zur MDM-App) + +Die MDM-managed Dist-App (`org.rebreak.app`) ist non-removable auf dem iPhone Air. +Der Dev-Build nutzt eine separate Bundle-ID (`org.rebreak.app.dev`) und kann parallel installiert werden. + +### Erstmaliges Setup (nur einmal nötig) + +```bash +# 1. Dev-Build starten — schlägt beim ersten Mal wegen Signing-Bundle fehl +REBREAK_DEV=1 ./dev-build.sh --clean + +# Wenn Xcode "No profiles for 'org.rebreak.app.dev'" meldet: +# a) open ios/ReBreak.xcworkspace +# b) Targets → ReBreak → Signing & Capabilities +# c) Team auf "84BQ7MTFYK" setzen — Xcode registriert Bundle-ID automatisch +# d) Xcode schliessen, nochmal ausführen: +REBREAK_DEV=1 ./dev-build.sh --clean +``` + +### Täglicher Workflow + +```bash +# Vollbuild (nach native-code Änderungen oder erstem Mal): +./dev-build.sh + +# Nur Metro (wenn Dev-App schon auf iPhone, reine JS-Änderungen): +./dev-build.sh --metro-only + +# Nuclear clean + rebuild (nach Plugin/Pod-Änderungen): +./dev-build.sh --clean +``` + +### Wichtige Unterschiede Dev vs. Dist + +| | Dev (`org.rebreak.app.dev`) | Dist (`org.rebreak.app`) | +|---|---|---| +| App-Name | ReBreak Dev | ReBreak | +| Splash-Color | #1e3a5f (dunkles Blau) | #0f172a (schwarz) | +| URL-Scheme | `rebreak-dev://` | `rebreak://` | +| App-Group | `group.org.rebreak.app` (geteilt) | `group.org.rebreak.app` | +| Hot-Reload | via Metro | nein | +| MDM-managed | nein | ja (non-removable) | + +App-Group ist bewusst geteilt — Dev-Build kann blocklist.bin lesen und +Sideload-Profile-Verhalten testen ohne MDM-Push. + +### Prod-Build bleibt unverändert + +`deploy-adhoc.sh` und `deploy-tf.sh` setzen `REBREAK_DEV` nicht +→ landen automatisch auf `org.rebreak.app`. + ## Wichtige Konfiguration | Datei | Zweck | @@ -107,6 +158,75 @@ Wrapped: - **Alte Capacitor-App** bleibt deployed bis RN-App im Store ist. - **Kein Auto-Commit** — User entscheidet wann committet wird. +## Release-Pipeline + +### Multi-Target Deploy (`deploy-app.sh`) + +Ein einziges Script baut und deployed alle drei Release-Targets: + +```bash +# Default: Alle drei Targets (MDM + TestFlight + Android) +./deploy-app.sh --bump + +# Nur spezifische Targets +./deploy-app.sh --mdm-only # Nur MDM (Ad-Hoc iOS) +./deploy-app.sh --tf-only # Nur TestFlight +./deploy-app.sh --android-only # Nur Android (EAS → Play-Console) + +# Targets selektiv überspringen +./deploy-app.sh --skip-mdm --bump # TestFlight + Android +./deploy-app.sh --skip-android # Nur iOS (MDM + TF) + +# Version-Bumping +./deploy-app.sh --bump # iOS buildNumber++, Android versionCode++ +./deploy-app.sh --version 0.4.0 # Explizite SemVer +./deploy-app.sh --android-version-code 15 # Override Android versionCode + +# Dry-Run (alles simulieren) +./deploy-app.sh --dry-run --bump +``` + +#### Was passiert pro Target + +| Target | Pipeline | Output | +|---|---|---| +| **MDM** | `deploy-adhoc.sh` → xcodebuild → scp upload | MDM-Push via NanoMDM (systemd-watcher) | +| **TestFlight** | `deploy-tf.sh` → altool upload | ASC → Internal Testing (~5-15min) | +| **Android** | EAS Cloud-Build → Play-Console | Internal-Track (~10-30min Processing) | + +#### Android-Vorbereitung (einmalig) + +Android-Submit benötigt `serviceAccountKeyPath` in `eas.json`: + +1. Google-Cloud-Service-Account erstellen (Play-Console-Zugriff) +2. JSON-Key downloaden (z.B. `~/secrets/rebreak-play-service-account.json`) +3. In `eas.json` eintragen: + ```json + "submit": { + "production": { + "android": { + "serviceAccountKeyPath": "~/secrets/rebreak-play-service-account.json", + "track": "internal" + } + } + } + ``` +4. **NIEMALS committen** (liegt in `.gitignore`) + +Falls noch nicht konfiguriert → Script bricht mit klarer Fehlermeldung ab. + +#### Changelog + +Changelog-Updates erfolgen bei `--bump` automatisch für iOS (via `deploy-adhoc.sh` intern) und Android (via `deploy-app.sh`). + +### Alte Scripts (weiterhin nutzbar) + +- `deploy-adhoc.sh` — MDM (Ad-Hoc iOS) standalone +- `deploy-tf.sh` — TestFlight standalone (wiederverwendet xcarchive) +- `eas-release.sh` — EAS Cloud-Build (manueller Wrapper, KEIN Version-Bumping) + +`deploy-app.sh` ist die empfohlene All-in-One-Lösung. + ## Phasen-Tracker Siehe Migration-Plan für Details: [`apps/rebreak/docs/react-native-migration.md`](../rebreak/docs/react-native-migration.md) diff --git a/apps/rebreak-native/SCRIPTS.md b/apps/rebreak-native/SCRIPTS.md new file mode 100644 index 0000000..cb1f405 --- /dev/null +++ b/apps/rebreak-native/SCRIPTS.md @@ -0,0 +1,223 @@ +# ReBreak Native — Deploy & Dev Scripts + +## Quick Start + +### Development +```bash +# iOS Dev (Metro + Xcode): +./dev.sh ios + +# iOS Dev auf physischem iPhone (USB): +./dev.sh ios --device + +# iOS Dev auf iPhone via WiFi: +./dev.sh ios --wifi + +# Android Dev: +./dev.sh android + +# Nur Metro starten: +./dev.sh metro + +# iOS Clean + Rebuild: +./dev.sh clean --build + +# Release-Build auf iPhone installieren: +./dev.sh install ios +``` + +### Deployment +```bash +# Full Release (alle Plattformen): +./deploy.sh all --bump + +# Nur iOS TestFlight: +./deploy.sh testflight --bump + +# Nur iOS MDM (Ad-Hoc): +./deploy.sh mdm --bump + +# Nur Android: +./deploy.sh android --bump + +# Dry-Run zum Testen: +./deploy.sh all --bump --dry-run +``` + +--- + +## `./deploy.sh` — Multi-Platform Release + +### Subcommands +- `all` (default) — Alle drei Targets (testflight + mdm + android) +- `testflight` — iOS TestFlight via App Store Connect +- `mdm` — iOS Ad-Hoc IPA + scp Upload zu MDM-Server +- `android` — Android APK/AAB via Gradle + Play Console + +### Flags +- `--bump` — Bump Build-Number (iOS + Android versionCode) +- `--version X.Y.Z` — Explizite Version setzen +- `--build N` — Explizite iOS Build-Nummer +- `--android-version-code N` — Override Android versionCode +- `--skip-clean` — clean-ios.sh überspringen (iOS) +- `--skip-validate` — altool --validate-app überspringen (TF) +- `--skip-submit` — Play-Console-Submit überspringen (Android) +- `--dry-run` — Alles simulieren, nichts ausführen + +### Credentials + +**iOS TestFlight:** +- `APPLE_APP_SPECIFIC_PASSWORD` (oder) +- `ASC_API_KEY_PATH` + `ASC_API_KEY_ID` + `ASC_API_KEY_ISSUER` + +**iOS MDM:** +- SSH-Access zu `rebreak-mdm` Server (VPN muss laufen) + +**Android:** +- ⚠️ **NICHT READY** — siehe Setup unten + +--- + +## `./dev.sh` — Development Tooling + +### Subcommands +- `ios` (default) — iOS Dev (Metro + Xcode/Simulator/Device) +- `android` — Android Dev (Metro + Gradle build + install) +- `metro` — Nur Metro starten +- `clean` — iOS Nuclear Clean (Pods, DerivedData, Archives) +- `install ios` — Release-Build auf iPhone USB installieren +- `install android` — Debug-APK auf Android Device installieren + +### Flags (ios) +- `--device` — Build auf physisches iPhone via USB +- `--simulator` — Build auf iOS Simulator (default) +- `--xcode` — Nur Xcode öffnen (manueller Build) +- `--wifi` — Metro mit --host lan (für WiFi-Dev auf iPhone) + +### Flags (android) +- `--no-build` — Skip Gradle build, nur install last APK +- `--no-launch` — Install but don't auto-launch + +### Flags (metro) +- `--keep` — Cache behalten (kein --clear) + +### Flags (clean) +- `--build` — + iOS build am Ende +- `--xcode` — + Xcode öffnen am Ende + +--- + +## `./eas-release.sh` — EAS Cloud-Build + +**SEPARATER WORKFLOW** — Cloud-Build via Expo Application Services (kein lokaler Build). + +```bash +# iOS only (build + TestFlight): +./eas-release.sh + +# Android AAB + Play Console Internal: +./eas-release.sh --android + +# iOS + Android parallel: +./eas-release.sh --both + +# Nur Build, kein Submit: +./eas-release.sh --build-only +``` + +**Voraussetzungen:** +- `eas login` einmalig durchgeführt +- Android: `serviceAccountKeyPath` in eas.json gesetzt +- iOS: Apple-Connect-Login beim ersten Run + +**Hinweis:** Bleibt unangetastet — wird NICHT in `deploy.sh` integriert, da völlig anderer Workflow (Cloud vs. lokal). + +--- + +## ⚠️ Android Deployment Setup — NOCH NICHT READY + +### Fehlende Credentials + +**1. Release Keystore:** +```bash +# Keystore generieren: +keytool -genkey -v -keystore ~/rebreak-release.keystore \ + -alias rebreak -keyalg RSA -keysize 2048 -validity 10000 + +# Keystore nach android/app/ kopieren (nach prebuild): +npx expo prebuild --platform android --no-install +cp ~/rebreak-release.keystore android/app/ +``` + +**2. Signing Config:** +```bash +# key.properties erstellen (NIEMALS committen): +cat > android/key.properties << EOF +storePassword= +keyPassword= +keyAlias=rebreak +storeFile=rebreak-release.keystore +EOF + +# .gitignore prüfen (sollte bereits vorhanden sein): +# android/key.properties +# android/app/*.keystore +``` + +**3. Play Console Service-Account JSON (für Submit):** +```bash +# 1. Google Cloud Console → Service Accounts → Create → JSON-Key +# 2. Play Console → Setup → API-Access → Service-Account linken +# 3. Permissions: "Releases" (Edit + Read) +# 4. JSON-Key ablegen: +mkdir -p ~/secrets +mv ~/Downloads/rebreak-play-*.json ~/secrets/rebreak-play-service-account.json + +# Optional: ENV-Variable setzen (in ~/.zshrc): +export PLAY_SERVICE_ACCOUNT_JSON=~/secrets/rebreak-play-service-account.json +``` + +**URLs:** +- Google Cloud Console: https://console.cloud.google.com/iam-admin/serviceaccounts +- Play Console API Access: https://play.google.com/console → Setup → API Access + +### Status-Check + +```bash +# Prüfen ob alles vorhanden: +ls -la android/key.properties +ls -la android/app/*.keystore +ls -la ~/secrets/rebreak-play-service-account.json + +# Wenn alle drei Dateien existieren: +./deploy.sh android --bump +``` + +**Ohne Service-Account-JSON:** +```bash +# Build-only (kein Submit zu Play Store): +./deploy.sh android --bump --skip-submit + +# AAB dann manuell uploaden: +# Play Console → Releases → Internal Testing → Create Release +# Upload: android/app/build/outputs/bundle/release/app-release.aab +``` + +--- + +## Changelog + +**2026-05-30 — Script-Konsolidierung:** +- ✓ `deploy.sh` ersetzt `deploy-app.sh`, `deploy-adhoc.sh`, `deploy-tf.sh` +- ✓ `dev.sh` ersetzt `dev-build.sh`, `dev-ios.sh`, `dev-iphone.sh`, `install-ios.sh`, `install-android.sh`, `clean-ios.sh`, `metro.sh` +- ✓ `eas-release.sh` bleibt separat (Cloud-Build-Workflow) +- ✓ Coloured brew-style output (✓/✗, Sections) +- ✓ `--help` für alle Scripts +- ⚠️ Android-Deploy: Credentials fehlen (siehe Setup oben) + +**Legacy Scripts gelöscht:** +- `deploy-app.sh`, `deploy-adhoc.sh`, `deploy-tf.sh` +- `dev-build.sh`, `dev-ios.sh`, `dev-iphone.sh` +- `install-ios.sh`, `install-android.sh` +- `clean-ios.sh`, `metro.sh` +- `DEPLOY_APP_USAGE.md` (Info in `--help` integriert) diff --git a/apps/rebreak-native/app.config.ts b/apps/rebreak-native/app.config.ts index dcaf26f..687f1d7 100644 --- a/apps/rebreak-native/app.config.ts +++ b/apps/rebreak-native/app.config.ts @@ -1,26 +1,39 @@ import { ExpoConfig, ConfigContext } from "expo/config"; +import pkg from "./package.json"; + +// ─── Dev-Variant-Flag ───────────────────────────────────────────────────────── +// REBREAK_DEV=1 → separates Bundle-org.rebreak.app.dev, App-Name "ReBreak Dev". +// Ermöglicht parallele Installation neben der MDM-managed Dist-App. +// Produktions-Builds (deploy-adhoc.sh, deploy-tf.sh, EAS) setzen REBREAK_DEV +// NICHT → landen automatisch auf dem Prod-Bundle. +// +// Verwendung: REBREAK_DEV=1 ./dev-build.sh +const IS_DEV = process.env.REBREAK_DEV === "1"; +const PROD_BUNDLE = "org.rebreak.app"; +const DEV_BUNDLE = "org.rebreak.app.dev"; +const MAIN_BUNDLE = IS_DEV ? DEV_BUNDLE : PROD_BUNDLE; export default ({ config }: ConfigContext): ExpoConfig => ({ ...config, - name: "ReBreak", + name: IS_DEV ? "ReBreak Dev" : "ReBreak", slug: "rebreak", - version: "0.3.6", + version: pkg.version, orientation: "portrait", icon: "./assets/icon.png", - scheme: "rebreak", + scheme: IS_DEV ? "rebreak-dev" : "rebreak", userInterfaceStyle: "automatic", newArchEnabled: true, splash: { image: "./assets/icon.png", resizeMode: "contain", - backgroundColor: "#0f172a", + backgroundColor: IS_DEV ? "#1e3a5f" : "#0f172a", }, ios: { supportsTablet: true, - bundleIdentifier: "org.rebreak.app", - buildNumber: "15", + bundleIdentifier: MAIN_BUNDLE, + buildNumber: "27", // Apple Sign-In Entitlement — Pflicht für expo-apple-authentication nativen // signInAsync()-Flow. Ohne flag generiert Expo's prebuild den // com.apple.developer.applesignin-Entitlement nicht in die .entitlements. @@ -43,7 +56,7 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ android: { package: "org.rebreak.app", - versionCode: 11, + versionCode: 18, adaptiveIcon: { // Foreground muss in der ~66%-Safe-Zone bleiben (Launcher-Mask clippt den // Außenring) → adaptive-foreground.png ist das Logo auf transparentem @@ -115,14 +128,15 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ ios: { appExtensions: [ { - // Layer 1 (NEU, Default) — Packet-Tunnel-DNS-Filter. + // Layer 1 (Unsupervised-Pfad) — Packet-Tunnel-DNS-Filter. // Bundle-ID + Entitlements müssen exakt zu // plugins/with-rebreak-protection-ios.js (PT_BUNDLE_SUFFIX) // und modules/rebreak-protection/ios/RebreakPacketTunnelExtension/ // passen, sonst kippt der EAS-Build mit - // "No profiles for 'org.rebreak.app.PacketTunnelExtension'". + // "No profiles for '...PacketTunnelExtension'". + // IS_DEV: → org.rebreak.app.dev.PacketTunnelExtension targetName: "RebreakPacketTunnelExtension", - bundleIdentifier: "org.rebreak.app.PacketTunnelExtension", + bundleIdentifier: `${MAIN_BUNDLE}.PacketTunnelExtension`, entitlements: { "com.apple.developer.networking.networkextension": [ "packet-tunnel-provider", @@ -132,6 +146,25 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ ], }, }, + { + // Layer 1 (Supervised-Pfad) — klassisches NEFilterDataProvider. + // Wird auf MDM-supervised Geräten statt PacketTunnel aktiviert, + // damit der User keinen VPN-Toggle in iOS-Settings hat. Bundle-ID + // + Entitlements müssen zu plugins/with-rebreak-protection-ios.js + // (CF_BUNDLE_SUFFIX) und modules/rebreak-protection/ios/ + // RebreakContentFilter/ passen. + // IS_DEV: → org.rebreak.app.dev.ContentFilterExtension + targetName: "RebreakContentFilter", + bundleIdentifier: `${MAIN_BUNDLE}.ContentFilterExtension`, + entitlements: { + "com.apple.developer.networking.networkextension": [ + "content-filter-provider", + ], + "com.apple.security.application-groups": [ + "group.org.rebreak.app", + ], + }, + }, ], }, }, diff --git a/apps/rebreak-native/app/(app)/_layout.tsx b/apps/rebreak-native/app/(app)/_layout.tsx index 7781040..d8bab33 100644 --- a/apps/rebreak-native/app/(app)/_layout.tsx +++ b/apps/rebreak-native/app/(app)/_layout.tsx @@ -7,6 +7,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; import { useAuthStore } from '../../stores/auth'; import { useNotificationStore } from '../../stores/notifications'; import { useMailConsentStore } from '../../stores/mailConsent'; +import { useCommunityStore } from '../../stores/community'; import { useColors } from '../../lib/theme'; import { NativeTabs } from '../../components/NativeTabs'; import { MailConsentReminderSheet } from '../../components/mail/MailConsentReminderSheet'; @@ -30,6 +31,7 @@ export default function AppLayout() { const startRealtime = useNotificationStore((s) => s.startRealtime); const stopRealtime = useNotificationStore((s) => s.stopRealtime); const resetNotifications = useNotificationStore((s) => s.reset); + const composeInputFocused = useCommunityStore((s) => s.composeInputFocused); const { visible: consentVisible, connections: consentConnections, show: showConsent, hide: hideConsent, markConsented } = useMailConsentStore(); const rearmInFlightRef = useRef(false); const bypassNotifiedRef = useRef(false); @@ -85,6 +87,7 @@ export default function AppLayout() { // SF-Symbol-Support). preloadTabIcons() läuft schon beim Modul-Import — hier // nur den ready-State tracken damit wir re-rendern wenn der Cache fertig ist. const [tabIconsReady, setTabIconsReady] = useState(Platform.OS !== 'android'); + const hiddenTabBar = useCallback(() => null, []); useEffect(() => { if (Platform.OS === 'android' && !tabIconsReady) { preloadTabIcons().then(() => setTabIconsReady(true)); @@ -259,6 +262,7 @@ export default function AppLayout() { { urlFilterActiveRef.current = urlFilterActive; }, [urlFilterActive]); - // Auto-Sync wenn URL-Filter beim Page-Mount/-Resume schon aktiv ist. + // Auto-Sync wenn URL-Filter oder NEFilter (MDM-Mode) beim Mount aktiv ist. + // Im MDM-Mode läuft NEFilter via System-Profil — urlFilterActive ist false (kein VPN), + // aber nefilterActive=true. Sync muss auch in diesem Fall laufen. const syncedOnceRef = useRef(false); useEffect(() => { - if (!urlFilterActive) return; + if (!urlFilterActive && !nefilterActive) return; if (syncedOnceRef.current) return; syncedOnceRef.current = true; syncBlocklist().then((res) => { console.log('[blocker] auto-sync on mount:', res); if (res.ok) refresh(); }); - }, [urlFilterActive, syncBlocklist, refresh]); + }, [urlFilterActive, nefilterActive, syncBlocklist, refresh]); // Layer 2 / VIP: webContent-Domain-Liste IMMER beim Mount syncen — ungated, // da Layer 2 an Family Controls hängt, nicht am URL-Filter. @@ -274,9 +272,14 @@ export default function BlockerScreen() { }} showsVerticalScrollIndicator={false} > - {/* Locked-In Mode (FC aktiv) → NUR Schutz-Status + Cooldown-Pfad */} + {/* Locked-In Mode (FC / NEFilter aktiv) → NUR Schutz-Status + Cooldown-Pfad */} {lockedIn ? ( - + ) : ( setDetailsOpen(false)} onRequestDeactivation={fromDetailsToExplainer} onTalkToLyra={deflectToLyra} diff --git a/apps/rebreak-native/app/(app)/chat.tsx b/apps/rebreak-native/app/(app)/chat.tsx index b003632..a085d08 100644 --- a/apps/rebreak-native/app/(app)/chat.tsx +++ b/apps/rebreak-native/app/(app)/chat.tsx @@ -1,4 +1,4 @@ -import { useCallback, useState } from 'react'; +import { useState, useCallback } from 'react'; import { View, Text, @@ -133,7 +133,6 @@ export default function ChatScreen() { - {/* Search header */} @@ -144,7 +143,6 @@ export default function ChatScreen() { placeholder={t('chat.search_placeholder')} placeholderTextColor={colors.textMuted} returnKeyType="search" - clearButtonMode="never" autoCorrect={false} autoCapitalize="none" /> @@ -235,23 +233,6 @@ function makeStyles(colors: ReturnType) { borderBottomColor: colors.border, minHeight: 68, }, - dmAvatar: { - width: 48, - height: 48, - borderRadius: 24, - backgroundColor: colors.surfaceElevated, - alignItems: 'center', - justifyContent: 'center', - overflow: 'hidden', - marginRight: 12, - flexShrink: 0, - }, - dmAvatarImg: { width: 48, height: 48 }, - dmAvatarInitials: { - fontSize: 15, - fontFamily: 'Nunito_700Bold', - color: colors.textMuted, - }, dmInfo: { flex: 1, minWidth: 0 }, dmHeaderRow: { flexDirection: 'row', @@ -288,53 +269,5 @@ function makeStyles(colors: ReturnType) { fontFamily: 'Nunito_700Bold', color: '#fff', }, - // Kept for v1.1 Groups comeback — tab styles no longer rendered - tabs: { - flexDirection: 'row', - marginTop: 12, - backgroundColor: colors.surfaceElevated, - borderRadius: 10, - padding: 3, - }, - tab: { - flex: 1, - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'center', - paddingVertical: 7, - borderRadius: 8, - }, - tabActive: { - backgroundColor: colors.surface, - shadowColor: '#000', - shadowOpacity: 0.05, - shadowRadius: 2, - shadowOffset: { width: 0, height: 1 }, - }, - tabText: { - fontSize: 12, - fontFamily: 'Nunito_600SemiBold', - color: colors.textMuted, - marginLeft: 5, - }, - tabTextActive: { - color: colors.brandOrange, - fontFamily: 'Nunito_700Bold', - }, - tabBadge: { - minWidth: 16, - height: 16, - borderRadius: 8, - backgroundColor: colors.brandOrange, - paddingHorizontal: 4, - alignItems: 'center', - justifyContent: 'center', - marginLeft: 5, - }, - tabBadgeText: { - fontSize: 9, - fontFamily: 'Nunito_700Bold', - color: '#fff', - }, }); } diff --git a/apps/rebreak-native/app/dm.tsx b/apps/rebreak-native/app/dm.tsx index d6cf09c..68a37e7 100644 --- a/apps/rebreak-native/app/dm.tsx +++ b/apps/rebreak-native/app/dm.tsx @@ -1,27 +1,35 @@ -import { useState, useRef, useEffect, useCallback, useMemo } from 'react'; +import { useState, useRef, useEffect, useCallback } from 'react'; import { View, Text, + TextInput, FlatList, TouchableOpacity, Platform, + Alert, ActivityIndicator, StyleSheet, - KeyboardAvoidingView, + Keyboard, + type FlatList as FlatListType, } from 'react-native'; +import { KeyboardStickyView } from 'react-native-keyboard-controller'; +import { Image } from 'expo-image'; import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context'; -import { useRouter, useLocalSearchParams } from 'expo-router'; +import { useRouter, useLocalSearchParams, useFocusEffect } from 'expo-router'; import { Ionicons } from '@expo/vector-icons'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; +import * as ImagePicker from 'expo-image-picker'; +// TODO(sdk54): migrate to new expo-file-system class-based API (File/Directory/Paths) — see Task #14 +import * as FileSystem from 'expo-file-system/legacy'; import { apiFetch } from '../lib/api'; import { ChatBubble, type ChatMsg } from '../components/chat/ChatBubble'; -import { ChatInput, type SendPayload } from '../components/chat/ChatInput'; import { DmChatBackground } from '../components/chat/DmChatBackground'; import { useDmRealtime } from '../hooks/useChatRealtime'; import { useColors } from '../lib/theme'; import { useThemeStore } from '../stores/theme'; import { useAuthStore } from '../stores/auth'; +import { supabase } from '../lib/supabase'; import { UserAvatar } from '../components/UserAvatar'; import { ChatHeaderStatus } from '../components/chat/ChatHeaderStatus'; @@ -55,6 +63,7 @@ export default function DmScreen() { const { t } = useTranslation(); const router = useRouter(); const insets = useSafeAreaInsets(); + const isAndroid = Platform.OS === 'android'; const colors = useColors(); const styles = makeStyles(colors); const queryClient = useQueryClient(); @@ -65,6 +74,8 @@ export default function DmScreen() { const { userId } = useLocalSearchParams<{ userId: string }>(); + const flatListRef = useRef>(null); + const isNearBottomRef = useRef(true); const [messages, setMessages] = useState([]); const [partner, setPartner] = useState(null); const partnerRef = useRef(null); @@ -72,6 +83,11 @@ export default function DmScreen() { null, ); const [sending, setSending] = useState(false); + const [inputText, setInputText] = useState(''); + const [attachment, setAttachment] = useState<{ uri: string; name: string } | null>(null); + const [uploading, setUploading] = useState(false); + const [keyboardVisible, setKeyboardVisible] = useState(false); + const [keyboardHeight, setKeyboardHeight] = useState(0); // Reset aller conversation-spezifischen States wenn userId wechselt (Stack-Reuse) useEffect(() => { @@ -81,6 +97,33 @@ export default function DmScreen() { setReplyTo(null); }, [userId]); + // Keyboard-Sichtbarkeit tracken + scroll to end beim Schließen + useEffect(() => { + const showEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow'; + const hideEvent = Platform.OS === 'ios' ? 'keyboardWillHide' : 'keyboardDidHide'; + const show = Keyboard.addListener(showEvent, (e) => { + setKeyboardHeight(e.endCoordinates.height); + setKeyboardVisible(true); + requestAnimationFrame(() => flatListRef.current?.scrollToEnd({ animated: false })); + }); + const hide = Keyboard.addListener(hideEvent, () => { + setKeyboardHeight(0); + setKeyboardVisible(false); + setTimeout(() => flatListRef.current?.scrollToEnd({ animated: false }), 50); + }); + return () => { show.remove(); hide.remove(); }; + }, []); + + // Wenn User zurücknavigiert, soll die Conversation-Liste sofort neu laden + // (unread-Badge soll verschwinden — Backend hat bereits markDmsAsRead beim GET aufgerufen) + useFocusEffect( + useCallback(() => { + return () => { + queryClient.invalidateQueries({ queryKey: ['dm-conversations'] }); + }; + }, [queryClient]), + ); + // Lade DM-History — staleTime:0 erzwingt immer frischen Fetch (kein Cache-Hit-Bug) const { isLoading, isFetching } = useQuery({ queryKey: ['dm-history', userId], @@ -117,6 +160,7 @@ export default function DmScreen() { readAt: m.readAt, })); setMessages(msgs); + requestAnimationFrame(() => flatListRef.current?.scrollToEnd({ animated: false })); return data; } catch (err: any) { console.error('[dm] history fetch failed:', err?.message ?? err); @@ -128,6 +172,14 @@ export default function DmScreen() { gcTime: 0, }); + // Neue Nachricht (incoming Realtime oder outgoing send) — nur scrollen wenn nahe unten + useEffect(() => { + if (messages.length === 0) return; + if (isNearBottomRef.current) { + requestAnimationFrame(() => flatListRef.current?.scrollToEnd({ animated: true })); + } + }, [messages.length]); + // Realtime: neue DMs vom Partner const onDmInsert = useCallback( (row: any) => { @@ -160,15 +212,71 @@ export default function DmScreen() { ); useDmRealtime(userId, onDmInsert, !!myUserId); - const reversedMessages = useMemo(() => [...messages].reverse(), [messages]); + async function pickImage() { + const perm = await ImagePicker.requestMediaLibraryPermissionsAsync(); + if (!perm.granted) { + Alert.alert(t('chat.photo_access_title'), t('chat.photo_access_body')); + return; + } + const result = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ImagePicker.MediaTypeOptions.Images, + quality: 0.8, + }); + if (!result.canceled && result.assets[0]?.uri) { + const a = result.assets[0]; + setAttachment({ uri: a.uri, name: a.fileName ?? `image-${Date.now()}.jpg` }); + } + } - async function handleSend(payload: SendPayload) { - if (sending) return; + async function uploadAttachment(): Promise<{ url: string; type: string; name: string } | null> { + if (!attachment) return null; + try { + setUploading(true); + const ext = attachment.name.split('.').pop() || 'jpg'; + const path = `chat/${Date.now()}_${Math.random().toString(36).slice(2, 8)}.${ext}`; + const base64 = await FileSystem.readAsStringAsync(attachment.uri, { + encoding: FileSystem.EncodingType.Base64, + }); + const binary = typeof atob === 'function' ? atob(base64) : Buffer.from(base64, 'base64').toString('binary'); + const bytes = new Uint8Array(binary.length); + for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i); + const { error } = await supabase.storage.from('chat-attachments').upload(path, bytes, { + cacheControl: '3600', + upsert: false, + contentType: 'image/jpeg', + }); + if (error) throw error; + const { data } = supabase.storage.from('chat-attachments').getPublicUrl(path); + return { url: data.publicUrl, type: 'image', name: attachment.name }; + } catch (err: any) { + Alert.alert(t('chat.upload_failed'), err?.message ?? ''); + return null; + } finally { + setUploading(false); + } + } + + async function handleSend() { + const content = inputText.trim(); + if (!content && !attachment) return; + if (sending || uploading) return; setSending(true); try { + let attachmentMeta: { url: string; type: string; name: string } | null = null; + if (attachment) { + attachmentMeta = await uploadAttachment(); + if (!attachmentMeta) { setSending(false); return; } + } const newMsg = await apiFetch('/api/chat/dm', { method: 'POST', - body: { receiverId: userId, ...payload }, + body: { + receiverId: userId, + content, + replyToId: replyTo?.id, + attachmentUrl: attachmentMeta?.url, + attachmentType: attachmentMeta?.type, + attachmentName: attachmentMeta?.name, + }, }); setMessages((prev) => [ ...prev, @@ -198,6 +306,8 @@ export default function DmScreen() { readAt: null, }, ]); + setInputText(''); + setAttachment(null); setReplyTo(null); queryClient.invalidateQueries({ queryKey: ['dm-conversations'] }); } catch (err) { @@ -239,8 +349,9 @@ export default function DmScreen() { return ( - {/* Header */} - + router.back()} hitSlop={8} activeOpacity={0.7}> @@ -262,53 +373,136 @@ export default function DmScreen() { - - - - {(isLoading || isFetching) && messages.length === 0 ? ( - - - - ) : messages.length === 0 ? ( - - - {t('chat.no_chats')} - - ) : ( - ( - {}} - /> - )} - keyExtractor={(m) => m.id} - contentContainerStyle={{ paddingBottom: 12, paddingTop: 8 }} - showsVerticalScrollIndicator={false} - /> - )} - - - - setReplyTo(null)} + + + {(isLoading || isFetching) && messages.length === 0 ? ( + + + + ) : messages.length === 0 ? ( + + + {t('chat.no_chats')} + + ) : ( + ( + {}} + /> + )} + keyExtractor={(m) => m.id} + contentContainerStyle={{ + paddingHorizontal: 0, + paddingTop: 12, + paddingBottom: 12 + insets.bottom + (keyboardVisible ? keyboardHeight : 0), + }} + showsVerticalScrollIndicator={false} + keyboardDismissMode="interactive" + keyboardShouldPersistTaps="handled" + onScroll={(e) => { + const { layoutMeasurement, contentOffset, contentSize } = e.nativeEvent; + const distFromBottom = contentSize.height - contentOffset.y - layoutMeasurement.height; + isNearBottomRef.current = distFromBottom < 80; + }} + scrollEventThrottle={100} + onContentSizeChange={() => { + if (isNearBottomRef.current) { + flatListRef.current?.scrollToEnd({ animated: false }); + } + }} /> + )} + + + + + {replyTo && ( + + + + + {t('chat.reply_to')} {replyTo.nickname} + + + {replyTo.content || '…'} + + + setReplyTo(null)} activeOpacity={0.7}> + + + + )} + {attachment && ( + + + + {attachment.name} + + setAttachment(null)} activeOpacity={0.7}> + + + + )} + + + + + + {(inputText.trim().length > 0 || attachment) && ( + + {sending || uploading ? ( + + ) : ( + + )} + + )} + - + ); } @@ -321,7 +515,6 @@ function makeStyles(colors: ReturnType) { alignItems: 'center', paddingHorizontal: 12, paddingVertical: 10, - backgroundColor: colors.bg, borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: colors.border, }, @@ -353,5 +546,83 @@ function makeStyles(colors: ReturnType) { color: colors.textMuted, marginTop: 12, }, + inputBar: { + borderTopWidth: StyleSheet.hairlineWidth, + }, + replyBar: { + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 12, + paddingVertical: 8, + borderLeftWidth: 3, + borderLeftColor: '#007AFF', + marginHorizontal: 8, + marginTop: 6, + borderRadius: 8, + }, + replyName: { + fontSize: 11, + fontFamily: 'Nunito_700Bold', + color: '#007AFF', + }, + replyContent: { + fontSize: 11, + fontFamily: 'Nunito_400Regular', + marginTop: 1, + }, + attachBar: { + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 12, + paddingVertical: 6, + marginHorizontal: 8, + marginTop: 6, + borderRadius: 8, + }, + attachImg: { + width: 36, + height: 36, + borderRadius: 6, + marginRight: 8, + }, + attachName: { + flex: 1, + fontSize: 12, + fontFamily: 'Nunito_600SemiBold', + }, + inputRow: { + flexDirection: 'row', + alignItems: 'flex-end', + gap: 8, + paddingHorizontal: 12, + paddingTop: 8, + }, + addBtn: { + width: 38, + height: 38, + borderRadius: 19, + alignItems: 'center', + justifyContent: 'center', + }, + textInput: { + flex: 1, + borderRadius: 22, + paddingVertical: 9, + paddingHorizontal: 16, + fontSize: 15, + fontFamily: 'Nunito_400Regular', + maxHeight: 120, + }, + sendBtn: { + width: 38, + height: 38, + borderRadius: 19, + backgroundColor: '#007AFF', + alignItems: 'center', + justifyContent: 'center', + }, + sendBtnDisabled: { + opacity: 0.4, + }, }); } diff --git a/apps/rebreak-native/app/help/faq.tsx b/apps/rebreak-native/app/help/faq.tsx index 6cb28f1..b8643a6 100644 --- a/apps/rebreak-native/app/help/faq.tsx +++ b/apps/rebreak-native/app/help/faq.tsx @@ -19,6 +19,11 @@ export default function FaqScreen() { { q: t('help.faq_q6'), a: t('help.faq_a6') }, { q: t('help.faq_q7'), a: t('help.faq_a7') }, { q: t('help.faq_q8'), a: t('help.faq_a8') }, + { q: t('help.faq_q9'), a: t('help.faq_a9') }, + { q: t('help.faq_q10'), a: t('help.faq_a10') }, + { q: t('help.faq_q11'), a: t('help.faq_a11') }, + { q: t('help.faq_q12'), a: t('help.faq_a12') }, + { q: t('help.faq_q13'), a: t('help.faq_a13') }, ]; return ( diff --git a/apps/rebreak-native/app/lyra.tsx b/apps/rebreak-native/app/lyra.tsx index a7532e7..f9d4671 100644 --- a/apps/rebreak-native/app/lyra.tsx +++ b/apps/rebreak-native/app/lyra.tsx @@ -435,6 +435,10 @@ export default function CoachScreen() { } async function onMicDown() { + // micHeld guard verhindert Doppel-Starts — aber wenn ein vorheriger Fehler + // micHeld.current = true hinterlassen hat ohne isRecording zu setzen, + // wäre der Mic dauerhaft blockiert. Reset wenn State inkonsistent. + if (micHeld.current && !isRecording) micHeld.current = false; if (thinking || isTranscribing || isRecording || micHeld.current) return; if (isSpeaking) stopSpeaking(); @@ -442,9 +446,9 @@ export default function CoachScreen() { if (status !== 'granted') return; micHeld.current = true; - await Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true }); - const rec = new Audio.Recording(); try { + await Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true }); + const rec = new Audio.Recording(); await rec.prepareToRecordAsync(Audio.RecordingOptionsPresets.HIGH_QUALITY); await rec.startAsync(); recordingRef.current = rec; @@ -452,7 +456,8 @@ export default function CoachScreen() { startRecordingTimer(); } catch { micHeld.current = false; - await Audio.setAudioModeAsync({ allowsRecordingIOS: false }); + recordingRef.current = null; + await Audio.setAudioModeAsync({ allowsRecordingIOS: false }).catch(() => {}); } } @@ -957,6 +962,7 @@ const styles = StyleSheet.create({ }, recordingContainer: { flex: 1, + height: 38, flexDirection: 'row', alignItems: 'center', gap: 8, @@ -965,7 +971,6 @@ const styles = StyleSheet.create({ borderColor: 'rgba(220,38,38,0.2)', borderRadius: 22, paddingHorizontal: 12, - paddingVertical: 8, }, cancelBtn: { width: 32, diff --git a/apps/rebreak-native/app/settings.tsx b/apps/rebreak-native/app/settings.tsx index 19b0eb6..310d7eb 100644 --- a/apps/rebreak-native/app/settings.tsx +++ b/apps/rebreak-native/app/settings.tsx @@ -15,6 +15,7 @@ import { Ionicons } from '@expo/vector-icons'; import { MenuView, type MenuAction } from '@react-native-menu/menu'; import { TrueSheet } from '@lodev09/react-native-true-sheet'; import { useTranslation } from 'react-i18next'; +import Constants from 'expo-constants'; import { LanguageIcon } from '../components/icons/LanguageIcon'; import { useColors } from '../lib/theme'; import { Button } from '../components/Button'; @@ -702,17 +703,24 @@ export default function SettingsScreen() { ))} + {/* ─── Version Badge ── sichtbar für Tester bei Bug-Reports ──── */} - {t('settings.skeleton_footer')} + {'v' + + (Constants.expoConfig?.version ?? '?') + + ' (' + + (Platform.OS === 'ios' + ? (Constants.expoConfig?.ios?.buildNumber ?? '?') + : String(Constants.expoConfig?.android?.versionCode ?? '?')) + + ')'} {Platform.OS} diff --git a/apps/rebreak-native/build-config/exportOptions-adhoc.plist b/apps/rebreak-native/build-config/exportOptions-adhoc.plist new file mode 100644 index 0000000..b30abba --- /dev/null +++ b/apps/rebreak-native/build-config/exportOptions-adhoc.plist @@ -0,0 +1,25 @@ + + + + + method + ad-hoc + teamID + 84BQ7MTFYK + signingStyle + automatic + stripSwiftSymbols + + thinning + <none> + manifest + + appURL + https://mdm.rebreak.org/install/Rebreak.ipa + displayImageURL + https://mdm.rebreak.org/install/icon-small.png + fullSizeImageURL + https://mdm.rebreak.org/install/icon-large.png + + + diff --git a/apps/rebreak-native/build-config/exportOptions-tf.plist b/apps/rebreak-native/build-config/exportOptions-tf.plist new file mode 100644 index 0000000..c70c76f --- /dev/null +++ b/apps/rebreak-native/build-config/exportOptions-tf.plist @@ -0,0 +1,18 @@ + + + + + method + app-store-connect + teamID + 84BQ7MTFYK + signingStyle + automatic + stripSwiftSymbols + + uploadSymbols + + uploadBitcode + + + diff --git a/apps/rebreak-native/components/ComposeCard.tsx b/apps/rebreak-native/components/ComposeCard.tsx index 8a4efac..38df0b3 100644 --- a/apps/rebreak-native/components/ComposeCard.tsx +++ b/apps/rebreak-native/components/ComposeCard.tsx @@ -1,4 +1,4 @@ -import { useState, useRef } from 'react'; +import { useState, useRef, useEffect } from 'react'; import { View, Text, @@ -19,6 +19,7 @@ import { apiFetch } from '../lib/api'; import { resolveAvatar } from '../lib/resolveAvatar'; import { useMe } from '../hooks/useMe'; import { useColors } from '../lib/theme'; +import { useCommunityStore } from '../stores/community'; type Props = { onPosted?: () => void; @@ -29,6 +30,7 @@ export function ComposeCard({ onPosted }: Props) { const colors = useColors(); const { me } = useMe(); const queryClient = useQueryClient(); + const setComposeInputFocused = useCommunityStore((s) => s.setComposeInputFocused); const inputRef = useRef(null); const [focused, setFocused] = useState(false); const [content, setContent] = useState(''); @@ -42,9 +44,14 @@ export function ComposeCard({ onPosted }: Props) { setContent(''); setImageUri(null); setFocused(false); + setComposeInputFocused(false); inputRef.current?.blur(); }; + useEffect(() => { + return () => setComposeInputFocused(false); + }, [setComposeInputFocused]); + const pickImage = async () => { const perm = await ImagePicker.requestMediaLibraryPermissionsAsync(); if (!perm.granted) { @@ -113,7 +120,14 @@ export function ComposeCard({ onPosted }: Props) { ref={inputRef} value={content} onChangeText={setContent} - onFocus={() => setFocused(true)} + onFocus={() => { + setFocused(true); + setComposeInputFocused(true); + }} + onBlur={() => { + setFocused(false); + setComposeInputFocused(false); + }} placeholder={t('community.compose_placeholder')} placeholderTextColor={colors.textMuted} multiline diff --git a/apps/rebreak-native/components/NativeTabs.tsx b/apps/rebreak-native/components/NativeTabs.tsx index d37cf63..707d381 100644 --- a/apps/rebreak-native/components/NativeTabs.tsx +++ b/apps/rebreak-native/components/NativeTabs.tsx @@ -34,6 +34,7 @@ type NativeOnlyOptions = { disablePageAnimations?: boolean; scrollEdgeAppearance?: 'default' | 'opaque' | 'transparent'; minimizeBehavior?: 'automatic' | 'onScrollDown' | 'onScrollUp' | 'never'; + tabBar?: () => React.ReactNode; tabBarActiveTintColor?: string; tabBarInactiveTintColor?: string; labeled?: boolean; @@ -66,6 +67,7 @@ function NativeTabsNavigator({ disablePageAnimations, scrollEdgeAppearance, minimizeBehavior, + tabBar, tabBarActiveTintColor, tabBarInactiveTintColor, labeled = true, @@ -90,6 +92,7 @@ function NativeTabsNavigator({ void; + /** Called when user submits (keyboard "search" button or enter). */ + onSubmit?: (text: string) => void; + /** Called on every keystroke. */ + onChange?: (text: string) => void; + /** When true, shows ActivityIndicator-style pulse on mic icon. */ + micActive?: boolean; +}; + +export function SearchBarFloating({ + placeholder = 'Suchen…', + onPressMic, + onSubmit, + onChange, + micActive = false, +}: Props) { + const insets = useSafeAreaInsets(); + const colors = useColors(); + const scheme = useColorScheme(); + const [text, setText] = useState(''); + const micScale = useRef(new Animated.Value(1)).current; + + function handleTextChange(val: string) { + setText(val); + onChange?.(val); + } + + function handleSubmit() { + if (text.trim()) onSubmit?.(text.trim()); + } + + function handlePressMic() { + Animated.sequence([ + Animated.timing(micScale, { toValue: 0.85, duration: 80, useNativeDriver: true }), + Animated.timing(micScale, { toValue: 1, duration: 120, useNativeDriver: true }), + ]).start(); + onPressMic?.(); + } + + const bottomOffset = Math.max(insets.bottom, 8); + + return ( + + + {IS_IOS ? ( + + ) : null} + + + + + {onPressMic ? ( + + + + + + ) : null} + + + ); +} + +const styles = StyleSheet.create({ + wrapper: { + position: 'absolute', + left: 16, + right: 16, + zIndex: 100, + }, + pill: { + flexDirection: 'row', + alignItems: 'center', + borderRadius: 22, + borderWidth: StyleSheet.hairlineWidth, + paddingLeft: 12, + paddingRight: 8, + paddingVertical: 8, + shadowOffset: { width: 0, height: 4 }, + shadowOpacity: 0.1, + shadowRadius: 12, + elevation: 6, + gap: 8, + }, + blurFill: { + ...StyleSheet.absoluteFillObject, + borderRadius: 22, + overflow: 'hidden', + }, + searchIcon: { + flexShrink: 0, + }, + input: { + flex: 1, + fontSize: 16, + fontFamily: 'Nunito_400Regular', + padding: 0, + minHeight: 28, + }, + micBtn: { + width: 36, + height: 36, + borderRadius: 18, + alignItems: 'center', + justifyContent: 'center', + flexShrink: 0, + }, +}); diff --git a/apps/rebreak-native/components/blocker/AddDomainSheet.tsx b/apps/rebreak-native/components/blocker/AddDomainSheet.tsx index 3aca1bc..b96cef3 100644 --- a/apps/rebreak-native/components/blocker/AddDomainSheet.tsx +++ b/apps/rebreak-native/components/blocker/AddDomainSheet.tsx @@ -113,7 +113,9 @@ export function AddDomainSheet({ visible, tier, onClose, onAdd }: Props) { return; } const raw = (result.error ?? '').toLowerCase(); - if (raw.includes('limit_reached')) { + if (raw.includes('public_domain')) { + setError(t('blocker.error_public_domain')); + } else if (raw.includes('limit_reached')) { setError(t('blocker.error_limit_reached')); } else if (raw.includes('invalid_mail_domain') || raw.includes('display_name_not_supported')) { setError(t('blocker.error_invalid_mail')); @@ -263,15 +265,17 @@ export function AddDomainSheet({ visible, tier, onClose, onAdd }: Props) { - {/* Preview card */} - + {/* Preview card — only when user has typed something */} + {input.trim().length > 0 && ( + + )} {/* Override toggle — User kann Auto-Detect korrigieren falls falsch erkannt */} {detected !== null && ( diff --git a/apps/rebreak-native/components/blocker/ProtectionDetailsSheet.tsx b/apps/rebreak-native/components/blocker/ProtectionDetailsSheet.tsx index d606eb8..95472cb 100644 --- a/apps/rebreak-native/components/blocker/ProtectionDetailsSheet.tsx +++ b/apps/rebreak-native/components/blocker/ProtectionDetailsSheet.tsx @@ -20,6 +20,8 @@ import { HalfDonut } from '../common/HalfDonut'; type Props = { visible: boolean; state: ProtectionState; + /** True wenn Gerät MDM-managed ist — versteckt Cooldown-CTA, zeigt Trustee-Hinweis. */ + mdmManaged?: boolean; onClose: () => void; onRequestDeactivation: () => void; onTalkToLyra: () => void; @@ -45,6 +47,7 @@ const SEG_REVIEW = '#f59e0b'; export function ProtectionDetailsSheet({ visible, state, + mdmManaged, onClose, onRequestDeactivation, }: Props) { @@ -212,7 +215,7 @@ export function ProtectionDetailsSheet({ - {[1, 2, 3, 4].map((n) => ( + {[1, 2, 3, 4, 5, 6, 7, 8, 9].map((n) => ( - {/* "Schutz deaktivieren" – outline button: TouchableOpacity=card, inner View=flex-row */} - - - - - {t('blocker.more_info_title')} + {mdmManaged ? ( + /* MDM-Modus: Cooldown-Flow nicht möglich — Trustee-Hinweis statt Button */ + + + + + {t('blocker.mdm_deactivate_title')} + + + + {t('blocker.mdm_deactivate_body')} - + ) : ( + /* Normal-Modus: Cooldown-Flow */ + + + + + {t('blocker.more_info_title')} + + + + )} ); diff --git a/apps/rebreak-native/components/blocker/ProtectionLockedCard.tsx b/apps/rebreak-native/components/blocker/ProtectionLockedCard.tsx index 74d952f..6b3043f 100644 --- a/apps/rebreak-native/components/blocker/ProtectionLockedCard.tsx +++ b/apps/rebreak-native/components/blocker/ProtectionLockedCard.tsx @@ -6,6 +6,10 @@ import { useColors } from '../../lib/theme'; type Props = { state: ProtectionState; + /** True wenn Gerät MDM-managed ist — versteckt Cooldown-Hint, zeigt Trustee-Info. */ + mdmManaged?: boolean; + /** True wenn NEFilter via System-Profil aktiv ist. */ + nefilterActive?: boolean; /** Click-1 of 3-Click-Cooldown-Trigger — öffnet ProtectionDetailsSheet. */ onPressSettings: () => void; }; @@ -15,10 +19,11 @@ type Props = { * "locked in" und kann nur über den Cooldown-Flow deaktiviert werden. * Daher: KEINE Switches mehr, nur ein Settings-Icon das den 3-Click-Flow startet. */ -export function ProtectionLockedCard({ state, onPressSettings }: Props) { +export function ProtectionLockedCard({ state, mdmManaged, nefilterActive, onPressSettings }: Props) { const { t } = useTranslation(); const colors = useColors(); const isCooldown = state.phase === 'cooldownActive'; + const isMdmMode = mdmManaged || nefilterActive; const cardBg = isCooldown ? '#fef3c7' : '#dcfce7'; const cardBorder = isCooldown ? '#fcd34d' : '#86efac'; const iconBg = isCooldown ? '#fde68a' : '#bbf7d0'; @@ -26,6 +31,7 @@ export function ProtectionLockedCard({ state, onPressSettings }: Props) { const subtitle = (() => { if (isCooldown) return t('blocker.protection_subtitle_cooldown'); + if (isMdmMode) return t('blocker.protection_subtitle_mdm'); if (state.plan === 'legend') { return t('blocker.protection_subtitle_legend'); } @@ -101,17 +107,21 @@ export function ProtectionLockedCard({ state, onPressSettings }: Props) { {!isCooldown && ( - - - + + + + + )} diff --git a/apps/rebreak-native/components/chat/ChatBubble.tsx b/apps/rebreak-native/components/chat/ChatBubble.tsx index 5227264..c58c291 100644 --- a/apps/rebreak-native/components/chat/ChatBubble.tsx +++ b/apps/rebreak-native/components/chat/ChatBubble.tsx @@ -1,16 +1,14 @@ -import { useState } from 'react'; import { View, Text, TouchableOpacity, StyleSheet, - Modal, - Platform, } from 'react-native'; import { Image } from 'expo-image'; import * as Clipboard from 'expo-clipboard'; import { Ionicons } from '@expo/vector-icons'; import { useTranslation } from 'react-i18next'; +import { useActionSheet } from '@expo/react-native-action-sheet'; import { useColors } from '../../lib/theme'; import { useThemeStore } from '../../stores/theme'; import { UserAvatar } from '../UserAvatar'; @@ -44,6 +42,8 @@ type Props = { isFirstInGroup?: boolean; isLastInGroup?: boolean; hideReadStatus?: boolean; + /** Direct-Message-Mode: Likes als boolean-Herz (Insta-Style) statt Count, kein Avatar-Spalte-Whatever */ + isDM?: boolean; onReply: (msg: ChatMsg) => void; onLike: (msg: ChatMsg) => void; onOpenImage: (url: string) => void; @@ -72,6 +72,7 @@ export function ChatBubble({ isFirstInGroup = true, isLastInGroup = true, hideReadStatus = false, + isDM = false, onReply, onLike, onOpenImage, @@ -80,7 +81,33 @@ export function ChatBubble({ const colors = useColors(); const styles = makeStyles(colors); const bubbleColors = useBubbleColors(); - const [actionsOpen, setActionsOpen] = useState(false); + const { showActionSheetWithOptions } = useActionSheet(); + + function openActions() { + const hasContent = msg.content !== ''; + const likeLabel = msg.likedByMe ? t('chat.unlike') : t('chat.like'); + const options: string[] = [t('chat.reply'), likeLabel]; + if (hasContent) options.push(t('chat.copy')); + options.push(t('common.cancel')); + const cancelButtonIndex = options.length - 1; + showActionSheetWithOptions( + { + options, + cancelButtonIndex, + title: hasContent + ? msg.content.length > 60 + ? msg.content.slice(0, 60) + '…' + : msg.content + : undefined, + }, + (selected?: number) => { + if (selected === undefined || selected === cancelButtonIndex) return; + if (selected === 0) onReply(msg); + else if (selected === 1) onLike(msg); + else if (selected === 2 && hasContent) copyContent(); + }, + ); + } const isImageOnly = !!msg.attachmentUrl && msg.attachmentType === 'image' && !msg.content && !msg.replyTo; @@ -104,9 +131,7 @@ export function ChatBubble({ function copyContent() { if (msg.content) Clipboard.setStringAsync(msg.content); - setActionsOpen(false); } - return ( <> setActionsOpen(true)} + onLongPress={openActions} activeOpacity={1} style={[ styles.bubble, @@ -204,7 +229,7 @@ export function ChatBubble({ /> {isImageOnly && ( - {msg.likesCount > 0 && ( + {!isDM && msg.likesCount > 0 && ( @@ -254,7 +279,7 @@ export function ChatBubble({ {!isImageOnly && ( - {msg.likesCount > 0 && ( + {!isDM && msg.likesCount > 0 && ( )} + + {/* Insta-Style: kleines Herz-Badge hängt unter der Bubble (nur DM, nur wenn liked) */} + {isDM && msg.likedByMe && ( + onLike(msg)} + activeOpacity={0.7} + hitSlop={8} + style={[ + styles.dmHeartBadge, + { + alignSelf: msg.isOwn ? 'flex-end' : 'flex-start', + marginRight: msg.isOwn ? 8 : 0, + marginLeft: msg.isOwn ? 0 : 8, + }, + ]} + > + + + )} - - setActionsOpen(false)} - > - setActionsOpen(false)} activeOpacity={1}> - {}} activeOpacity={1}> - - { - setActionsOpen(false); - onReply(msg); - }} - activeOpacity={0.7} - > - - {t('chat.reply')} - - { - setActionsOpen(false); - onLike(msg); - }} - activeOpacity={0.7} - > - - - {msg.likedByMe ? t('chat.unlike') : t('chat.like')} - - - {msg.content !== '' && ( - - - {t('chat.copy')} - - )} - - - ); } @@ -418,38 +415,17 @@ function makeStyles(colors: ReturnType) { marginTop: 4, alignSelf: 'flex-end', }, - sheetBackdrop: { - flex: 1, - backgroundColor: 'rgba(0,0,0,0.35)', - justifyContent: 'flex-end', - }, - sheet: { + dmHeartBadge: { + marginTop: -6, backgroundColor: colors.bg, - borderTopLeftRadius: 22, - borderTopRightRadius: 22, - padding: 8, - paddingBottom: Platform.OS === 'ios' ? 34 : 16, - }, - sheetGrabber: { - width: 36, - height: 4, - borderRadius: 2, - backgroundColor: colors.border, - alignSelf: 'center', - marginBottom: 10, - }, - sheetItem: { - flexDirection: 'row', - alignItems: 'center', - paddingHorizontal: 16, - paddingVertical: 14, - borderRadius: 12, - }, - sheetText: { - fontSize: 15, - fontFamily: 'Nunito_600SemiBold', - color: colors.text, - marginLeft: 12, + borderRadius: 999, + paddingHorizontal: 4, + paddingVertical: 3, + shadowColor: '#000', + shadowOpacity: 0.12, + shadowOffset: { width: 0, height: 1 }, + shadowRadius: 2, + elevation: 2, }, }); } diff --git a/apps/rebreak-native/components/games/GameOverScreen.tsx b/apps/rebreak-native/components/games/GameOverScreen.tsx index 42b297f..1c94ed3 100644 --- a/apps/rebreak-native/components/games/GameOverScreen.tsx +++ b/apps/rebreak-native/components/games/GameOverScreen.tsx @@ -68,7 +68,6 @@ export function GameOverScreen({ const [saving, setSaving] = useState(false); const [saved, setSaved] = useState(false); - const [shareSectionOpen, setShareSectionOpen] = useState(false); const [shareText, setShareText] = useState(''); const lyraShareTextRef = useRef(''); const [shareTextLoading, setShareTextLoading] = useState(false); @@ -77,6 +76,12 @@ export function GameOverScreen({ const [posted, setPosted] = useState(false); const [postError, setPostError] = useState(false); + // UI mode — kontrolliert welche Buttons im Footer erscheinen (immer max 2) + // 'default' → [Retry, Exit] + // 'rating' → [Cancel, Save] + // 'share' → [Cancel, Post] + const [mode, setMode] = useState<'default' | 'rating' | 'share'>('default'); + const emotion = isNewBest || score >= goodScore ? 'happy' : 'empathy'; const msg = lyraMsg(gameName, score, goodScore, isNewBest, t); const displayScore = score; @@ -115,8 +120,10 @@ export function GameOverScreen({ }, }); setSaved(true); + setMode('default'); } catch { // endpoint not yet live — silent + setMode('default'); } finally { setSaving(false); } @@ -139,7 +146,7 @@ export function GameOverScreen({ async function openShareSection() { setShareTextLoading(true); - setShareSectionOpen(true); + setMode('share'); try { const text = await fetchShareText(); lyraShareTextRef.current = text; @@ -199,7 +206,7 @@ export function GameOverScreen({ }, }); setPosted(true); - setShareSectionOpen(false); + setMode('default'); setTimeout(() => handleExit(), 1500); } catch (err) { console.error('[gameover/post] failed:', err); @@ -295,14 +302,19 @@ export function GameOverScreen({ - {/* Star rating */} + {/* Star rating — interaktiv nur im default-Mode (rating-Modus zeigt Stars + feedback unten) */} { if (!saved) setRating(v); }} + onChange={(v) => { + if (saved) return; + setRating(v); + // Tap auf Stern im default-Mode → wechselt in Rating-Mode + if (mode === 'default' && v > 0) setMode('rating'); + }} /> {saved ? ( @@ -311,46 +323,93 @@ export function GameOverScreen({ ) : null} - {/* Feedback textarea + save */} - {rating > 0 && !saved ? ( - - -