옵션창 정보팝업 단절 처리

This commit is contained in:
JiWoong Sul
2025-11-17 19:26:46 +09:00
parent b22df5daf3
commit b018e5eb2f

View File

@@ -4,7 +4,6 @@ import 'package:provider/provider.dart';
import '../providers/notification_provider.dart'; import '../providers/notification_provider.dart';
import 'dart:io'; import 'dart:io';
import '../services/notification_service.dart'; import '../services/notification_service.dart';
import 'package:url_launcher/url_launcher.dart';
// import '../widgets/glassmorphism_card.dart'; // import '../widgets/glassmorphism_card.dart';
// import '../theme/app_colors.dart'; // import '../theme/app_colors.dart';
import '../widgets/native_ad_widget.dart'; import '../widgets/native_ad_widget.dart';
@@ -907,60 +906,61 @@ class SettingsScreen extends StatelessWidget {
), ),
leading: Icon(Icons.info, leading: Icon(Icons.info,
color: Theme.of(context).colorScheme.onSurfaceVariant), color: Theme.of(context).colorScheme.onSurfaceVariant),
onTap: () async { onTap: null,
// 항상 앱 내 About 다이얼로그를 우선 표시 // onTap: () async {
showAboutDialog( // // 항상 앱 내 About 다이얼로그를 우선 표시 (현재 미사용)
context: context, // showAboutDialog(
applicationName: AppLocalizations.of(context).appTitle, // context: context,
applicationVersion: '1.0.0', // applicationName: AppLocalizations.of(context).appTitle,
applicationIcon: const FlutterLogo(size: 50), // applicationVersion: '1.0.0',
children: [ // applicationIcon: const FlutterLogo(size: 50),
Text(AppLocalizations.of(context).appDescription), // children: [
const SizedBox(height: 8), // Text(AppLocalizations.of(context).appDescription),
Text( // const SizedBox(height: 8),
'${AppLocalizations.of(context).developer}: Julian Sul'), // Text(
const SizedBox(height: 12), // '${AppLocalizations.of(context).developer}: Julian Sul'),
Builder(builder: (ctx) { // const SizedBox(height: 12),
return TextButton.icon( // Builder(builder: (ctx) {
icon: const Icon(Icons.open_in_new), // return TextButton.icon(
label: Text(AppLocalizations.of(ctx).openStore), // icon: const Icon(Icons.open_in_new),
onPressed: () async { // label: Text(AppLocalizations.of(ctx).openStore),
try { // onPressed: () async {
if (Platform.isAndroid) { // try {
// 우선 Play 스토어 앱 시도 // if (Platform.isAndroid) {
const pkg = // // 우선 Play 스토어 앱 시도
'com.naturebridgeai.digitalrentmanager'; // const pkg =
final marketUri = // 'com.naturebridgeai.digitalrentmanager';
Uri.parse('market://details?id=$pkg'); // final marketUri =
final webUri = Uri.parse( // Uri.parse('market://details?id=$pkg');
'https://play.google.com/store/apps/details?id=$pkg'); // final webUri = Uri.parse(
final ok = await launchUrl(marketUri, // 'https://play.google.com/store/apps/details?id=$pkg');
mode: LaunchMode.externalApplication); // final ok = await launchUrl(marketUri,
if (!ok) { // mode: LaunchMode.externalApplication);
await launchUrl(webUri, // if (!ok) {
mode: LaunchMode.externalApplication); // await launchUrl(webUri,
} // mode: LaunchMode.externalApplication);
} else if (Platform.isIOS) { // }
final uri = Uri.parse( // } else if (Platform.isIOS) {
'https://apps.apple.com/app/id123456789'); // final uri = Uri.parse(
await launchUrl(uri, // 'https://apps.apple.com/app/id123456789');
mode: LaunchMode.externalApplication); // await launchUrl(uri,
} // mode: LaunchMode.externalApplication);
} catch (e) { // }
if (ctx.mounted) { // } catch (e) {
AppSnackBar.showError( // if (ctx.mounted) {
context: ctx, // AppSnackBar.showError(
message: AppLocalizations.of(ctx) // context: ctx,
.cannotOpenStore, // message: AppLocalizations.of(ctx)
); // .cannotOpenStore,
} // );
} // }
}, // }
); // },
}), // );
], // }),
); // ],
}, // );
// },
), ),
), ),
// FloatingNavigationBar를 위한 충분한 하단 여백 // FloatingNavigationBar를 위한 충분한 하단 여백