From fc8466d5c3df98c98df92ba22684acce71630cd9 Mon Sep 17 00:00:00 2001 From: eld_master Date: Fri, 14 Feb 2025 14:59:17 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=A9=EC=84=A4=EC=A0=95=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EC=95=84=EC=9D=B4=ED=8F=B0=EC=97=90=EC=84=9C=EB=A7=8C=20?= =?UTF-8?q?=EC=95=88=EB=82=98=EC=98=A4=EB=8A=94=EA=B1=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=951=EC=B0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 4 +- lib/config/config.dart | 4 +- lib/dialogs/room_setting_dialog.dart | 100 ++++++++++++++++----------- pubspec.yaml | 2 +- 4 files changed, 66 insertions(+), 44 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index ec51727..26921f1 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -20,8 +20,8 @@ android { applicationId "com.allscore_app" minSdkVersion 23 targetSdkVersion 34 - versionCode 17 - versionName "1.0.17" + versionCode 18 + versionName "1.0.18" } signingConfigs { release { diff --git a/lib/config/config.dart b/lib/config/config.dart index 8168799..23e4413 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -6,9 +6,9 @@ class Config { // 실제 광고 단위 ID - ios // static const String realAdUnitId = 'ca-app-pub-6461991944599918/9704216771'; // 테스트 광고 단위 ID - // static const String adUnitId = 'ca-app-pub-3940256099942544/6300978111'; // 테스트 + static const String adUnitId = 'ca-app-pub-3940256099942544/6300978111'; // 테스트 // static const String adUnitId = 'ca-app-pub-6461991944599918/5107596297'; // android - static const String adUnitId = 'ca-app-pub-6461991944599918/9704216771'; // ios + // static const String adUnitId = 'ca-app-pub-6461991944599918/9704216771'; // ios // 서버 주소 static const String baseUrl = 'https://d2zcnlqji5t7mh.cloudfront.net'; // 이미지 업로드 주소 diff --git a/lib/dialogs/room_setting_dialog.dart b/lib/dialogs/room_setting_dialog.dart index 0650498..d3f0aba 100644 --- a/lib/dialogs/room_setting_dialog.dart +++ b/lib/dialogs/room_setting_dialog.dart @@ -40,7 +40,7 @@ class _RoomSettingModalState extends State { // Firebase Realtime Database reference (FRD 관련) late DatabaseReference _roomRef; - bool _isLoading = true; + bool _isLoading = false; // Distinguish if room is "private" or "team" (개인전인지 팀전인지) late bool isPrivateType; @@ -48,61 +48,83 @@ class _RoomSettingModalState extends State { @override void initState() { super.initState(); + + // roomInfo에서 직접 데이터 초기화 + final data = widget.roomInfo; + + // room_seq 설정 + roomSeq = int.tryParse('${data['room_seq'] ?? '0'}') ?? 0; // (1) room_seq roomSeq = int.tryParse('${widget.roomInfo['room_seq'] ?? '0'}') ?? 0; - - // (2) room type - final roomTypeStr = (widget.roomInfo['room_type'] ?? 'private').toString().toLowerCase(); - // if "private" => isPrivateType=true, else => isPrivateType=false + + // room type 설정 + final roomTypeStr = (data['room_type'] ?? 'private').toString().toLowerCase(); isPrivateType = (roomTypeStr == 'private'); + + // master 여부 설정 + isMaster = data['room_master_yn'] == 'Y'; + + // 나머지 필드들 설정 + roomTitle = data['room_title']?.toString() ?? ''; + roomIntro = data['room_intro']?.toString() ?? ''; + openYn = data['open_yn']?.toString() ?? 'Y'; + roomPw = data['room_pw']?.toString() ?? ''; + runningTime = _toInt(data['running_time'], 1); + numberOfPeople = _toInt(data['number_of_people'], 10); + scoreOpenRange = data['score_open_range']?.toString() ?? 'PRIVATE'; - // (3) firebase ref - final roomKey = 'korea-$roomSeq'; - _roomRef = FirebaseDatabase.instance.ref('rooms/$roomKey/roomInfo'); + // // (2) room type + // final roomTypeStr = (widget.roomInfo['room_type'] ?? 'private').toString().toLowerCase(); + // // if "private" => isPrivateType=true, else => isPrivateType=false + // isPrivateType = (roomTypeStr == 'private'); + + // // (3) firebase ref + // final roomKey = 'korea-$roomSeq'; + // _roomRef = FirebaseDatabase.instance.ref('rooms/$roomKey/roomInfo'); // (4) compare my_user_seq with master_user_seq + read roomInfo from FRD - _checkMasterAndFetchData(); + // _checkMasterAndFetchData(); } /// Load my_user_seq from local storage, /// then read roomInfo from FRD and update state /// (로컬스토리지에서 my_user_seq 불러오고 FRD에서 roomInfo 읽어서 state 업데이트) - Future _checkMasterAndFetchData() async { - final prefs = await SharedPreferences.getInstance(); - final myUserSeq = prefs.getInt('my_user_seq') ?? 0; + // Future _checkMasterAndFetchData() async { + // final prefs = await SharedPreferences.getInstance(); + // final myUserSeq = prefs.getInt('my_user_seq') ?? 0; - final snapshot = await _roomRef.get(); - if (!snapshot.exists) { - // No room info (방 정보 없음) - setState(() { - _isLoading = false; - isMaster = false; - roomTitle = 'No room info'; - // '방 정보 없음' - }); - return; - } + // final snapshot = await _roomRef.get(); + // if (!snapshot.exists) { + // // No room info (방 정보 없음) + // setState(() { + // _isLoading = false; + // isMaster = false; + // roomTitle = 'No room info'; + // // '방 정보 없음' + // }); + // return; + // } - final data = snapshot.value as Map? ?? {}; - // e.g. master_user_seq, open_yn, etc - final masterSeq = data['master_user_seq'] ?? 0; + // final data = snapshot.value as Map? ?? {}; + // // e.g. master_user_seq, open_yn, etc + // final masterSeq = data['master_user_seq'] ?? 0; - setState(() { - isMaster = (masterSeq.toString() == myUserSeq.toString()); + // setState(() { + // isMaster = (masterSeq.toString() == myUserSeq.toString()); - // fill fields (각 필드들) - roomTitle = data['room_title']?.toString() ?? ''; - roomIntro = data['room_intro']?.toString() ?? ''; - openYn = data['open_yn']?.toString() ?? 'Y'; - roomPw = data['room_pw']?.toString() ?? ''; - runningTime = _toInt(data['running_time'], 1); - numberOfPeople = _toInt(data['number_of_people'], 10); - scoreOpenRange = data['score_open_range']?.toString() ?? 'PRIVATE'; + // // fill fields (각 필드들) + // roomTitle = data['room_title']?.toString() ?? ''; + // roomIntro = data['room_intro']?.toString() ?? ''; + // openYn = data['open_yn']?.toString() ?? 'Y'; + // roomPw = data['room_pw']?.toString() ?? ''; + // runningTime = _toInt(data['running_time'], 1); + // numberOfPeople = _toInt(data['number_of_people'], 10); + // scoreOpenRange = data['score_open_range']?.toString() ?? 'PRIVATE'; - _isLoading = false; - }); - } + // _isLoading = false; + // }); + // } /// simple int conversion (단순 int 변환 유틸) int _toInt(dynamic val, int defaultVal) { diff --git a/pubspec.yaml b/pubspec.yaml index a590d10..4391cea 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: allscore_app description: "A new Flutter project." publish_to: 'none' -version: 1.0.17+17 +version: 1.0.18+18 environment: sdk: '>=3.5.3 <4.0.0' flutter: ">=3.16.0"