끝난 이클립스 합류 문구 · HOME 헤더 POP · 다국어 HOME 레이아웃 · 캠페인 표시 수정

This commit is contained in:
Sn-Kinos
2026-10-08 19:00:24 +09:00
parent a74edaef6b
commit 40b2c0e6f6
40 changed files with 1649 additions and 845 deletions
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:share_plus/share_plus.dart';
import '../../../core/format.dart';
@@ -8,6 +7,7 @@ import '../../../core/ui/app_icons.dart';
import '../my_data.dart';
import 'my_cards.dart';
import '../../../core/i18n/app_locale.dart';
import '../../../core/ui/clipboard_copy.dart';
import '../../campaign/campaign_share.dart' show shareHashtags;
/// 프로필 카드 오버레이 — 시안 `374:15738`(명세 `549:22058`).
@@ -123,7 +123,8 @@ String profileShareText(MyProfile profile, [AppLocalizations? l10n]) => [
].join('\n');
/// 프로필 카드 공유. 앱별 전용 SDK 없이 OS 공유 시트로 보내고(사용자가 그 안에서
/// 인스타 · 틱톡 · X 를 고른다), 마지막 칸은 문구를 복사한다. 복사했으면 true.
/// 인스타 · 틱톡 · X 를 고른다), 마지막 칸은 문구를 복사한다. 복사했고 앱이 알려야 하면 true
/// (Android 13+ 는 시스템이 알린다 — [copyToClipboard]).
Future<bool> shareProfile(
MyProfile profile,
String target, {
@@ -131,8 +132,9 @@ Future<bool> shareProfile(
}) async {
final text = profileShareText(profile);
if (target == ProfileCard.shareTargets.last) {
await Clipboard.setData(ClipboardData(text: text));
return true;
var announce = false;
await copyToClipboard(text, () => announce = true);
return announce;
}
await (share ?? SharePlus.instance.share)(ShareParams(text: text));
return false;