Skip to content

Commit

Permalink
release: 0.0.5(5) 버전 배포 (#30)
Browse files Browse the repository at this point in the history
release: 0.0.5(5) 버전 배포
  • Loading branch information
ZZANZU authored May 5, 2023
2 parents 225fd88 + b1d8cf2 commit 93e8e03
Show file tree
Hide file tree
Showing 14 changed files with 334 additions and 223 deletions.
7 changes: 5 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 4
versionName "0.0.4"
versionCode 5
versionName "0.0.5"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down Expand Up @@ -83,4 +83,7 @@ dependencies {

// Glide
implementation 'com.github.bumptech.glide:glide:4.15.1'

// Lottie
implementation 'com.airbnb.android:lottie:6.0.0'
}
10 changes: 9 additions & 1 deletion app/src/main/java/com/woozoo/menumonya/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
binding.locationYsBtn.setOnClickListener(this)
binding.feedbackIv.setOnClickListener(this)
binding.currentLocationBtn.setOnClickListener(this)
binding.loadingView.setOnClickListener { } // 로딩 화면 아래의 뷰에 대한 터치를 막기 위함

// 좌우로 item이 보이도록 설정
viewPager.apply {
Expand Down Expand Up @@ -94,7 +95,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
if (viewPager.adapter != null) {
viewPager.currentItem = event.markerIndex
} else {
viewModel.showLocationViewPager(event.location, event.markerIndex)
viewModel.showLocationViewPager(event.markerIndex)
}
}
is Event.ShowRestaurantView -> {
Expand Down Expand Up @@ -131,6 +132,13 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
binding.currentLocationTv.setTextColor(resources.getColor(R.color.colorSecondary))
binding.currentLocationIv.setColorFilter(resources.getColor(R.color.colorSecondary))
}
is Event.ShowLoading -> {
if (event.visibility) {
binding.loadingView.visibility = View.VISIBLE
} else {
binding.loadingView.visibility = View.GONE
}
}
}

override fun onStart() {
Expand Down
10 changes: 8 additions & 2 deletions app/src/main/java/com/woozoo/menumonya/MainViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ 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.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
Expand Down Expand Up @@ -116,7 +115,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
* 하단의 식당 정보 가로 스크롤 뷰를 표시함.
* - (중요) 지도에 마커를 표시하기 위한 식당 정보를 이미 fetch하였다는 전제 하에 작동함.
*/
fun showLocationViewPager(location: String, markerIndex: Int = -1) {
fun showLocationViewPager(markerIndex: Int = -1) {
if (mRestaurantInfoArray.size > 0) {
showRestaurantView(mRestaurantInfoArray, markerIndex)
}
Expand Down Expand Up @@ -185,6 +184,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
if (!isLocationPermissionAllowed()) {
requestLocationPermission()
} else {
showLoading(true)
requestLocationUpdateOnce(
locationManager,
LocationListener { location ->
Expand All @@ -195,6 +195,7 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
locationTrackingMode = LocationTrackingMode.Follow
}
moveToCurrentLocation()
showLoading(false)
})
}
}
Expand Down Expand Up @@ -227,6 +228,10 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
event(Event.MoveToCurrentLocation(""))
}

private fun showLoading(visibility: Boolean) {
event(Event.ShowLoading(visibility))
}

sealed class Event {
/**
* MainActivity에 전달할 이벤트를 이곳에 정
Expand All @@ -239,5 +244,6 @@ class MainViewModel(application: Application): AndroidViewModel(Application()) {
data class RequestLocationPermission(val data: String): Event()
data class ShowGpsPermissionAlert(val data: String): Event()
data class MoveToCurrentLocation(val data: String): Event()
data class ShowLoading(val visibility: Boolean): Event()
}
}
16 changes: 15 additions & 1 deletion app/src/main/java/com/woozoo/menumonya/RestaurantAdapter.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.woozoo.menumonya

import android.content.Context
import android.content.Intent
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
Expand All @@ -11,6 +13,7 @@ import com.woozoo.menumonya.Constants.Companion.GLIDE_IMAGE_SIZE_HEIGHT
import com.woozoo.menumonya.Constants.Companion.GLIDE_IMAGE_SIZE_WIDTH
import com.woozoo.menumonya.databinding.ItemRestaurantBinding
import com.woozoo.menumonya.model.Restaurant
import com.woozoo.menumonya.repository.RemoteConfigRepository

class RestaurantAdapter(private val restaurantInfoArray: ArrayList<Restaurant>, private val context: Context) :

Expand All @@ -27,17 +30,28 @@ class RestaurantAdapter(private val restaurantInfoArray: ArrayList<Restaurant>,
binding.restaurantLocationDescriptionTv.text = data.location.description

if (data.todayMenu.main != "") {
// (1) 메뉴 레이아웃 표시
binding.menuReportLayout.visibility = View.GONE
binding.restaurantMenuLayout.visibility = View.VISIBLE
binding.restaurantMenuMoreTv.visibility = View.VISIBLE
binding.restaurantMenuMoreTv.setOnClickListener {
// TODO: 다이얼로그 표시
val menuDialog = MenuDialog(context, data)
menuDialog.show()
}

binding.restaurantMenuMainTv.text = data.todayMenu.main.replace(",", ", ")
binding.restaurantMenuSideTv.text = data.todayMenu.side.replace(",", ", ")
binding.restaurantMenuDessertTv.text = data.todayMenu.dessert.replace(",", ", ")
} else {
// (2) 제보하기 레이아웃 표시
binding.menuReportLayout.visibility = View.VISIBLE
binding.restaurantMenuLayout.visibility = View.GONE
binding.restaurantMenuMoreTv.visibility = View.GONE
binding.menuReportBtn.setOnClickListener {
val menuReportUrl = RemoteConfigRepository.getReportMenuUrlConfig()
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(menuReportUrl))
context.startActivity(intent)
}
}

Glide.with(binding.root)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ 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 com.woozoo.menumonya.util.DateUtils.Companion.getTodayDate
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.tasks.await
import kotlinx.coroutines.withContext
Expand Down Expand Up @@ -36,7 +36,7 @@ object FireStoreRepository {
// 메뉴 정보 조회
val menu = getMenu(document.id)

val todayMenu = menu.date.get(DateUtils.getTodayDate())
val todayMenu = menu.date.get(getTodayDate())
if (todayMenu != null) restaurant.todayMenu = todayMenu

restaurantInfo.add(restaurant)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,10 @@ object RemoteConfigRepository {
remoteConfig.getString("FEEDBACK_URL_PROD")
}
}

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

return remoteConfig.getString("REPORT_MENU_URL")
}
}
9 changes: 3 additions & 6 deletions app/src/main/java/com/woozoo/menumonya/util/LocationUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,10 @@ class LocationUtils {
*/
@SuppressLint("MissingPermission")
fun requestLocationUpdateOnce(locationManager: LocationManager, listener: LocationListener) {
locationManager.requestLocationUpdates(
locationManager.requestSingleUpdate(
LocationManager.NETWORK_PROVIDER,
1000,
10f,
listener.apply {
locationManager.removeUpdates(this) // 위치 업데이트를 반복하지 않도록 리스너 제거
}
listener,
null
)
}
}
Expand Down
20 changes: 20 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,26 @@
android:layout_marginBottom="14dp"
/>

<!--로딩 화면(평상시에는 GONE)-->
<LinearLayout
android:id="@+id/loading_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:background="@color/blackTransparent"
android:gravity="center"
>

<com.airbnb.lottie.LottieAnimationView
android:layout_width="@dimen/current_location_loading_icon_size"
android:layout_height="@dimen/current_location_loading_icon_size"
app:lottie_rawRes="@raw/loading"
app:lottie_loop="true"
app:lottie_autoPlay="true"
/>

</LinearLayout>

</FrameLayout>

</LinearLayout>
Loading

0 comments on commit 93e8e03

Please sign in to comment.