From 9f63578ca702ddbf29e4c262898f0c9e0ba9af6b Mon Sep 17 00:00:00 2001 From: Ponshu Developer Date: Sat, 4 Apr 2026 23:02:52 +0900 Subject: [PATCH] chore: remove development phase markers and dead commented code - Remove Phase X / Phase D labels from inline comments and imports - Remove debugPrint calls from CustomPainter.paint() (called every frame) - Remove commented-out locale entries (fr, de) from main.dart and language_selector - Remove version header comments (v1.5 etc.) not needed in source No logic changes. flutter analyze: No issues found. --- lib/main.dart | 15 ++------- lib/providers/sake_list_provider.dart | 2 +- lib/screens/camera_screen.dart | 32 +++++++------------- lib/screens/features/brewery_map_screen.dart | 2 +- lib/screens/features/sommelier_screen.dart | 2 +- lib/screens/home_screen.dart | 4 +-- lib/screens/main_screen.dart | 3 -- lib/screens/soul_screen.dart | 2 -- lib/widgets/gamification/activity_stats.dart | 2 +- lib/widgets/settings/language_selector.dart | 3 -- 10 files changed, 20 insertions(+), 47 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index af6aedf..862b186 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -21,17 +21,11 @@ const bool isProVersion = bool.fromEnvironment('IS_PRO_VERSION', defaultValue: f void main() async { WidgetsFlutterBinding.ensureInitialized(); - // 🔍 DEBUG: Check IS_PRO_VERSION flag - debugPrint('🔍 IS_PRO_VERSION = $isProVersion'); - - // Initialize Hive await Hive.initFlutter(); - - // Register Adapters + Hive.registerAdapter(SakeItemAdapter()); Hive.registerAdapter(UserProfileAdapter()); Hive.registerAdapter(MenuSettingsAdapter()); - // Phase 0 New Adapters Hive.registerAdapter(DisplayDataAdapter()); Hive.registerAdapter(HiddenSpecsAdapter()); Hive.registerAdapter(UserDataAdapter()); @@ -95,11 +89,8 @@ class MyApp extends ConsumerWidget { GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ - Locale('ja'), // 日本語 - Locale('en'), // English - // Phase 2: フランス語・ドイツ語を追加予定 - // Locale('fr'), // Français - // Locale('de'), // Deutsch + Locale('ja'), + Locale('en'), ], navigatorObservers: [routeObserver], diff --git a/lib/providers/sake_list_provider.dart b/lib/providers/sake_list_provider.dart index 263b095..5a63e7c 100644 --- a/lib/providers/sake_list_provider.dart +++ b/lib/providers/sake_list_provider.dart @@ -3,7 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hive_flutter/hive_flutter.dart'; import '../models/sake_item.dart'; // SakeItem exports ItemType import 'filter_providers.dart'; -import 'theme_provider.dart'; // Phase D6: For isBusinessMode +import 'theme_provider.dart'; // 1. Raw List Stream final rawSakeListItemsProvider = StreamProvider>((ref) { diff --git a/lib/screens/camera_screen.dart b/lib/screens/camera_screen.dart index 1dbae26..c70e416 100644 --- a/lib/screens/camera_screen.dart +++ b/lib/screens/camera_screen.dart @@ -10,10 +10,10 @@ import 'package:uuid/uuid.dart'; import 'package:gal/gal.dart'; import '../services/gemini_service.dart'; -import '../services/image_compression_service.dart'; // Phase 4 Added +import '../services/image_compression_service.dart'; import '../services/gamification_service.dart'; // Badge check -import '../services/network_service.dart'; // Phase 1: Offline check -import '../services/draft_service.dart'; // Phase 1: Draft save +import '../services/network_service.dart'; +import '../services/draft_service.dart'; import '../widgets/analyzing_dialog.dart'; import '../models/sake_item.dart'; import '../theme/app_colors.dart'; @@ -42,13 +42,11 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr bool _isTakingPicture = false; DateTime? _quotaLockoutTime; - // Phase 3-B: Focus & Zoom double _minZoom = 1.0; double _maxZoom = 1.0; double _currentZoom = 1.0; - double _baseScale = 1.0; // For pinch reference - - // Phase 3-B2: Exposure + double _baseScale = 1.0; + double _minExposure = 0.0; double _maxExposure = 0.0; double _currentExposureOffset = 0.0; @@ -77,14 +75,10 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr _initializeControllerFuture = _controller!.initialize().then((_) async { if (!mounted) return; - // [Phase 3-B] Get Zoom Range - _minZoom = await _controller!.getMinZoomLevel(); + _minZoom = await _controller!.getMinZoomLevel(); _maxZoom = await _controller!.getMaxZoomLevel(); - // [Phase 3-B2] Get Exposure Range _minExposure = await _controller!.getMinExposureOffset(); _maxExposure = await _controller!.getMaxExposureOffset(); - - // [Phase 3-B] Set Auto Focus Mode await _controller!.setFocusMode(FocusMode.auto); setState(() {}); }); @@ -205,9 +199,7 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr await _initializeControllerFuture; final image = await _controller!.takePicture(); - // Save image locally (App Sandbox) final directory = await getApplicationDocumentsDirectory(); - // Phase 4 Improvement: Apply Compression (Target Max 1MB) // 1. Save temp raw file final tempPath = join(directory.path, '${const Uuid().v4()}_temp.jpg'); await image.saveTo(tempPath); @@ -270,8 +262,7 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr if (images.isNotEmpty && mounted) { // IF RETURN PATH Mode (Only supports one) if (widget.mode == CameraMode.returnPath) { - // Phase D3: Compress and persist gallery image - final directory = await getApplicationDocumentsDirectory(); + final directory = await getApplicationDocumentsDirectory(); final finalPath = join(directory.path, '${const Uuid().v4()}.jpg'); final compressedPath = await ImageCompressionService.compressForGemini( images.first.path, @@ -283,7 +274,6 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr return; } - // Phase D3: Compress and persist all gallery images to Documents directory final directory = await getApplicationDocumentsDirectory(); for (var img in images) { @@ -381,7 +371,6 @@ class _CameraScreenState extends ConsumerState with SingleTickerPr Future _analyzeImages() async { if (_capturedImages.isEmpty) return; - // Phase 1: オフライン検知 - Draft保存処理 final isOnline = await NetworkService.isOnline(); if (!isOnline) { // オフライン時: Draft として保存 @@ -950,9 +939,10 @@ class _ExposureSliderPainter extends CustomPainter { // minValue (e.g., -4.0) -> 0.0 (bottom) // 0.0 (center) -> 0.5 (middle) // maxValue (e.g., +4.0) -> 1.0 (top) - final normalized = (currentValue - minValue) / range; // Debug - debugPrint('CustomPainter: value=$currentValue, min=$minValue, max=$maxValue, range=$range, normalized=${normalized.toStringAsFixed(3)}'); // Map to Y coordinate: 0.0 (normalized) -> bottom, 1.0 (normalized) -> top - final knobY = (size.height - 20) * (1.0 - normalized) + 10; debugPrint(' -> knobY=${knobY.toStringAsFixed(1)} (height=${size.height})'); // Draw knob shadow + final normalized = (currentValue - minValue) / range; + // Map to Y coordinate: 0.0 (normalized) -> bottom, 1.0 (normalized) -> top + final knobY = (size.height - 20) * (1.0 - normalized) + 10; + // Draw knob shadow canvas.drawCircle(Offset(trackX, knobY), 7, knobShadowPaint); // Draw knob canvas.drawCircle(Offset(trackX, knobY), 6, knobPaint); diff --git a/lib/screens/features/brewery_map_screen.dart b/lib/screens/features/brewery_map_screen.dart index dca84ea..1aa09e5 100644 --- a/lib/screens/features/brewery_map_screen.dart +++ b/lib/screens/features/brewery_map_screen.dart @@ -9,7 +9,7 @@ import '../../widgets/map/prefecture_tile_map.dart'; import '../../theme/app_colors.dart'; import '../../models/maps/japan_map_data.dart'; import '../../providers/ui_experiment_provider.dart'; -import '../../models/schema/item_type.dart'; // Phase D4: For ItemType.sake filtering +import '../../models/schema/item_type.dart'; import '../../widgets/common/error_retry_widget.dart'; class BreweryMapScreen extends ConsumerStatefulWidget { diff --git a/lib/screens/features/sommelier_screen.dart b/lib/screens/features/sommelier_screen.dart index f70f107..13005d7 100644 --- a/lib/screens/features/sommelier_screen.dart +++ b/lib/screens/features/sommelier_screen.dart @@ -7,7 +7,7 @@ import 'package:share_plus/share_plus.dart'; import 'package:path_provider/path_provider.dart'; import '../../providers/sake_list_provider.dart'; import '../../services/shuko_diagnosis_service.dart'; -import '../../providers/theme_provider.dart'; // v1.1 Fix +import '../../providers/theme_provider.dart'; import '../../theme/app_colors.dart'; import '../../widgets/sake_radar_chart.dart'; import '../../widgets/contextual_help_icon.dart'; diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index 49ce5c8..fd22e89 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -8,7 +8,7 @@ import 'menu_creation_screen.dart'; import '../theme/app_colors.dart'; import '../providers/sake_list_provider.dart'; import '../providers/filter_providers.dart'; -import '../providers/menu_providers.dart'; // Phase 2-1 +import '../providers/menu_providers.dart'; import '../models/sake_item.dart'; import '../widgets/sake_search_delegate.dart'; import '../widgets/onboarding_dialog.dart'; @@ -22,7 +22,7 @@ import '../providers/ui_experiment_provider.dart'; // A/B Test import 'package:flutter_speed_dial/flutter_speed_dial.dart'; import 'package:lucide_icons/lucide_icons.dart'; import '../widgets/prefecture_filter_sheet.dart'; -import '../widgets/pending_analysis_banner.dart'; // Phase 1: Banner widget +import '../widgets/pending_analysis_banner.dart'; import '../widgets/common/error_retry_widget.dart'; // CR-006: NotifierProviderでオンボーディングチェック状態を管理(グローバル変数を削除) diff --git a/lib/screens/main_screen.dart b/lib/screens/main_screen.dart index 0bd7eea..7827522 100644 --- a/lib/screens/main_screen.dart +++ b/lib/screens/main_screen.dart @@ -130,9 +130,6 @@ class _MainScreenState extends ConsumerState { final isBusiness = userProfile.isBusinessMode; final t = Translations(userProfile.locale); // Translation helper - // 🔍 DEBUG: Check IS_PRO_VERSION flag - debugPrint('🔍 MainScreen: IS_PRO_VERSION = $isProVersion, isBusiness = $isBusiness'); - // Define Screens for each mode // Lite版のPro限定タブは表示されないようにダミー画面を配置 // (タップ時にダイアログで対応するため、画面遷移は発生しない) diff --git a/lib/screens/soul_screen.dart b/lib/screens/soul_screen.dart index 234f675..8047198 100644 --- a/lib/screens/soul_screen.dart +++ b/lib/screens/soul_screen.dart @@ -14,8 +14,6 @@ import '../widgets/gamification/activity_stats.dart'; import '../theme/app_colors.dart'; import '../services/mbti_types.dart'; // Needed for type title display -// v1.5 - class SoulScreen extends ConsumerStatefulWidget { const SoulScreen({super.key}); diff --git a/lib/widgets/gamification/activity_stats.dart b/lib/widgets/gamification/activity_stats.dart index 6af9b4e..17a3106 100644 --- a/lib/widgets/gamification/activity_stats.dart +++ b/lib/widgets/gamification/activity_stats.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lucide_icons/lucide_icons.dart'; import '../../providers/sake_list_provider.dart'; -import '../../models/schema/item_type.dart'; // Phase D5: For filtering set products +import '../../models/schema/item_type.dart'; class ActivityStats extends ConsumerWidget { diff --git a/lib/widgets/settings/language_selector.dart b/lib/widgets/settings/language_selector.dart index 10c18c6..5ef0ea6 100644 --- a/lib/widgets/settings/language_selector.dart +++ b/lib/widgets/settings/language_selector.dart @@ -26,9 +26,6 @@ class LanguageSelector extends ConsumerWidget { final languages = [ {'code': 'ja', 'name': '日本語', 'flag': '🇯🇵'}, {'code': 'en', 'name': 'English', 'flag': '🇺🇸'}, - // Phase 2: フランス語・ドイツ語を追加予定 - // {'code': 'fr', 'name': 'Français', 'flag': '🇫🇷'}, - // {'code': 'de', 'name': 'Deutsch', 'flag': '🇩🇪'}, ]; showDialog(