Skip to content

Commit

Permalink
release: 0.0.4(4) 버전 배포
Browse files Browse the repository at this point in the history
release: 0.0.4(4) 버전 배포
  • Loading branch information
ZZANZU authored May 3, 2023
2 parents d0e2c85 + d312137 commit 225fd88
Show file tree
Hide file tree
Showing 12 changed files with 66 additions and 64 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ android {
applicationId "com.woozoo.menumonya"
minSdk 24
targetSdk 33
versionCode 3
versionName "0.0.3"
versionCode 4
versionName "0.0.4"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
7 changes: 2 additions & 5 deletions app/src/main/java/com/woozoo/menumonya/Application.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ package com.woozoo.menumonya

import android.app.Application
import android.content.Context
import com.woozoo.menumonya.repository.FireStoreRepository
import com.woozoo.menumonya.repository.RemoteConfigRepository
import com.woozoo.menumonya.repository.RemoteConfigRepository.initializeRemoteConfig

class Application: Application() {

Expand All @@ -22,8 +21,6 @@ class Application: Application() {
override fun onCreate() {
super.onCreate()

// 종속 관계 때문에 초기화 순서 중요함
RemoteConfigRepository.initialize()
FireStoreRepository.initialize()
initializeRemoteConfig()
}
}
10 changes: 4 additions & 6 deletions app/src/main/java/com/woozoo/menumonya/MainViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ import com.woozoo.menumonya.Constants.Companion.LATLNG_YS
import com.woozoo.menumonya.Constants.Companion.MAP_DEFAULT_ZOOM
import com.woozoo.menumonya.Constants.Companion.MAP_MIN_ZOOM
import com.woozoo.menumonya.model.Restaurant
import com.woozoo.menumonya.repository.FireStoreRepository
import com.woozoo.menumonya.repository.FireStoreRepository.getRestaurantInLocation
import com.woozoo.menumonya.repository.RemoteConfigRepository
import com.woozoo.menumonya.repository.RemoteConfigRepository.getFeedbackUrlConfig
import com.woozoo.menumonya.util.LocationUtils.Companion.requestLocationUpdateOnce
import com.woozoo.menumonya.util.PermissionUtils.Companion.isGpsPermissionAllowed
import com.woozoo.menumonya.util.PermissionUtils.Companion.isLocationPermissionAllowed
Expand All @@ -38,9 +39,6 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
lateinit var naverMap: NaverMap
private var locationManager: LocationManager

private var firestoreRepository = FireStoreRepository.get()
private var remoteConfigRepository = RemoteConfigRepository.get()

private var mRestaurantInfoArray: ArrayList<Restaurant> = ArrayList()
private var markerList: ArrayList<Marker> = ArrayList()
private var selectedLocation: String = ""
Expand Down Expand Up @@ -133,7 +131,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
"역삼" -> moveCameraCoord(LATLNG_YS.latitude, LATLNG_YS.longitude)
}

mRestaurantInfoArray = firestoreRepository.getRestaurantInLocation(location)
mRestaurantInfoArray = getRestaurantInLocation(location)

setMarkers(mRestaurantInfoArray)
}
Expand Down Expand Up @@ -203,7 +201,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
}

fun getFeedbackUrl(): String {
return remoteConfigRepository.getFeedbackUrl()
return getFeedbackUrlConfig()
}

private fun showToast(text: String) {
Expand Down
14 changes: 12 additions & 2 deletions app/src/main/java/com/woozoo/menumonya/MenuDialog.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import com.woozoo.menumonya.databinding.DialogMenuBinding
import com.woozoo.menumonya.model.Restaurant

class MenuDialog(context: Context, val data: Restaurant) : Dialog(context) {
class MenuDialog(context: Context, val data: Restaurant) : Dialog(context, R.style.custom_style_dialog) {
private lateinit var binding: DialogMenuBinding

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

setDialogWidthMatchParent()

binding.restaurantMenuMainTv.text = data.todayMenu.main.replace(",", ", ")
binding.restaurantMenuSideTv.text = data.todayMenu.side.replace(",", ", ")
binding.restaurantMenuDessertTv.text = data.todayMenu.dessert.replace(",", ", ")
}


/**
* (#26)
* 커스텀 다이얼로그 특성상 xml에서 width, height에 MATCH_PARENT가 적용되지 않아 코드로 적용함.
*/
fun setDialogWidthMatchParent() {
val layoutParams = window?.attributes
layoutParams?.width = MATCH_PARENT
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,22 @@ import com.google.firebase.firestore.ktx.toObject
import com.google.firebase.ktx.Firebase
import com.woozoo.menumonya.model.Menu
import com.woozoo.menumonya.model.Restaurant
import com.woozoo.menumonya.repository.RemoteConfigRepository.getMenuCollectionNameConfig
import com.woozoo.menumonya.repository.RemoteConfigRepository.getRestaurantsCollectionNameConfig
import com.woozoo.menumonya.util.DateUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.tasks.await
import kotlinx.coroutines.withContext

class FireStoreRepository {
private val db = Firebase.firestore
private var remoteConfigRepository = RemoteConfigRepository.get()
object FireStoreRepository {

private lateinit var restaurantCollectionName: String
private lateinit var menuCollectionName: String

companion object {
private var instance: FireStoreRepository? = null

fun initialize() {
if (instance == null) {
instance = FireStoreRepository()
}
}

fun get(): FireStoreRepository {
return instance ?: throw java.lang.IllegalStateException("FireStoreRepository must be initialized")
}
}

suspend fun getRestaurantInLocation(location: String) = withContext(Dispatchers.IO) {
restaurantCollectionName = remoteConfigRepository.getRestaurantsCollectionName()
val db = Firebase.firestore

restaurantCollectionName = getRestaurantsCollectionNameConfig()

val restaurantInfo = ArrayList<Restaurant>()
val restaurantRef = db.collection(restaurantCollectionName)
Expand Down Expand Up @@ -65,7 +53,9 @@ class FireStoreRepository {
}

suspend fun getMenu(restaurantId: String) = withContext(Dispatchers.IO) {
menuCollectionName = remoteConfigRepository.getMenuCollectionName()
val db = Firebase.firestore

menuCollectionName = getMenuCollectionNameConfig()

var menu = Menu()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,20 @@ import com.woozoo.menumonya.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

class RemoteConfigRepository {
private val remoteConfig = FirebaseRemoteConfig.getInstance()
object RemoteConfigRepository {

companion object {
private var instance: RemoteConfigRepository? = null

fun initialize() {
if (instance == null) {
instance = RemoteConfigRepository()
}
}

fun get(): RemoteConfigRepository {
return instance ?: throw java.lang.IllegalStateException("RemoteConfigRepository must be initialized")
/**
* Firebase Remote Config 관련 초기화 작업
* - Application.kt의 onCreate()에서 호출함.
* - 해당 로직이 실행되지 않은 상태에서 getString()을 호출할 경우 오류가 발생함.
* - setDefaultAsnyc()가 호출되지 않았기 때문.
* - TODO : 추후 스플래시 화면이 생긴다면 호출 타이밍을 변경해야 함.
*/
fun initializeRemoteConfig() {
val remoteConfig = FirebaseRemoteConfig.getInstance()
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = REMOTE_CONFIG_FETCH_INTERVAL
}
}

private val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = REMOTE_CONFIG_FETCH_INTERVAL
}

init {
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
remoteConfig.setConfigSettingsAsync(configSettings)
remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
Expand All @@ -42,23 +34,29 @@ class RemoteConfigRepository {
}
}

suspend fun getRestaurantsCollectionName() = withContext(Dispatchers.IO) {
suspend fun getRestaurantsCollectionNameConfig() = withContext(Dispatchers.IO) {
val remoteConfig = FirebaseRemoteConfig.getInstance()

if (BuildConfig.DEBUG) {
remoteConfig.getString("RESTAURANT_COLLECTION_DEV")
} else {
remoteConfig.getString("RESTAURANT_COLLECTION_PROD")
}
}

suspend fun getMenuCollectionName() = withContext(Dispatchers.IO) {
suspend fun getMenuCollectionNameConfig() = withContext(Dispatchers.IO) {
val remoteConfig = FirebaseRemoteConfig.getInstance()

if (BuildConfig.DEBUG) {
remoteConfig.getString("MENU_COLLECTION_DEV")
} else {
remoteConfig.getString("MENU_COLLECTION_PROD")
}
}

fun getFeedbackUrl(): String {
fun getFeedbackUrlConfig(): String {
val remoteConfig = FirebaseRemoteConfig.getInstance()

return if (BuildConfig.DEBUG) {
remoteConfig.getString("FEEDBACK_URL_DEV")
} else {
Expand Down
6 changes: 2 additions & 4 deletions app/src/main/res/drawable/menu_dialog_background.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="10dp"
android:insetTop="10dp"
android:insetRight="10dp"
android:insetBottom="10dp"
android:insetLeft="14dp"
android:insetRight="14dp"
>
<shape>
<solid android:color="@color/white"/>
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/res/layout/dialog_menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/menu_dialog_background"
android:padding="20dp"
android:layout_margin="10dp"
>

<LinearLayout
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/layout/item_restaurant.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/restaurant_info_padding_size"
android:background="@color/white"
>

<!--메뉴 레이아웃-->
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values-night/themes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@
<!-- Customize your theme here. -->
<item name="windowNoTitle">true</item>
</style>
<style name="custom_style_dialog" parent="Theme.AppCompat.Dialog">
<item name="android:layout_marginStart">4dp</item>
<item name="android:layout_marginEnd">4dp</item>
</style>
</resources>
4 changes: 4 additions & 0 deletions app/src/main/res/values/themes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@
<!-- Customize your theme here. -->
<item name="windowNoTitle">true</item>
</style>
<style name="custom_style_dialog" parent="Theme.AppCompat.Dialog">
<item name="android:layout_marginStart">4dp</item>
<item name="android:layout_marginEnd">4dp</item>
</style>
</resources>
6 changes: 5 additions & 1 deletion app/src/main/res/xml/remote_config_defaults.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<defaults>
<entry>
<key>FEEDBACK_URL</key>
<key>FEEDBACK_URL_DEV</key>
<value>https://bit.ly/3oDijQp</value>
</entry>
<entry>
<key>FEEDBACK_URL_PROD</key>
<value>https://bit.ly/3oDijQp</value>
</entry>
<entry>
Expand Down

0 comments on commit 225fd88

Please sign in to comment.