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.
This commit is contained in:
Ponshu Developer 2026-04-04 23:02:52 +09:00
parent da05455e7c
commit 9f63578ca7
10 changed files with 20 additions and 47 deletions

View File

@ -21,17 +21,11 @@ const bool isProVersion = bool.fromEnvironment('IS_PRO_VERSION', defaultValue: f
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
// 🔍 DEBUG: Check IS_PRO_VERSION flag
debugPrint('🔍 IS_PRO_VERSION = $isProVersion');
// Initialize Hive
await Hive.initFlutter(); await Hive.initFlutter();
// Register Adapters
Hive.registerAdapter(SakeItemAdapter()); Hive.registerAdapter(SakeItemAdapter());
Hive.registerAdapter(UserProfileAdapter()); Hive.registerAdapter(UserProfileAdapter());
Hive.registerAdapter(MenuSettingsAdapter()); Hive.registerAdapter(MenuSettingsAdapter());
// Phase 0 New Adapters
Hive.registerAdapter(DisplayDataAdapter()); Hive.registerAdapter(DisplayDataAdapter());
Hive.registerAdapter(HiddenSpecsAdapter()); Hive.registerAdapter(HiddenSpecsAdapter());
Hive.registerAdapter(UserDataAdapter()); Hive.registerAdapter(UserDataAdapter());
@ -95,11 +89,8 @@ class MyApp extends ConsumerWidget {
GlobalCupertinoLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
], ],
supportedLocales: const [ supportedLocales: const [
Locale('ja'), // Locale('ja'),
Locale('en'), // English Locale('en'),
// Phase 2:
// Locale('fr'), // Français
// Locale('de'), // Deutsch
], ],
navigatorObservers: [routeObserver], navigatorObservers: [routeObserver],

View File

@ -3,7 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:hive_flutter/hive_flutter.dart'; import 'package:hive_flutter/hive_flutter.dart';
import '../models/sake_item.dart'; // SakeItem exports ItemType import '../models/sake_item.dart'; // SakeItem exports ItemType
import 'filter_providers.dart'; import 'filter_providers.dart';
import 'theme_provider.dart'; // Phase D6: For isBusinessMode import 'theme_provider.dart';
// 1. Raw List Stream // 1. Raw List Stream
final rawSakeListItemsProvider = StreamProvider<List<SakeItem>>((ref) { final rawSakeListItemsProvider = StreamProvider<List<SakeItem>>((ref) {

View File

@ -10,10 +10,10 @@ import 'package:uuid/uuid.dart';
import 'package:gal/gal.dart'; import 'package:gal/gal.dart';
import '../services/gemini_service.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/gamification_service.dart'; // Badge check
import '../services/network_service.dart'; // Phase 1: Offline check import '../services/network_service.dart';
import '../services/draft_service.dart'; // Phase 1: Draft save import '../services/draft_service.dart';
import '../widgets/analyzing_dialog.dart'; import '../widgets/analyzing_dialog.dart';
import '../models/sake_item.dart'; import '../models/sake_item.dart';
import '../theme/app_colors.dart'; import '../theme/app_colors.dart';
@ -42,13 +42,11 @@ class _CameraScreenState extends ConsumerState<CameraScreen> with SingleTickerPr
bool _isTakingPicture = false; bool _isTakingPicture = false;
DateTime? _quotaLockoutTime; DateTime? _quotaLockoutTime;
// Phase 3-B: Focus & Zoom
double _minZoom = 1.0; double _minZoom = 1.0;
double _maxZoom = 1.0; double _maxZoom = 1.0;
double _currentZoom = 1.0; double _currentZoom = 1.0;
double _baseScale = 1.0; // For pinch reference double _baseScale = 1.0;
// Phase 3-B2: Exposure
double _minExposure = 0.0; double _minExposure = 0.0;
double _maxExposure = 0.0; double _maxExposure = 0.0;
double _currentExposureOffset = 0.0; double _currentExposureOffset = 0.0;
@ -77,14 +75,10 @@ class _CameraScreenState extends ConsumerState<CameraScreen> with SingleTickerPr
_initializeControllerFuture = _controller!.initialize().then((_) async { _initializeControllerFuture = _controller!.initialize().then((_) async {
if (!mounted) return; if (!mounted) return;
// [Phase 3-B] Get Zoom Range _minZoom = await _controller!.getMinZoomLevel();
_minZoom = await _controller!.getMinZoomLevel();
_maxZoom = await _controller!.getMaxZoomLevel(); _maxZoom = await _controller!.getMaxZoomLevel();
// [Phase 3-B2] Get Exposure Range
_minExposure = await _controller!.getMinExposureOffset(); _minExposure = await _controller!.getMinExposureOffset();
_maxExposure = await _controller!.getMaxExposureOffset(); _maxExposure = await _controller!.getMaxExposureOffset();
// [Phase 3-B] Set Auto Focus Mode
await _controller!.setFocusMode(FocusMode.auto); await _controller!.setFocusMode(FocusMode.auto);
setState(() {}); setState(() {});
}); });
@ -205,9 +199,7 @@ class _CameraScreenState extends ConsumerState<CameraScreen> with SingleTickerPr
await _initializeControllerFuture; await _initializeControllerFuture;
final image = await _controller!.takePicture(); final image = await _controller!.takePicture();
// Save image locally (App Sandbox)
final directory = await getApplicationDocumentsDirectory(); final directory = await getApplicationDocumentsDirectory();
// Phase 4 Improvement: Apply Compression (Target Max 1MB)
// 1. Save temp raw file // 1. Save temp raw file
final tempPath = join(directory.path, '${const Uuid().v4()}_temp.jpg'); final tempPath = join(directory.path, '${const Uuid().v4()}_temp.jpg');
await image.saveTo(tempPath); await image.saveTo(tempPath);
@ -270,8 +262,7 @@ class _CameraScreenState extends ConsumerState<CameraScreen> with SingleTickerPr
if (images.isNotEmpty && mounted) { if (images.isNotEmpty && mounted) {
// IF RETURN PATH Mode (Only supports one) // IF RETURN PATH Mode (Only supports one)
if (widget.mode == CameraMode.returnPath) { 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 finalPath = join(directory.path, '${const Uuid().v4()}.jpg');
final compressedPath = await ImageCompressionService.compressForGemini( final compressedPath = await ImageCompressionService.compressForGemini(
images.first.path, images.first.path,
@ -283,7 +274,6 @@ class _CameraScreenState extends ConsumerState<CameraScreen> with SingleTickerPr
return; return;
} }
// Phase D3: Compress and persist all gallery images to Documents directory
final directory = await getApplicationDocumentsDirectory(); final directory = await getApplicationDocumentsDirectory();
for (var img in images) { for (var img in images) {
@ -381,7 +371,6 @@ class _CameraScreenState extends ConsumerState<CameraScreen> with SingleTickerPr
Future<void> _analyzeImages() async { Future<void> _analyzeImages() async {
if (_capturedImages.isEmpty) return; if (_capturedImages.isEmpty) return;
// Phase 1: - Draft保存処理
final isOnline = await NetworkService.isOnline(); final isOnline = await NetworkService.isOnline();
if (!isOnline) { if (!isOnline) {
// : Draft // : Draft
@ -950,9 +939,10 @@ class _ExposureSliderPainter extends CustomPainter {
// minValue (e.g., -4.0) -> 0.0 (bottom) // minValue (e.g., -4.0) -> 0.0 (bottom)
// 0.0 (center) -> 0.5 (middle) // 0.0 (center) -> 0.5 (middle)
// maxValue (e.g., +4.0) -> 1.0 (top) // maxValue (e.g., +4.0) -> 1.0 (top)
final normalized = (currentValue - minValue) / range; // Debug final normalized = (currentValue - minValue) / range;
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 // 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 knobY = (size.height - 20) * (1.0 - normalized) + 10;
// Draw knob shadow
canvas.drawCircle(Offset(trackX, knobY), 7, knobShadowPaint); canvas.drawCircle(Offset(trackX, knobY), 7, knobShadowPaint);
// Draw knob // Draw knob
canvas.drawCircle(Offset(trackX, knobY), 6, knobPaint); canvas.drawCircle(Offset(trackX, knobY), 6, knobPaint);

View File

@ -9,7 +9,7 @@ import '../../widgets/map/prefecture_tile_map.dart';
import '../../theme/app_colors.dart'; import '../../theme/app_colors.dart';
import '../../models/maps/japan_map_data.dart'; import '../../models/maps/japan_map_data.dart';
import '../../providers/ui_experiment_provider.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'; import '../../widgets/common/error_retry_widget.dart';
class BreweryMapScreen extends ConsumerStatefulWidget { class BreweryMapScreen extends ConsumerStatefulWidget {

View File

@ -7,7 +7,7 @@ import 'package:share_plus/share_plus.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import '../../providers/sake_list_provider.dart'; import '../../providers/sake_list_provider.dart';
import '../../services/shuko_diagnosis_service.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 '../../theme/app_colors.dart';
import '../../widgets/sake_radar_chart.dart'; import '../../widgets/sake_radar_chart.dart';
import '../../widgets/contextual_help_icon.dart'; import '../../widgets/contextual_help_icon.dart';

View File

@ -8,7 +8,7 @@ import 'menu_creation_screen.dart';
import '../theme/app_colors.dart'; import '../theme/app_colors.dart';
import '../providers/sake_list_provider.dart'; import '../providers/sake_list_provider.dart';
import '../providers/filter_providers.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 '../models/sake_item.dart';
import '../widgets/sake_search_delegate.dart'; import '../widgets/sake_search_delegate.dart';
import '../widgets/onboarding_dialog.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:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:lucide_icons/lucide_icons.dart'; import 'package:lucide_icons/lucide_icons.dart';
import '../widgets/prefecture_filter_sheet.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'; import '../widgets/common/error_retry_widget.dart';
// CR-006: NotifierProviderでオンボーディングチェック状態を管理 // CR-006: NotifierProviderでオンボーディングチェック状態を管理

View File

@ -130,9 +130,6 @@ class _MainScreenState extends ConsumerState<MainScreen> {
final isBusiness = userProfile.isBusinessMode; final isBusiness = userProfile.isBusinessMode;
final t = Translations(userProfile.locale); // Translation helper 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 // Define Screens for each mode
// Lite版のPro限定タブは表示されないようにダミー画面を配置 // Lite版のPro限定タブは表示されないようにダミー画面を配置
// //

View File

@ -14,8 +14,6 @@ import '../widgets/gamification/activity_stats.dart';
import '../theme/app_colors.dart'; import '../theme/app_colors.dart';
import '../services/mbti_types.dart'; // Needed for type title display import '../services/mbti_types.dart'; // Needed for type title display
// v1.5
class SoulScreen extends ConsumerStatefulWidget { class SoulScreen extends ConsumerStatefulWidget {
const SoulScreen({super.key}); const SoulScreen({super.key});

View File

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:lucide_icons/lucide_icons.dart'; import 'package:lucide_icons/lucide_icons.dart';
import '../../providers/sake_list_provider.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 { class ActivityStats extends ConsumerWidget {

View File

@ -26,9 +26,6 @@ class LanguageSelector extends ConsumerWidget {
final languages = [ final languages = [
{'code': 'ja', 'name': '日本語', 'flag': '🇯🇵'}, {'code': 'ja', 'name': '日本語', 'flag': '🇯🇵'},
{'code': 'en', 'name': 'English', 'flag': '🇺🇸'}, {'code': 'en', 'name': 'English', 'flag': '🇺🇸'},
// Phase 2:
// {'code': 'fr', 'name': 'Français', 'flag': '🇫🇷'},
// {'code': 'de', 'name': 'Deutsch', 'flag': '🇩🇪'},
]; ];
showDialog( showDialog(