Skip to content

Commit 225fd88

Browse files
authored
release: 0.0.4(4) 버전 배포
release: 0.0.4(4) 버전 배포
2 parents d0e2c85 + d312137 commit 225fd88

File tree

12 files changed

+66
-64
lines changed

12 files changed

+66
-64
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
applicationId "com.woozoo.menumonya"
1717
minSdk 24
1818
targetSdk 33
19-
versionCode 3
20-
versionName "0.0.3"
19+
versionCode 4
20+
versionName "0.0.4"
2121

2222
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2323
}

app/src/main/java/com/woozoo/menumonya/Application.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package com.woozoo.menumonya
22

33
import android.app.Application
44
import android.content.Context
5-
import com.woozoo.menumonya.repository.FireStoreRepository
6-
import com.woozoo.menumonya.repository.RemoteConfigRepository
5+
import com.woozoo.menumonya.repository.RemoteConfigRepository.initializeRemoteConfig
76

87
class Application: Application() {
98

@@ -22,8 +21,6 @@ class Application: Application() {
2221
override fun onCreate() {
2322
super.onCreate()
2423

25-
// 종속 관계 때문에 초기화 순서 중요함
26-
RemoteConfigRepository.initialize()
27-
FireStoreRepository.initialize()
24+
initializeRemoteConfig()
2825
}
2926
}

app/src/main/java/com/woozoo/menumonya/MainViewModel.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ import com.woozoo.menumonya.Constants.Companion.LATLNG_YS
1919
import com.woozoo.menumonya.Constants.Companion.MAP_DEFAULT_ZOOM
2020
import com.woozoo.menumonya.Constants.Companion.MAP_MIN_ZOOM
2121
import com.woozoo.menumonya.model.Restaurant
22-
import com.woozoo.menumonya.repository.FireStoreRepository
22+
import com.woozoo.menumonya.repository.FireStoreRepository.getRestaurantInLocation
2323
import com.woozoo.menumonya.repository.RemoteConfigRepository
24+
import com.woozoo.menumonya.repository.RemoteConfigRepository.getFeedbackUrlConfig
2425
import com.woozoo.menumonya.util.LocationUtils.Companion.requestLocationUpdateOnce
2526
import com.woozoo.menumonya.util.PermissionUtils.Companion.isGpsPermissionAllowed
2627
import com.woozoo.menumonya.util.PermissionUtils.Companion.isLocationPermissionAllowed
@@ -38,9 +39,6 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
3839
lateinit var naverMap: NaverMap
3940
private var locationManager: LocationManager
4041

41-
private var firestoreRepository = FireStoreRepository.get()
42-
private var remoteConfigRepository = RemoteConfigRepository.get()
43-
4442
private var mRestaurantInfoArray: ArrayList<Restaurant> = ArrayList()
4543
private var markerList: ArrayList<Marker> = ArrayList()
4644
private var selectedLocation: String = ""
@@ -133,7 +131,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
133131
"역삼" -> moveCameraCoord(LATLNG_YS.latitude, LATLNG_YS.longitude)
134132
}
135133

136-
mRestaurantInfoArray = firestoreRepository.getRestaurantInLocation(location)
134+
mRestaurantInfoArray = getRestaurantInLocation(location)
137135

138136
setMarkers(mRestaurantInfoArray)
139137
}
@@ -203,7 +201,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
203201
}
204202

205203
fun getFeedbackUrl(): String {
206-
return remoteConfigRepository.getFeedbackUrl()
204+
return getFeedbackUrlConfig()
207205
}
208206

209207
private fun showToast(text: String) {

app/src/main/java/com/woozoo/menumonya/MenuDialog.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import android.content.Context
55
import android.graphics.Color
66
import android.graphics.drawable.ColorDrawable
77
import android.os.Bundle
8+
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
89
import com.woozoo.menumonya.databinding.DialogMenuBinding
910
import com.woozoo.menumonya.model.Restaurant
1011

11-
class MenuDialog(context: Context, val data: Restaurant) : Dialog(context) {
12+
class MenuDialog(context: Context, val data: Restaurant) : Dialog(context, R.style.custom_style_dialog) {
1213
private lateinit var binding: DialogMenuBinding
1314

1415
override fun onCreate(savedInstanceState: Bundle?) {
@@ -18,10 +19,19 @@ class MenuDialog(context: Context, val data: Restaurant) : Dialog(context) {
1819
binding = DialogMenuBinding.inflate(layoutInflater)
1920
setContentView(binding.root)
2021

22+
setDialogWidthMatchParent()
23+
2124
binding.restaurantMenuMainTv.text = data.todayMenu.main.replace(",", ", ")
2225
binding.restaurantMenuSideTv.text = data.todayMenu.side.replace(",", ", ")
2326
binding.restaurantMenuDessertTv.text = data.todayMenu.dessert.replace(",", ", ")
2427
}
2528

26-
29+
/**
30+
* (#26)
31+
* 커스텀 다이얼로그 특성상 xml에서 width, height에 MATCH_PARENT가 적용되지 않아 코드로 적용함.
32+
*/
33+
fun setDialogWidthMatchParent() {
34+
val layoutParams = window?.attributes
35+
layoutParams?.width = MATCH_PARENT
36+
}
2737
}

app/src/main/java/com/woozoo/menumonya/repository/FireStoreRepository.kt

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,22 @@ import com.google.firebase.firestore.ktx.toObject
55
import com.google.firebase.ktx.Firebase
66
import com.woozoo.menumonya.model.Menu
77
import com.woozoo.menumonya.model.Restaurant
8+
import com.woozoo.menumonya.repository.RemoteConfigRepository.getMenuCollectionNameConfig
9+
import com.woozoo.menumonya.repository.RemoteConfigRepository.getRestaurantsCollectionNameConfig
810
import com.woozoo.menumonya.util.DateUtils
911
import kotlinx.coroutines.Dispatchers
1012
import kotlinx.coroutines.tasks.await
1113
import kotlinx.coroutines.withContext
1214

13-
class FireStoreRepository {
14-
private val db = Firebase.firestore
15-
private var remoteConfigRepository = RemoteConfigRepository.get()
15+
object FireStoreRepository {
1616

1717
private lateinit var restaurantCollectionName: String
1818
private lateinit var menuCollectionName: String
1919

20-
companion object {
21-
private var instance: FireStoreRepository? = null
22-
23-
fun initialize() {
24-
if (instance == null) {
25-
instance = FireStoreRepository()
26-
}
27-
}
28-
29-
fun get(): FireStoreRepository {
30-
return instance ?: throw java.lang.IllegalStateException("FireStoreRepository must be initialized")
31-
}
32-
}
33-
3420
suspend fun getRestaurantInLocation(location: String) = withContext(Dispatchers.IO) {
35-
restaurantCollectionName = remoteConfigRepository.getRestaurantsCollectionName()
21+
val db = Firebase.firestore
22+
23+
restaurantCollectionName = getRestaurantsCollectionNameConfig()
3624

3725
val restaurantInfo = ArrayList<Restaurant>()
3826
val restaurantRef = db.collection(restaurantCollectionName)
@@ -65,7 +53,9 @@ class FireStoreRepository {
6553
}
6654

6755
suspend fun getMenu(restaurantId: String) = withContext(Dispatchers.IO) {
68-
menuCollectionName = remoteConfigRepository.getMenuCollectionName()
56+
val db = Firebase.firestore
57+
58+
menuCollectionName = getMenuCollectionNameConfig()
6959

7060
var menu = Menu()
7161

app/src/main/java/com/woozoo/menumonya/repository/RemoteConfigRepository.kt

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,20 @@ import com.woozoo.menumonya.R
99
import kotlinx.coroutines.Dispatchers
1010
import kotlinx.coroutines.withContext
1111

12-
class RemoteConfigRepository {
13-
private val remoteConfig = FirebaseRemoteConfig.getInstance()
12+
object RemoteConfigRepository {
1413

15-
companion object {
16-
private var instance: RemoteConfigRepository? = null
17-
18-
fun initialize() {
19-
if (instance == null) {
20-
instance = RemoteConfigRepository()
21-
}
22-
}
23-
24-
fun get(): RemoteConfigRepository {
25-
return instance ?: throw java.lang.IllegalStateException("RemoteConfigRepository must be initialized")
14+
/**
15+
* Firebase Remote Config 관련 초기화 작업
16+
* - Application.kt의 onCreate()에서 호출함.
17+
* - 해당 로직이 실행되지 않은 상태에서 getString()을 호출할 경우 오류가 발생함.
18+
* - setDefaultAsnyc()가 호출되지 않았기 때문.
19+
* - TODO : 추후 스플래시 화면이 생긴다면 호출 타이밍을 변경해야 함.
20+
*/
21+
fun initializeRemoteConfig() {
22+
val remoteConfig = FirebaseRemoteConfig.getInstance()
23+
val configSettings = remoteConfigSettings {
24+
minimumFetchIntervalInSeconds = REMOTE_CONFIG_FETCH_INTERVAL
2625
}
27-
}
28-
29-
private val configSettings = remoteConfigSettings {
30-
minimumFetchIntervalInSeconds = REMOTE_CONFIG_FETCH_INTERVAL
31-
}
32-
33-
init {
3426
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
3527
remoteConfig.setConfigSettingsAsync(configSettings)
3628
remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
@@ -42,23 +34,29 @@ class RemoteConfigRepository {
4234
}
4335
}
4436

45-
suspend fun getRestaurantsCollectionName() = withContext(Dispatchers.IO) {
37+
suspend fun getRestaurantsCollectionNameConfig() = withContext(Dispatchers.IO) {
38+
val remoteConfig = FirebaseRemoteConfig.getInstance()
39+
4640
if (BuildConfig.DEBUG) {
4741
remoteConfig.getString("RESTAURANT_COLLECTION_DEV")
4842
} else {
4943
remoteConfig.getString("RESTAURANT_COLLECTION_PROD")
5044
}
5145
}
5246

53-
suspend fun getMenuCollectionName() = withContext(Dispatchers.IO) {
47+
suspend fun getMenuCollectionNameConfig() = withContext(Dispatchers.IO) {
48+
val remoteConfig = FirebaseRemoteConfig.getInstance()
49+
5450
if (BuildConfig.DEBUG) {
5551
remoteConfig.getString("MENU_COLLECTION_DEV")
5652
} else {
5753
remoteConfig.getString("MENU_COLLECTION_PROD")
5854
}
5955
}
6056

61-
fun getFeedbackUrl(): String {
57+
fun getFeedbackUrlConfig(): String {
58+
val remoteConfig = FirebaseRemoteConfig.getInstance()
59+
6260
return if (BuildConfig.DEBUG) {
6361
remoteConfig.getString("FEEDBACK_URL_DEV")
6462
} else {

app/src/main/res/drawable/menu_dialog_background.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<inset xmlns:android="http://schemas.android.com/apk/res/android"
3-
android:insetLeft="10dp"
4-
android:insetTop="10dp"
5-
android:insetRight="10dp"
6-
android:insetBottom="10dp"
3+
android:insetLeft="14dp"
4+
android:insetRight="14dp"
75
>
86
<shape>
97
<solid android:color="@color/white"/>

app/src/main/res/layout/dialog_menu.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
android:layout_width="match_parent"
55
android:layout_height="wrap_content"
66
android:background="@drawable/menu_dialog_background"
7-
android:padding="20dp"
8-
android:layout_margin="10dp"
97
>
108

119
<LinearLayout

app/src/main/res/layout/item_restaurant.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
android:layout_width="match_parent"
1616
android:layout_height="match_parent"
1717
android:padding="@dimen/restaurant_info_padding_size"
18+
android:background="@color/white"
1819
>
1920

2021
<!--메뉴 레이아웃-->

app/src/main/res/values-night/themes.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,8 @@
1515
<!-- Customize your theme here. -->
1616
<item name="windowNoTitle">true</item>
1717
</style>
18+
<style name="custom_style_dialog" parent="Theme.AppCompat.Dialog">
19+
<item name="android:layout_marginStart">4dp</item>
20+
<item name="android:layout_marginEnd">4dp</item>
21+
</style>
1822
</resources>

0 commit comments

Comments
 (0)