From 2d6d08ca0092a96fc0f77b512856cfd0b182a59d Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Sun, 9 Jul 2023 17:54:48 +0900 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=EA=B5=AC=EA=B8=80=20=EC=A7=80?= =?UTF-8?q?=EB=8F=84=20API=EB=A1=9C=20=EC=88=98=EC=A0=95=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 +++ .../android/ui/infopage/InfoActivity_Dodam.kt | 4 ++ .../android/ui/infopage/InfoActivity_Food.kt | 4 ++ .../android/ui/infopage/InfoActivity_Gisik.kt | 58 +++++++++++++++---- .../ui/infopage/InfoActivity_Haksik.kt | 4 ++ .../ui/infopage/InfoActivity_Kitchen.kt | 4 ++ .../android/ui/infopage/InfoActivity_Snack.kt | 4 ++ .../main/res/layout/activity_info_gisik.xml | 4 +- 8 files changed, 76 insertions(+), 14 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2e728541..fc8220e6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,6 +8,7 @@ Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def APP_KEY = properties.getProperty('APP_KEY') def BASE_URL = properties.getProperty('baseurl') +def GOOGLE_APP_KEY = properties.getProperty('GOOGLE_APP_KEY') android { @@ -26,6 +27,9 @@ android { buildConfigField "String", "APP_KEY", properties['APP_KEY'] manifestPlaceholders = [APP_KEY : APP_KEY] + buildConfigField "String", "GOOGLE_APP_KEY", properties['GOOGLE_APP_KEY'] + manifestPlaceholders = [GOOGLE_APP_KEY : GOOGLE_APP_KEY] + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -71,6 +75,10 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation files('libs/libDaumMapAndroid.jar') + // google map + implementation( 'com.google.android.gms:play-services-maps:18.1.0') + implementation( 'com.google.android.gms:play-services-location:21.0.1') + //retrofit2 - 서버통신 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Dodam.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Dodam.kt index 2ee6e558..51b0f7c1 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Dodam.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Dodam.kt @@ -90,4 +90,8 @@ class InfoActivity_Dodam : AppCompatActivity() { private fun getNonFixed() { } + + override fun finish() { + super.finish() + } } diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Food.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Food.kt index ee6d815a..07e5b100 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Food.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Food.kt @@ -85,4 +85,8 @@ class InfoActivity_Food : AppCompatActivity() { private fun getNonFixed() { } + + override fun finish() { + super.finish() + } } diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt index 8419f09d..e3ca7606 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt @@ -16,18 +16,22 @@ import com.eatssu.android.data.service.InfoService import com.eatssu.android.data.service.MenuService import com.eatssu.android.data.service.UserService import com.eatssu.android.databinding.ActivityInfoGisikBinding -import net.daum.mf.map.api.MapPOIItem -import net.daum.mf.map.api.MapPoint -import net.daum.mf.map.api.MapView +import com.google.android.gms.maps.* import retrofit2.Call import retrofit2.Callback import retrofit2.Response import retrofit2.Retrofit +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Marker +import com.google.android.gms.maps.model.MarkerOptions; -class InfoActivity_Gisik : AppCompatActivity() { +class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { private lateinit var viewBinding: ActivityInfoGisikBinding lateinit var retrofit: Retrofit private lateinit var infoService: InfoService + private lateinit var mapView: MapView + private lateinit var googleMap: GoogleMap + private var currentMarker: Marker? = null @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { @@ -35,17 +39,24 @@ class InfoActivity_Gisik : AppCompatActivity() { viewBinding = ActivityInfoGisikBinding.inflate(layoutInflater) setContentView(viewBinding.root) + this.mapView = viewBinding.btnMap + mapView.onCreate(savedInstanceState) + mapView.getMapAsync(this@InfoActivity_Gisik) + infoService = RetrofitImpl.retrofit.create(InfoService::class.java) - val mapview = MapView(this); - val mapViewContainer = viewBinding.btnMap - mapViewContainer.addView(mapview) + getRestaurantInfo(RestaurantType.DOMITORY) + + } + + override fun onMapReady(googleMap: GoogleMap) { + this.googleMap = googleMap // 중심점 변경 - 레지던스홀 - mapview.setMapCenterPoint(MapPoint.mapPointWithGeoCoord(37.495488,126.959173), true); - //mapview.zoomIn(true) + currentMarker = setupMarker(LatLngEntity(37.495488,126.959173)) + currentMarker?.showInfoWindow() - val marker = MapPOIItem() + /*val marker = MapPOIItem() marker.apply { itemName = "레지던스홀" // 마커 이름 mapPoint = MapPoint.mapPointWithGeoCoord(37.495488,126.959173) // 좌표 @@ -53,12 +64,29 @@ class InfoActivity_Gisik : AppCompatActivity() { isCustomImageAutoscale = false // 커스텀 마커 이미지 크기 자동 조정 setCustomImageAnchor(0.5f, 1.0f) // 마커 이미지 기준점 } - mapview.addPOIItem(marker) + mapview.addPOIItem(marker)*/ + } - getRestaurantInfo(RestaurantType.DOMITORY) + private fun setupMarker(locationLatLngEntity: LatLngEntity): Marker? { + + val positionLatLng = LatLng(locationLatLngEntity.latitude!!,locationLatLngEntity.longitude!!) + val markerOption = MarkerOptions().apply { + position(positionLatLng) + title("위치") + snippet("레지던스홀 위치") + } + + googleMap.mapType = GoogleMap.MAP_TYPE_NORMAL // 지도 유형 설정 + googleMap.animateCamera(CameraUpdateFactory.zoomTo(15f)) // 줌의 정도 - 1 일 경우 세계지도 수준, 숫자가 커질 수록 상세지도가 표시됨 + return googleMap.addMarker(markerOption) } + data class LatLngEntity( + var latitude: Double?, + var longitude: Double? + ) + @RequiresApi(Build.VERSION_CODES.O) private fun getRestaurantInfo(restaurantType: RestaurantType) { @@ -101,4 +129,10 @@ class InfoActivity_Gisik : AppCompatActivity() { private fun getNonFixed() { } + + override fun finish() { + super.finish() + } + + } diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Haksik.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Haksik.kt index e9f1bdad..ead6d49f 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Haksik.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Haksik.kt @@ -84,4 +84,8 @@ class InfoActivity_Haksik : AppCompatActivity() { private fun getNonFixed() { } + + override fun finish() { + super.finish() + } } diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Kitchen.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Kitchen.kt index 00bc74a1..85e3d379 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Kitchen.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Kitchen.kt @@ -85,4 +85,8 @@ class InfoActivity_Kitchen : AppCompatActivity() { private fun getNonFixed() { } + + override fun finish() { + super.finish() + } } diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Snack.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Snack.kt index b3bab50b..4447d445 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Snack.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Snack.kt @@ -85,4 +85,8 @@ class InfoActivity_Snack : AppCompatActivity() { private fun getNonFixed() { } + + override fun finish() { + super.finish() + } } diff --git a/app/src/main/res/layout/activity_info_gisik.xml b/app/src/main/res/layout/activity_info_gisik.xml index 73fef40e..5dd1e109 100644 --- a/app/src/main/res/layout/activity_info_gisik.xml +++ b/app/src/main/res/layout/activity_info_gisik.xml @@ -76,10 +76,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - + android:layout_height="200dp" /> From aa41810221e6074327336a0c1f5bf84ac1df2f20 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Sat, 15 Jul 2023 14:13:43 +0900 Subject: [PATCH 02/10] =?UTF-8?q?fix:=20=EC=A3=BC=EA=B0=84=EC=BA=98?= =?UTF-8?q?=EB=A6=B0=EB=8D=94=20=EC=9E=91=EC=97=85=20=EB=B0=8F=20=EB=82=B4?= =?UTF-8?q?=20=EB=A6=AC=EB=B7=B0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20API=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- app/src/main/AndroidManifest.xml | 4 + .../model/response/GetMyReviewResponse.kt | 9 +- .../android/ui/calendar/CalendarFragment.kt | 12 +- .../android/ui/infopage/InfoActivity_Gisik.kt | 23 ++-- .../android/ui/mypage/MyReviewAdapter.kt | 29 +---- .../android/ui/mypage/MyReviewListActivity.kt | 12 +- .../android/ui/review/ReportActivity.kt | 20 +++ .../android/ui/review/WriteReview1Activity.kt | 1 + app/src/main/res/drawable/ic_close.png | Bin 0 -> 390 bytes app/src/main/res/drawable/ic_star.png | Bin 0 -> 796 bytes app/src/main/res/layout/activity_main.xml | 17 ++- .../res/layout/activity_my_review_list.xml | 32 ++++- app/src/main/res/layout/activity_report.xml | 49 +++++-- app/src/main/res/layout/fragment_calendar.xml | 6 +- app/src/main/res/layout/item_my_review.xml | 121 +++++++++++++++--- 16 files changed, 249 insertions(+), 90 deletions(-) create mode 100644 app/src/main/res/drawable/ic_close.png create mode 100644 app/src/main/res/drawable/ic_star.png diff --git a/app/build.gradle b/app/build.gradle index fc8220e6..cc69deb2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,10 +25,10 @@ android { manifestPlaceholders = [BASE_URL : "BASE_URL"] buildConfigField "String", "APP_KEY", properties['APP_KEY'] - manifestPlaceholders = [APP_KEY : APP_KEY] + manifestPlaceholders = [APP_KEY : "APP_KEY"] buildConfigField "String", "GOOGLE_APP_KEY", properties['GOOGLE_APP_KEY'] - manifestPlaceholders = [GOOGLE_APP_KEY : GOOGLE_APP_KEY] + manifestPlaceholders = [GOOGLE_APP_KEY : "GOOGLE_APP_KEY"] testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index db36b496..4692ec7d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -208,6 +208,10 @@ android:name="com.kakao.sdk.AppKey" android:value="${APP_KEY}" /> + + , - val tagList: List, - val writeDate: String + val writeDate: String, + val menuName: String ) } \ No newline at end of file diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt index 77d55ad5..c071e7bd 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt @@ -57,7 +57,7 @@ class CalendarFragment : Fragment() { .withLocale(Locale.forLanguageTag("ko")) val localDate = LocalDateTime.now().format(monthFormat) - binding.textYearMonth.text = localDate + //binding.textYearMonth.text = localDate var preSunday: LocalDateTime = LocalDateTime.now().with( @@ -83,10 +83,10 @@ class CalendarFragment : Fragment() { binding.weekRecycler.adapter = calendarAdapter binding.weekRecycler.layoutManager = GridLayoutManager(context, 7) - binding.textYearMonth.setOnClickListener { + /*binding.textYearMonth.setOnClickListener { val intent = Intent(context, CalendarActivity::class.java); startActivity(intent); - } + }*/ @@ -100,14 +100,14 @@ class CalendarFragment : Fragment() { val intentdate = intent.getStringExtra("intentdate") Log.d("intentdate", intentdate.toString()) - binding.btnCalendarLeft.setOnClickListener { + /*binding.btnCalendarLeft.setOnClickListener { binding.textYearMonth.text = null binding.textYearMonth.text = intentdate - /*binding.btnCalendarRight.setOnClickListener{ + *//*binding.btnCalendarRight.setOnClickListener{ binding.textYearMonth.text = null binding.textYearMonth.text = LocalDateTime.now().plusDays(1).format(monthFormat).toString() - }*/ } + }*/ super.onResume() } } diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt index e3ca7606..8639881d 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt @@ -1,29 +1,25 @@ package com.eatssu.android.ui.infopage -import android.icu.text.IDNA.Info +import RetrofitImpl +import android.R import android.os.Build -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log -import android.widget.Toast import androidx.annotation.RequiresApi -import androidx.recyclerview.widget.RecyclerView +import androidx.appcompat.app.AppCompatActivity import com.eatssu.android.data.enums.RestaurantType -import com.eatssu.android.data.model.request.ChangeNickname -import com.eatssu.android.data.model.response.GetMenuInfoListResponse import com.eatssu.android.data.model.response.InfoResponse import com.eatssu.android.data.service.InfoService -import com.eatssu.android.data.service.MenuService -import com.eatssu.android.data.service.UserService import com.eatssu.android.databinding.ActivityInfoGisikBinding import com.google.android.gms.maps.* +import com.google.android.gms.maps.model.LatLng +import com.google.android.gms.maps.model.Marker +import com.google.android.gms.maps.model.MarkerOptions import retrofit2.Call import retrofit2.Callback import retrofit2.Response import retrofit2.Retrofit -import com.google.android.gms.maps.model.LatLng; -import com.google.android.gms.maps.model.Marker -import com.google.android.gms.maps.model.MarkerOptions; + class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { private lateinit var viewBinding: ActivityInfoGisikBinding @@ -130,8 +126,9 @@ class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { private fun getNonFixed() { } - override fun finish() { - super.finish() + override fun onDestroy() { + googleMap.clear() + super.onDestroy() } diff --git a/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewAdapter.kt b/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewAdapter.kt index 9e6bb9c6..a9b4d4b9 100644 --- a/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewAdapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewAdapter.kt @@ -22,31 +22,10 @@ class MyReviewAdapter(private val dataList: List) : // binding.tvReviewItemId.text = dataList[position].writerId.toString() binding.tvReviewItemComment.text = dataList[position].content.toString() binding.tvReviewItemDate.text = dataList[position].writeDate.toString() - binding.rbReviewItemRate.rating=dataList[position].grade.toFloat() - val tagList = dataList[position].tagList - - val tagCount = tagList.size - -// 태그 초기화 - binding.tvReviewItemTag1.text = "" - binding.tvReviewItemTag2.text = "" - binding.tvReviewItemTag3.text = "" - - val tagTextViews = arrayOf( - binding.tvReviewItemTag1, - binding.tvReviewItemTag2, - binding.tvReviewItemTag3 - ) - - for (i in 0 until min(tagCount, tagTextViews.size)) { - tagTextViews[i].text = tagList[i] - } - - for (i in tagCount until tagTextViews.size) { - tagTextViews[i].visibility = View.GONE - } - - + binding.tvReviewMainGrade.text=dataList[position].mainGrade.toString() + binding.tvReviewTasteGrade.text=dataList[position].tasteGrade.toString() + binding.tvReviewAmountGrade.text=dataList[position].amountGrade.toString() + binding.tvReviewItemId.text=dataList[position].menuName.toString() } } diff --git a/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewListActivity.kt b/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewListActivity.kt index fe6b976f..40028b16 100644 --- a/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewListActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/mypage/MyReviewListActivity.kt @@ -27,13 +27,12 @@ class MyReviewListActivity : AppCompatActivity() { binding = ActivityMyReviewListBinding.inflate(layoutInflater) setContentView(binding.root) -// binding.included.actionBar.text="리뷰" -// binding = ActivityReviewListBinding.inflate(layoutInflater, null, true) - //val inflater = LayoutInflater.from(this) - //inflater(binding.root, findViewById(R.id.frame_layout), true) + binding.btnReviewClose.setOnClickListener() { + onBackPressed(); + } - supportActionBar?.title = "리뷰" + supportActionBar?.title = "내가 쓴 리뷰" var MENU_ID:Int=intent.getIntExtra("menuId",-1) Log.d("post",MENU_ID.toString()) @@ -65,7 +64,6 @@ class MyReviewListActivity : AppCompatActivity() { // 정상적으로 통신이 성공된 경우 Log.d("post", "onResponse 성공: " + response.body().toString()); - val body = response.body() body?.let { setAdapter(it.dataList) @@ -73,7 +71,7 @@ class MyReviewListActivity : AppCompatActivity() { } else { // 통신이 실패한 경우(응답코드 3xx, 4xx 등) - Log.d("post", "onResponse 실패") + Log.d("post", "onResponse 실패 + ${response.code()}") } } diff --git a/app/src/main/java/com/eatssu/android/ui/review/ReportActivity.kt b/app/src/main/java/com/eatssu/android/ui/review/ReportActivity.kt index 8fbb6cec..6702a4c0 100644 --- a/app/src/main/java/com/eatssu/android/ui/review/ReportActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/review/ReportActivity.kt @@ -1,5 +1,6 @@ package com.eatssu.android.ui.review +import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.eatssu.android.databinding.ActivityReportBinding @@ -9,6 +10,7 @@ import com.eatssu.android.ui.BaseActivity abstract class ReportActivity : BaseActivity() { private lateinit var binding: ActivityReportBinding + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityReportBinding.inflate(layoutInflater) @@ -16,6 +18,24 @@ abstract class ReportActivity : BaseActivity() { setActionBarTitle("신고하기") setContentView(binding.root) + + binding.btnCloseReport.setOnClickListener() { + val intent = Intent(this, ReviewListActivity::class.java) // 인텐트를 생성해줌 + startActivity(intent) // 화면 전환을 시켜줌 + + } + + binding.radioGp.setOnCheckedChangeListener { group, checkedId -> + when(checkedId) { + //binding.radioBt1 -> + } + } + + binding.btnNextReview2.setOnClickListener() { + val intent = Intent(this, ReviewListActivity::class.java) // 인텐트를 생성해줌 + startActivity(intent) // 화면 전환을 시켜줌 + + } } abstract fun setActionBarTitle(s: String) diff --git a/app/src/main/java/com/eatssu/android/ui/review/WriteReview1Activity.kt b/app/src/main/java/com/eatssu/android/ui/review/WriteReview1Activity.kt index 374f01d5..04b49435 100644 --- a/app/src/main/java/com/eatssu/android/ui/review/WriteReview1Activity.kt +++ b/app/src/main/java/com/eatssu/android/ui/review/WriteReview1Activity.kt @@ -81,6 +81,7 @@ class WriteReview1Activity : AppCompatActivity() { // intent.putExtra("tag",selectedTags) intent.putExtra("selectedTags", ArrayList(selectedTags)) startActivity(intent) // 화면 전환을 시켜줌 + Log.d("menuId", MENU_ID.toString()); } } diff --git a/app/src/main/res/drawable/ic_close.png b/app/src/main/res/drawable/ic_close.png new file mode 100644 index 0000000000000000000000000000000000000000..5e5a3b687839e47afd5d794b761c45518b81a5ad GIT binary patch literal 390 zcmV;10eSw3P)Y@i2Y;>{79#1ZslARJ@^;s$PjBd|b=g~SA*YJVv4^1h@%fTka9 z-yet=hG7_n`6mK-x!7(`=CmZO*I}C8o%`)}3sNdKmsyx3djgPzu`+E=Qs%{GvvBFq zlABTeaUhsr5Jcu!HiJ1xcH~Oae@!6J5?cq=I=lF%djfKD zQbB9A#_<^q^I!PM!A?QAhWR9dt~uvR68oD0L)eETwg;8E5)i`8^Uj_m5J<49svChJ k+>(5lmJ!1+48t&Oo;Ew(YQT9f@&Et;07*qoM6N<$f;X+2k^lez literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_star.png b/app/src/main/res/drawable/ic_star.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d8507890a4a142c7a4716b6c79f32de820172b GIT binary patch literal 796 zcmV+%1LOROP)KkCU7a%97astx#0J97yNI5~B8_*N9Yc@Ie(r-1$=a<9=JOz! zOfqnQf-6FNd3ML+oz7=)#7S6gEr9;kLkSszBTmAW01Pi)$&`np893l1thMdN|LEo_ zU@a^;IbnG5HA`4>dU^zw*jtQJV;o@$8Gt2L>7pb>sIX2Qb{4B1Kh~+k)|IU4LQEaU zV8MnflYU=reQ(ijdz5n@GE}tu}%k0Y!~IjK|TxU5T3@a;r-%Z zGh5x*DoI89_zC&~U9TuYdT6P1{bp&cd^K@G%;4#%S5`|)OH!_WKJVgi0!?Wm`yb{NdG z#w@IX0#7M5{#mWC;xOSu{Tvm&pAxOGWfSqW;^090Y^|_X1M#&2ySrK0l+t2E_m5;_iM3QEN|N_g*fr?f%PD25xjoeco(Ic{t90AN z^A<%TPOcjiP3Ts)f=5K<30>*RJjV9-r7Ia2+*Xw&4CSeOSO}a3x3@j8#gquGp85BM apO!zm+yFLFb*g~?0000 + + + + + app:layout_constraintTop_toBottomOf="@id/rv_main_weekcalendar"/> + + + + + + + + + + tools:listitem="@layout/item_my_review" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml index 709a2197..59b8d03f 100644 --- a/app/src/main/res/layout/activity_report.xml +++ b/app/src/main/res/layout/activity_report.xml @@ -4,16 +4,44 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:padding="20dp" tools:context=".ui.review.ReportActivity"> + + + + + + + + + @@ -21,6 +49,7 @@ android:id="@+id/radio_gp" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:paddingLeft="20dp" app:layout_constraintTop_toBottomOf="@+id/tv_report" tools:ignore="MissingConstraints"> @@ -39,11 +68,11 @@ android:text="음란성, 욕설 등 부적절한 내용" /> + android:text="부적절한 홍보 또는 광고" /> + android:text="저작권 도용 의심 (사진 등)" /> - - + --> + app:layout_constraintTop_toTopOf="parent"/> \ No newline at end of file diff --git a/app/src/main/res/layout/item_my_review.xml b/app/src/main/res/layout/item_my_review.xml index 0b1ea3a4..c52a3a25 100644 --- a/app/src/main/res/layout/item_my_review.xml +++ b/app/src/main/res/layout/item_my_review.xml @@ -20,22 +20,107 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" + app:layout_constraintStart_toStartOf="@+id/tv_review_item_id" app:layout_constraintTop_toBottomOf="@+id/tv_review_item_id"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -46,15 +131,15 @@ android:layout_height="wrap_content" android:text="2023.03.03" android:layout_marginStart="5dp" - app:layout_constraintBottom_toBottomOf="@+id/ll_review_item_rate" - app:layout_constraintStart_toEndOf="@+id/ll_review_item_rate" - app:layout_constraintTop_toTopOf="@+id/ll_review_item_rate" /> + app:layout_constraintBottom_toTopOf="@+id/tv_review_item_delete" + app:layout_constraintEnd_toEndOf="@+id/tv_review_item_delete" + app:layout_constraintTop_toTopOf="@+id/tv_review_item_id"/> - + app:layout_constraintTop_toBottomOf="@+id/tv_review_item_comment" />--> \ No newline at end of file From c4479c56d5f5dbd99f82ca56045b85b768598e0c Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Sat, 29 Jul 2023 15:36:15 +0900 Subject: [PATCH 03/10] =?UTF-8?q?fix:=20=EC=A3=BC=EA=B0=84=EC=BA=98?= =?UTF-8?q?=EB=A6=B0=EB=8D=94=20=EC=9D=B4=EB=B2=88=EC=A3=BC=20=EB=82=A0?= =?UTF-8?q?=EC=A7=9C=20=EC=84=A0=ED=83=9D=EC=8B=9C=20=EA=B0=92=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/.gitignore | 3 +- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 6 +- .../android/ui/calendar/CalendarActivity.kt | 3 +- .../android/ui/calendar/CalendarAdapter.kt | 114 ++++++++++++------ .../android/ui/calendar/CalendarFragment.kt | 31 +++-- .../android/ui/calendar/CalendarViewModel.kt | 14 +++ .../com/eatssu/android/ui/calendar/Date.kt | 6 + .../android/ui/infopage/InfoActivity_Gisik.kt | 56 ++------- .../android/ui/login/SocialLoginActivity.kt | 5 + .../eatssu/android/ui/main/MainActivity.kt | 21 +++- .../drawable/ic_selector_background_white.xml | 13 ++ .../res/drawable/selector_background_blue.xml | 5 +- .../main/res/layout/activity_info_gisik.xml | 4 +- app/src/main/res/layout/activity_main.xml | 19 ++- app/src/main/res/layout/calendar_cell.xml | 22 ++++ app/src/main/res/layout/fragment_calendar.xml | 3 +- .../main/res/layout/item_calendar_list.xml | 4 +- app/src/main/res/values/array.xml | 2 +- 19 files changed, 214 insertions(+), 118 deletions(-) create mode 100644 app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt create mode 100644 app/src/main/java/com/eatssu/android/ui/calendar/Date.kt create mode 100644 app/src/main/res/drawable/ic_selector_background_white.xml create mode 100644 app/src/main/res/layout/calendar_cell.xml diff --git a/app/.gitignore b/app/.gitignore index 42afabfd..5c174d1b 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1 +1,2 @@ -/build \ No newline at end of file +/build +kakao_string.xml \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 06d5bcc5..94f4f578 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -104,4 +104,5 @@ dependencies { // implementation group: 'com.kakao.sdk', name: 'kakaolink', version: '1.30.5' implementation "com.kakao.sdk:v2-user:2.5.0" // 카카오 로그인 + } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 37cac08e..fb861501 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,7 @@ android:usesCleartextTraffic="true" tools:replace="android:usesCleartextTraffic" tools:targetApi="31"> + @@ -50,6 +51,8 @@ + + @@ -66,7 +69,8 @@ + android:launchMode="singleTask" + tools:ignore="MissingClass"> diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarActivity.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarActivity.kt index 5d5cac4c..f5ff728b 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarActivity.kt @@ -7,11 +7,9 @@ import android.os.Bundle import android.text.style.ForegroundColorSpan import android.text.style.RelativeSizeSpan import android.text.style.StyleSpan -import android.util.Log import android.view.Window import androidx.appcompat.app.AppCompatActivity import com.eatssu.android.databinding.ActivityCalendarBinding -import com.eatssu.android.ui.main.MainActivity import com.prolificinteractive.materialcalendarview.* import com.prolificinteractive.materialcalendarview.format.DateFormatTitleFormatter import com.prolificinteractive.materialcalendarview.format.TitleFormatter @@ -21,6 +19,7 @@ import java.util.* class CalendarActivity : AppCompatActivity() { private lateinit var binding: ActivityCalendarBinding lateinit var calendar: MaterialCalendarView + private lateinit var viewModel: CalendarViewModel val today = CalendarDay.today() diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt index 4cbb5a1a..5b406a21 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt @@ -1,53 +1,95 @@ package com.eatssu.android.ui.calendar +import android.content.Intent +import android.graphics.drawable.Drawable import android.os.Build import android.util.Log import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.AdapterView.OnItemClickListener +import android.widget.TextView import androidx.annotation.RequiresApi +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.eatssu.android.R import com.eatssu.android.databinding.ItemCalendarListBinding +import com.eatssu.android.ui.main.MainActivity +import com.eatssu.android.ui.review.ReviewListActivity import java.time.LocalDate import java.time.format.DateTimeFormatter import java.util.* -class CalendarAdapter(private val cList: List) : - RecyclerView.Adapter() { + class CalendarAdapter(private val cList: List) : + RecyclerView.Adapter() { + private var allViewHolders : List = mutableListOf() - class CalendarViewHolder(private val binding: ItemCalendarListBinding) : - RecyclerView.ViewHolder(binding.root) { - @RequiresApi(Build.VERSION_CODES.O) - fun bind(item: CalendarData) { - binding.date.text = item.cl_date - binding.day.text = item.cl_day - - var today = binding.date.text - var day = binding.day.text - - // 오늘 날짜 - val now = LocalDate.now() - .format(DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko"))) - // 오늘 날짜와 캘린더의 오늘 날짜가 같을 경우 background_blue 적용하기 - if (today == now) { - binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) + inner class CalendarViewHolder(private val binding: ItemCalendarListBinding) : + RecyclerView.ViewHolder(binding.root) { + + private var selectedDate: String? = null + + @RequiresApi(Build.VERSION_CODES.O) + fun bind(item: CalendarData) { + binding.date.text = item.cl_date + binding.day.text = item.cl_day + + var today = binding.date.text + var day = binding.day.text + + // 오늘 날짜 + val now = LocalDate.now() + .format( + DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko")) + ) + + // 오늘 날짜와 캘린더의 오늘 날짜가 같을 경우 background_blue 적용하기 + if (now.equals(today)) { + binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) + } + + binding.root.setOnClickListener { + // Update the selectedDate to the clicked date + selectedDate = today as String? + // Update the background of the clicked date + for(holder in allViewHolders){ + holder.binding.weekCardview.setBackgroundResource(R.drawable.ic_selector_background_white) + Log.d("searchfor", holder.toString()) + } + selectedDate?.let { it1 -> Log.d("rootdata", it1) } + val intent = Intent(binding.root.context, MainActivity::class.java) + intent.putExtra( + "menuId", selectedDate + ) + ContextCompat.startActivity(binding.root.context, intent, null) + binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) + } } - Log.i("now", now) } - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CalendarViewHolder { - val binding = - ItemCalendarListBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return CalendarViewHolder(binding) - } - - @RequiresApi(Build.VERSION_CODES.O) - override fun onBindViewHolder(holder: CalendarViewHolder, position: Int) { - holder.bind(cList[position]) - } - - override fun getItemCount(): Int { - return cList.size - } -} + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CalendarViewHolder { + val binding = + ItemCalendarListBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return CalendarViewHolder(binding) + } + + @RequiresApi(Build.VERSION_CODES.O) + override fun onBindViewHolder(holder: CalendarViewHolder, position: Int) { + holder.bind(cList[position]) + + allViewHolders = allViewHolders.plus(holder) + + /*//서버 연결 + holder.itemView.setOnClickListener { + val intent = Intent(holder.itemView.context, MainActivity::class.java) + intent.putExtra( + "menuId", cList[position].cl_date + ) + }*/ + } + + override fun getItemCount(): Int { + return cList.size + } + } \ No newline at end of file diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt index c071e7bd..50120429 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt @@ -1,26 +1,30 @@ package com.eatssu.android.ui.calendar +import android.annotation.SuppressLint import android.content.Intent -import android.content.Intent.getIntent import android.os.Build import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.TextView +import android.widget.Toast import androidx.annotation.RequiresApi import androidx.fragment.app.Fragment import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.eatssu.android.R import com.eatssu.android.databinding.FragmentCalendarBinding +import com.prolificinteractive.materialcalendarview.DayViewFacade import java.time.DayOfWeek +import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter +import java.time.format.TextStyle import java.time.temporal.TemporalAdjusters import java.util.* - class CalendarFragment : Fragment() { private var _binding: FragmentCalendarBinding? = null @@ -57,15 +61,18 @@ class CalendarFragment : Fragment() { .withLocale(Locale.forLanguageTag("ko")) val localDate = LocalDateTime.now().format(monthFormat) - //binding.textYearMonth.text = localDate + val newDate = arguments?.getString("Date") + if (newDate != null) { + Log.d("Date", newDate) + } - var preSunday: LocalDateTime = LocalDateTime.now().with( + val preSunday: LocalDateTime = LocalDateTime.now().with( TemporalAdjusters.previous( DayOfWeek.SUNDAY ) ) - + Log.d("preSunday", preSunday.toString()) for (i in 0..6) { Log.d("날짜만", week_day[i]) @@ -79,6 +86,8 @@ class CalendarFragment : Fragment() { } Log.d("저번 주 일요일 기준으로 시작!", preSunday.plusDays(i.toLong()).format(dateFormat)) } + + } binding.weekRecycler.adapter = calendarAdapter binding.weekRecycler.layoutManager = GridLayoutManager(context, 7) @@ -95,19 +104,9 @@ class CalendarFragment : Fragment() { override fun onResume() { val intent = Intent() //text 키값으로 데이터를 받는다. String을 받아야 하므로 getStringExtra()를 사용함 - /*val selectdate = this.arguments?.getString("changedate") - Log.d("selectdate", selectdate.toString())*/ val intentdate = intent.getStringExtra("intentdate") Log.d("intentdate", intentdate.toString()) - /*binding.btnCalendarLeft.setOnClickListener { - binding.textYearMonth.text = null - binding.textYearMonth.text = intentdate - *//*binding.btnCalendarRight.setOnClickListener{ - binding.textYearMonth.text = null - binding.textYearMonth.text = LocalDateTime.now().plusDays(1).format(monthFormat).toString() - } - }*/ super.onResume() } } diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt new file mode 100644 index 00000000..7cfec410 --- /dev/null +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt @@ -0,0 +1,14 @@ +package com.eatssu.android.ui.calendar + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class CalendarViewModel : ViewModel() { + private var DateText: MutableLiveData = MutableLiveData() + + fun getData(): MutableLiveData = DateText + + fun updateText(Date: String) { + DateText.value = Date + } +} diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/Date.kt b/app/src/main/java/com/eatssu/android/ui/calendar/Date.kt new file mode 100644 index 00000000..987444df --- /dev/null +++ b/app/src/main/java/com/eatssu/android/ui/calendar/Date.kt @@ -0,0 +1,6 @@ +package com.eatssu.android.ui.calendar + +class Date(day: String, date: String){ + var day: String = day // 요일 + var date: String = date // 날짜 +} \ No newline at end of file diff --git a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt index 8639881d..0ada7e2b 100644 --- a/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt +++ b/app/src/main/java/com/eatssu/android/ui/infopage/InfoActivity_Gisik.kt @@ -11,23 +11,19 @@ import com.eatssu.android.data.enums.RestaurantType import com.eatssu.android.data.model.response.InfoResponse import com.eatssu.android.data.service.InfoService import com.eatssu.android.databinding.ActivityInfoGisikBinding -import com.google.android.gms.maps.* -import com.google.android.gms.maps.model.LatLng -import com.google.android.gms.maps.model.Marker -import com.google.android.gms.maps.model.MarkerOptions +import net.daum.mf.map.api.MapPOIItem +import net.daum.mf.map.api.MapPoint +import net.daum.mf.map.api.MapView import retrofit2.Call import retrofit2.Callback import retrofit2.Response import retrofit2.Retrofit -class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { +class InfoActivity_Gisik : AppCompatActivity(){ private lateinit var viewBinding: ActivityInfoGisikBinding lateinit var retrofit: Retrofit private lateinit var infoService: InfoService - private lateinit var mapView: MapView - private lateinit var googleMap: GoogleMap - private var currentMarker: Marker? = null @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { @@ -35,24 +31,16 @@ class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { viewBinding = ActivityInfoGisikBinding.inflate(layoutInflater) setContentView(viewBinding.root) - this.mapView = viewBinding.btnMap - mapView.onCreate(savedInstanceState) - mapView.getMapAsync(this@InfoActivity_Gisik) - infoService = RetrofitImpl.retrofit.create(InfoService::class.java) - getRestaurantInfo(RestaurantType.DOMITORY) - - } - - override fun onMapReady(googleMap: GoogleMap) { - this.googleMap = googleMap + val mapview = MapView(this); + val mapViewContainer = viewBinding.btnMap + mapViewContainer.addView(mapview) // 중심점 변경 - 레지던스홀 - currentMarker = setupMarker(LatLngEntity(37.495488,126.959173)) - currentMarker?.showInfoWindow() + mapview.setMapCenterPoint(MapPoint.mapPointWithGeoCoord(37.495488,126.959173), true); - /*val marker = MapPOIItem() + val marker = MapPOIItem() marker.apply { itemName = "레지던스홀" // 마커 이름 mapPoint = MapPoint.mapPointWithGeoCoord(37.495488,126.959173) // 좌표 @@ -60,29 +48,12 @@ class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { isCustomImageAutoscale = false // 커스텀 마커 이미지 크기 자동 조정 setCustomImageAnchor(0.5f, 1.0f) // 마커 이미지 기준점 } - mapview.addPOIItem(marker)*/ - } + mapview.addPOIItem(marker) - private fun setupMarker(locationLatLngEntity: LatLngEntity): Marker? { - - val positionLatLng = LatLng(locationLatLngEntity.latitude!!,locationLatLngEntity.longitude!!) - val markerOption = MarkerOptions().apply { - position(positionLatLng) - title("위치") - snippet("레지던스홀 위치") - } - - googleMap.mapType = GoogleMap.MAP_TYPE_NORMAL // 지도 유형 설정 - googleMap.animateCamera(CameraUpdateFactory.zoomTo(15f)) // 줌의 정도 - 1 일 경우 세계지도 수준, 숫자가 커질 수록 상세지도가 표시됨 - return googleMap.addMarker(markerOption) + getRestaurantInfo(RestaurantType.DOMITORY) } - data class LatLngEntity( - var latitude: Double?, - var longitude: Double? - ) - @RequiresApi(Build.VERSION_CODES.O) private fun getRestaurantInfo(restaurantType: RestaurantType) { @@ -126,9 +97,8 @@ class InfoActivity_Gisik : AppCompatActivity(), OnMapReadyCallback { private fun getNonFixed() { } - override fun onDestroy() { - googleMap.clear() - super.onDestroy() + override fun finish() { + super.finish() } diff --git a/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt b/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt index 638ef6a7..84092d43 100644 --- a/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt @@ -87,6 +87,11 @@ class SocialLoginActivity : AppCompatActivity() { } } } + binding.btnLookAround.setOnClickListener() { + val intent = Intent(this, MainActivity::class.java) // 인텐트를 생성해줌, + startActivity(intent) // 화면 전환을 시켜줌 + finish() + } } diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 26b32cdd..5095e2af 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -17,11 +17,13 @@ import android.view.Menu import android.view.MenuItem import android.widget.FrameLayout import androidx.annotation.RequiresApi +import androidx.lifecycle.ViewModelProvider import androidx.viewpager2.widget.ViewPager2 import com.eatssu.android.databinding.ActivityMainBinding import com.eatssu.android.ui.calendar.CalendarFragment import com.eatssu.android.ui.BaseActivity import com.eatssu.android.ui.calendar.CalendarActivity +import com.eatssu.android.ui.calendar.CalendarViewModel import com.eatssu.android.ui.main.ViewPager2Adapter import com.eatssu.android.ui.mypage.MyPageActivity import com.google.android.material.tabs.TabLayout @@ -50,6 +52,7 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) + //viewModel = ViewModelProvider(this).get(CalendarViewModel::class.java) setContentView(binding.root) supportActionBar?.title = "EAT-SSU" @@ -89,19 +92,26 @@ class MainActivity : AppCompatActivity() { binding.textYearMonth.setOnClickListener { val intent = Intent(this, CalendarActivity::class.java); startActivityForResult(intent, CALENDAR_REQUEST_CODE) - } + + val bundle : Bundle = Bundle() + var calendarFragment : CalendarFragment = CalendarFragment() + val year = binding.textYearMonth.text.substring(0,4) val month = binding.textYearMonth.text.substring(5,7) val day = binding.textYearMonth.text.substring(8,10) + bundle.putString("Date", binding.textYearMonth.text.toString()) + Log.d("cutyear", year) Log.d("cutmonth", month) Log.d("cutday", day) + binding.btnCalendarLeft.setOnClickListener { val currentDate = LocalDate.parse(binding.textYearMonth.text.toString(), DateTimeFormatter.ofPattern("yyyy.MM.dd")) val previousDate = currentDate.minusDays(1) val newDate = previousDate.format(DateTimeFormatter.ofPattern("yyyy.MM.dd")) binding.textYearMonth.text = newDate + bundle.putString("Date", newDate) } binding.btnCalendarRight.setOnClickListener { @@ -109,10 +119,19 @@ class MainActivity : AppCompatActivity() { val previousDate = currentDate.plusDays(1) val newDate = previousDate.format(DateTimeFormatter.ofPattern("yyyy.MM.dd")) binding.textYearMonth.text = newDate + bundle.putString("Date", newDate) } + + calendarFragment.arguments = bundle; + + supportFragmentManager + .beginTransaction() + .replace(binding.frame.id, CalendarFragment()) + .commitAllowingStateLoss() } + @Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == CALENDAR_REQUEST_CODE && resultCode == RESULT_OK) { diff --git a/app/src/main/res/drawable/ic_selector_background_white.xml b/app/src/main/res/drawable/ic_selector_background_white.xml new file mode 100644 index 00000000..b2c3865d --- /dev/null +++ b/app/src/main/res/drawable/ic_selector_background_white.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_background_blue.xml b/app/src/main/res/drawable/selector_background_blue.xml index ff0eccd1..5adeb041 100644 --- a/app/src/main/res/drawable/selector_background_blue.xml +++ b/app/src/main/res/drawable/selector_background_blue.xml @@ -4,9 +4,10 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_info_gisik.xml b/app/src/main/res/layout/activity_info_gisik.xml index 5dd1e109..73fef40e 100644 --- a/app/src/main/res/layout/activity_info_gisik.xml +++ b/app/src/main/res/layout/activity_info_gisik.xml @@ -76,10 +76,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - + android:layout_height="200dp"/> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9f605266..0c6df639 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -46,7 +46,7 @@ app:layout_constraintTop_toBottomOf="@id/tv_eat_ssu"> @@ -94,16 +94,15 @@ - + + + android:layout_height="match_parent" + android:layout_below="@id/rv_main_weekcalendar" + > + diff --git a/app/src/main/res/layout/calendar_cell.xml b/app/src/main/res/layout/calendar_cell.xml new file mode 100644 index 00000000..67c51710 --- /dev/null +++ b/app/src/main/res/layout/calendar_cell.xml @@ -0,0 +1,22 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_calendar.xml b/app/src/main/res/layout/fragment_calendar.xml index eaf0e3be..bea9ea10 100644 --- a/app/src/main/res/layout/fragment_calendar.xml +++ b/app/src/main/res/layout/fragment_calendar.xml @@ -54,7 +54,8 @@ android:id="@+id/week_recycler" android:layout_width="match_parent" android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent"/> + android:overScrollMode="never"/> + \ No newline at end of file diff --git a/app/src/main/res/layout/item_calendar_list.xml b/app/src/main/res/layout/item_calendar_list.xml index b501b303..6b62ab31 100644 --- a/app/src/main/res/layout/item_calendar_list.xml +++ b/app/src/main/res/layout/item_calendar_list.xml @@ -17,14 +17,14 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="월" - android:textAlignment="center" /> + android:textAlignment="center"/> + android:textAlignment="center"/> \ No newline at end of file diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index 69bdf086..7c209939 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -2,12 +2,12 @@ + - \ No newline at end of file From cf3819465f8c95a52417dedca616d3604040c918 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Sun, 30 Jul 2023 18:50:48 +0900 Subject: [PATCH 04/10] =?UTF-8?q?fix:=20=EC=A3=BC=EA=B0=84=EC=BA=98?= =?UTF-8?q?=EB=A6=B0=EB=8D=94=20=EB=A9=94=EC=9D=B8=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EB=B0=8F=20LunchFragment=EB=A1=9C=20=EB=82=A0=EC=A7=9C=20?= =?UTF-8?q?=EB=84=98=EA=B8=B0=EA=B8=B0=20=EC=84=B1=EA=B3=B5!!!=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 2 +- .idea/misc.xml | 3 +- app/build.gradle | 4 + .../android/ui/calendar/CalendarAdapter.kt | 146 ++++++++++------- .../android/ui/calendar/CalendarFragment.kt | 21 +-- .../android/ui/calendar/CalendarViewModel.kt | 11 +- .../ui/calendar/{Date.kt => MenuDate.kt} | 3 +- .../eatssu/android/ui/main/LunchFragment.kt | 63 +++++--- .../eatssu/android/ui/main/MainActivity.kt | 153 +++++++++++++----- .../android/ui/main/ViewPager2Adapter.kt | 10 ++ app/src/main/res/layout/activity_main.xml | 14 +- 11 files changed, 275 insertions(+), 155 deletions(-) rename app/src/main/java/com/eatssu/android/ui/calendar/{Date.kt => MenuDate.kt} (51%) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b589d56e..fb7f4a8a 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 8978d23d..5c9f89fe 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,7 @@ + - + diff --git a/app/build.gradle b/app/build.gradle index b5d24897..da1251f4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -114,6 +114,10 @@ dependencies { implementation 'com.google.dagger:hilt-android:2.47' annotationProcessor 'com.google.dagger:hilt-compiler:2.47' + // viewmodel과 livedata + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1" + implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.1" + // implementation "androidx.security:security-crypto:1.0.0" } \ No newline at end of file diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt index 5b406a21..def04423 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt @@ -1,95 +1,117 @@ package com.eatssu.android.ui.calendar import android.content.Intent -import android.graphics.drawable.Drawable import android.os.Build +import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.AdapterView -import android.widget.AdapterView.OnItemClickListener -import android.widget.TextView import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.eatssu.android.R import com.eatssu.android.databinding.ItemCalendarListBinding import com.eatssu.android.ui.main.MainActivity -import com.eatssu.android.ui.review.ReviewListActivity import java.time.LocalDate import java.time.format.DateTimeFormatter import java.util.* - class CalendarAdapter(private val cList: List) : - RecyclerView.Adapter() { - private var allViewHolders : List = mutableListOf() - inner class CalendarViewHolder(private val binding: ItemCalendarListBinding) : - RecyclerView.ViewHolder(binding.root) { +class CalendarAdapter(private val cList: List) : + RecyclerView.Adapter() { + private var allViewHolders : List = mutableListOf() + private var mListener: OnItemClickListener? = null - private var selectedDate: String? = null + inner class CalendarViewHolder(val binding: ItemCalendarListBinding) : + RecyclerView.ViewHolder(binding.root) { - @RequiresApi(Build.VERSION_CODES.O) - fun bind(item: CalendarData) { - binding.date.text = item.cl_date - binding.day.text = item.cl_day + private var selectedDate: String? = null + lateinit var today : String - var today = binding.date.text - var day = binding.day.text + @RequiresApi(Build.VERSION_CODES.O) + fun bind(item: CalendarData) { + binding.date.text = item.cl_date + binding.day.text = item.cl_day - // 오늘 날짜 - val now = LocalDate.now() - .format( - DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko")) - ) + today = binding.date.text as String + var day = binding.day.text - // 오늘 날짜와 캘린더의 오늘 날짜가 같을 경우 background_blue 적용하기 - if (now.equals(today)) { - binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) - } + // 오늘 날짜 + val now = LocalDate.now() + .format( + DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko")) + ) - binding.root.setOnClickListener { - // Update the selectedDate to the clicked date - selectedDate = today as String? - // Update the background of the clicked date - for(holder in allViewHolders){ - holder.binding.weekCardview.setBackgroundResource(R.drawable.ic_selector_background_white) - Log.d("searchfor", holder.toString()) - } - selectedDate?.let { it1 -> Log.d("rootdata", it1) } - val intent = Intent(binding.root.context, MainActivity::class.java) - intent.putExtra( - "menuId", selectedDate - ) - ContextCompat.startActivity(binding.root.context, intent, null) - binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) - } + // 오늘 날짜와 캘린더의 오늘 날짜가 같을 경우 background_blue 적용하기 + if (now.equals(today)) { + binding.weekCardview.setBackgroundResource(com.eatssu.android.R.drawable.selector_background_blue) } - } + /* + binding.root.setOnClickListener { + // Update the selectedDate to the clicked date + selectedDate = today as String? + // Update the background of the clicked date + for(holder in allViewHolders){ + holder.binding.weekCardview.setBackgroundResource(com.eatssu.android.R.drawable.ic_selector_background_white) + Log.d("searchfor", holder.toString()) + } + selectedDate?.let { it1 -> Log.d("rootdata", it1) } + val bundle : Bundle = Bundle() + bundle.putString("calendardata", selectedDate) - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CalendarViewHolder { - val binding = - ItemCalendarListBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return CalendarViewHolder(binding) - } + val intent = Intent(binding.root.context, MainActivity::class.java) + intent.putExtra("calendardata", selectedDate) + ContextCompat.startActivity(binding.root.context, intent, null) - @RequiresApi(Build.VERSION_CODES.O) - override fun onBindViewHolder(holder: CalendarViewHolder, position: Int) { - holder.bind(cList[position]) + *//*val lunchFragment = LunchFragment() + lunchFragment.arguments = bundle*//* - allViewHolders = allViewHolders.plus(holder) + *//*val caledarFragment = CalendarFragment() - /*//서버 연결 - holder.itemView.setOnClickListener { - val intent = Intent(holder.itemView.context, MainActivity::class.java) - intent.putExtra( - "menuId", cList[position].cl_date - ) + lateinit var dataPassListener : onDataPassListener + + dataPassListener = caledarFragment.context as onDataPassListener + dataPassListener.onDataPass(selectedDate)*//* + + binding.weekCardview.setBackgroundResource(com.eatssu.android.R.drawable.selector_background_blue) }*/ } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CalendarViewHolder { + val binding = + ItemCalendarListBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return CalendarViewHolder(binding) + } + + @RequiresApi(Build.VERSION_CODES.O) + override fun onBindViewHolder(holder: CalendarViewHolder, position: Int) { + holder.bind(cList[position]) - override fun getItemCount(): Int { - return cList.size + allViewHolders = allViewHolders.plus(holder) + + holder.itemView.setOnClickListener { v -> + val pos = holder.adapterPosition + if (pos != RecyclerView.NO_POSITION) { + mListener?.onItemClick(v, cList.get(position)) + } } - } \ No newline at end of file + + } + + override fun getItemCount(): Int { + return cList.size + } + + fun setOnItemClickListener(listener: OnItemClickListener?) { + mListener = listener + } + + fun returnViewHolderList(): List { + return allViewHolders + } +} + + interface OnItemClickListener { + fun onItemClick(v: View?, data: CalendarData) + } diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt index 50120429..6bbdb7d8 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarFragment.kt @@ -52,8 +52,6 @@ class CalendarFragment : Fragment() { calendarAdapter = CalendarAdapter(calendarList) - - calendarList.apply { val dateFormat = DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko")) @@ -86,27 +84,14 @@ class CalendarFragment : Fragment() { } Log.d("저번 주 일요일 기준으로 시작!", preSunday.plusDays(i.toLong()).format(dateFormat)) } - + binding.weekRecycler.adapter = calendarAdapter + binding.weekRecycler.layoutManager = GridLayoutManager(context, 7) } - binding.weekRecycler.adapter = calendarAdapter - binding.weekRecycler.layoutManager = GridLayoutManager(context, 7) - - /*binding.textYearMonth.setOnClickListener { - val intent = Intent(context, CalendarActivity::class.java); - startActivity(intent); - }*/ - - - } override fun onResume() { - val intent = Intent() - //text 키값으로 데이터를 받는다. String을 받아야 하므로 getStringExtra()를 사용함 - val intentdate = intent.getStringExtra("intentdate") - Log.d("intentdate", intentdate.toString()) - super.onResume() + Log.d("fragment", "onResumed") } } diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt index 7cfec410..4a14a839 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarViewModel.kt @@ -1,14 +1,17 @@ package com.eatssu.android.ui.calendar +import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel class CalendarViewModel : ViewModel() { - private var DateText: MutableLiveData = MutableLiveData() + private val data = MutableLiveData() - fun getData(): MutableLiveData = DateText + fun setData(dataToSend: String) { + data.value = dataToSend + } - fun updateText(Date: String) { - DateText.value = Date + fun getData(): LiveData { + return data } } diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/Date.kt b/app/src/main/java/com/eatssu/android/ui/calendar/MenuDate.kt similarity index 51% rename from app/src/main/java/com/eatssu/android/ui/calendar/Date.kt rename to app/src/main/java/com/eatssu/android/ui/calendar/MenuDate.kt index 987444df..de743be7 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/Date.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/MenuDate.kt @@ -1,6 +1,5 @@ package com.eatssu.android.ui.calendar -class Date(day: String, date: String){ - var day: String = day // 요일 +class MenuDate(date: String){ var date: String = date // 날짜 } \ No newline at end of file diff --git a/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt b/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt index 19f2943a..feac26e7 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt @@ -10,6 +10,7 @@ import android.view.View import android.view.ViewGroup import androidx.annotation.RequiresApi import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.eatssu.android.adapter.* @@ -18,8 +19,11 @@ import com.eatssu.android.data.model.response.GetFixedMenuResponse import com.eatssu.android.data.model.response.GetTodayMealResponse import com.eatssu.android.data.service.MenuService import com.eatssu.android.databinding.FragmentLunchBinding +import com.eatssu.android.ui.calendar.CalendarViewModel +import com.eatssu.android.ui.calendar.MenuDate import com.eatssu.android.ui.infopage.* import retrofit2.* +import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter import java.util.* @@ -31,6 +35,8 @@ class LunchFragment : Fragment() { lateinit var retrofit: Retrofit lateinit var menuService: MenuService + private var menuDate : String = "20230714" + val time:String = "LUNCH" override fun onCreateView( inflater: LayoutInflater, @@ -44,6 +50,10 @@ class LunchFragment : Fragment() { @RequiresApi(Build.VERSION_CODES.O) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + val calendardate = this.arguments?.getString("calendardata") + Log.d("lunchdate", "$calendardate") + init() lodeData() } @@ -143,33 +153,42 @@ class LunchFragment : Fragment() { recyclerView: RecyclerView ) { val monthFormat = - DateTimeFormatter.ofPattern("yyyyMMdd").withLocale(Locale.forLanguageTag("ko")) + DateTimeFormatter.ofPattern("yyyyMMdd").withLocale (Locale.forLanguageTag("ko")) val localDate = LocalDateTime.now().format(monthFormat) - //date 자리에 localDate나 호출해서 불러온 날짜를 넣으면 됨 - //지금은 날짜를 20230714로 고정해두었음 - menuService.getTodayMeal("20230714", restaurantType.toString(),time) - .enqueue(object : Callback { - override fun onResponse( - call: Call, - response: Response - ) { - if (response.isSuccessful) { - val body = response.body() - body?.let { - setAdapterTodayMeal(it, restaurantType,recyclerView) + // ViewModelProvider를 통해 ViewModel 가져오기 + val viewModel = ViewModelProvider(requireActivity()).get(CalendarViewModel::class.java) + + // ViewModel에서 데이터 가져오기 + viewModel.getData().observe(viewLifecycleOwner, androidx.lifecycle.Observer { dataReceived -> + menuDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMM")) + dataReceived + Log.d("lunchdate", menuDate) + menuService.getTodayMeal(menuDate, restaurantType.toString(),time) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + val body = response.body() + body?.let { + setAdapterTodayMeal(it, restaurantType,recyclerView) + } + Log.d("post", "onResponse 성공" + response.body()) + + } else { + Log.d("post", "onResponse 실패 투데이밀" + response.code()+response.message()) } - Log.d("post", "onResponse 성공" + response.body()) + } - } else { - Log.d("post", "onResponse 실패 투데이밀" + response.code()+response.message()) + override fun onFailure(call: Call, t: Throwable) { + Log.d("post", "onFailure 에러: 나다${t.message}+ ${call}" + "ddd") } - } + }) + }) + //date 자리에 localDate나 호출해서 불러온 날짜를 넣으면 됨 + //지금은 날짜를 20230714로 고정해두었음 - override fun onFailure(call: Call, t: Throwable) { - Log.d("post", "onFailure 에러: 나다${t.message}+ ${call}" + "ddd") - } - }) } @@ -207,4 +226,4 @@ class LunchFragment : Fragment() { super.onDestroyView() _binding = null } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 5095e2af..30bf1f39 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -1,58 +1,47 @@ package com.eatssu.android.ui.main -import com.eatssu.android.R -import android.annotation.SuppressLint -import android.content.Context import android.content.Intent -import android.content.pm.PackageInfo -import android.content.pm.PackageManager import android.os.Build -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.util.Base64.NO_WRAP -import android.util.Base64.encodeToString import android.util.Log -import android.view.LayoutInflater import android.view.Menu import android.view.MenuItem -import android.widget.FrameLayout +import android.view.View +import com.eatssu.android.R import androidx.annotation.RequiresApi +import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager import androidx.viewpager2.widget.ViewPager2 import com.eatssu.android.databinding.ActivityMainBinding -import com.eatssu.android.ui.calendar.CalendarFragment -import com.eatssu.android.ui.BaseActivity -import com.eatssu.android.ui.calendar.CalendarActivity -import com.eatssu.android.ui.calendar.CalendarViewModel -import com.eatssu.android.ui.main.ViewPager2Adapter +import com.eatssu.android.ui.calendar.* import com.eatssu.android.ui.mypage.MyPageActivity import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.prolificinteractive.materialcalendarview.* -import com.prolificinteractive.materialcalendarview.format.ArrayWeekDayFormatter -import com.prolificinteractive.materialcalendarview.format.DateFormatTitleFormatter -import com.prolificinteractive.materialcalendarview.format.MonthArrayTitleFormatter -import com.prolificinteractive.materialcalendarview.format.TitleFormatter -import java.security.MessageDigest -import java.security.NoSuchAlgorithmException -import java.text.SimpleDateFormat +import java.time.DayOfWeek import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter +import java.time.temporal.TemporalAdjusters import java.util.* + class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private var selectedDate: String = "" private var year: String = "" private var month: String = "" private var day: String = "" + lateinit var calendarAdapter: CalendarAdapter + private var calendarList = ArrayList() + private var allViewHolders : List = mutableListOf() @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) - //viewModel = ViewModelProvider(this).get(CalendarViewModel::class.java) setContentView(binding.root) supportActionBar?.title = "EAT-SSU" @@ -83,7 +72,98 @@ class MainActivity : AppCompatActivity() { startActivity(intent) // 화면 전환을 시켜줌 } - val monthFormat = + var week_day: Array = resources.getStringArray(R.array.calendar_day) + + calendarAdapter = CalendarAdapter(calendarList) + + calendarList.apply { + val dateFormat = + DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko")) + val monthFormat = DateTimeFormatter.ofPattern("yyyy . MM . dd") + .withLocale(Locale.forLanguageTag("ko")) + + val localDate = LocalDateTime.now().format(monthFormat) + + val preSunday: LocalDateTime = LocalDateTime.now().with( + TemporalAdjusters.previous( + DayOfWeek.SUNDAY + ) + ) + Log.d("preSunday", preSunday.toString()) + for (i in 0..6) { + Log.d("날짜만", week_day[i]) + + calendarList.apply { + add( + CalendarData( + preSunday.plusDays(i.toLong()).format(dateFormat), + week_day[i] + ) + ) + } + Log.d("저번 주 일요일 기준으로 시작!", preSunday.plusDays(i.toLong()).format(dateFormat)) + } + binding.weekRecycler.adapter = calendarAdapter + binding.weekRecycler.layoutManager = GridLayoutManager(this@MainActivity, 7) + + } + + //RecyclerView에 목록 출력 + val recyclerView = binding.weekRecycler + + val adapter = calendarAdapter + + adapter.setOnItemClickListener(object : OnItemClickListener { + override fun onItemClick(v: View?, data: CalendarData) { + + val returnViewHolderList = calendarAdapter.returnViewHolderList() + lateinit var holderSelect : CalendarAdapter.CalendarViewHolder + lateinit var selected : String + + for(holder in returnViewHolderList){ + holder.binding.weekCardview.setBackgroundResource(R.drawable.ic_selector_background_white) + if(holder.today.equals(data.cl_date)) { + holderSelect = holder + selected = holder.today + } + } + + holderSelect.binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) + + val viewModel = ViewModelProvider(this@MainActivity)[CalendarViewModel::class.java] + viewModel.setData(selected) + + // 1) ViewPager2 참조 + val viewPager: ViewPager2 = binding.vpMain + val tabLayout: TabLayout = binding.tabLayout + + // 2) FragmentStateAdapter 생성 : Fragment 여러개를 ViewPager2에 연결해주는 역할 + val viewpagerFragmentAdapter = ViewPager2Adapter(this@MainActivity) + + viewpagerFragmentAdapter.setMenudate(selected) + + Log.d("todaydate", selected) + + // 3) ViewPager2의 adapter에 설정 + viewPager.adapter = viewpagerFragmentAdapter + viewPager.setCurrentItem(viewpagerFragmentAdapter.getDefaultFragmentPosition(), false) + + // ###### TabLayout과 ViewPager2를 연결 + // 1. 탭메뉴의 이름을 리스트로 생성해둔다. + val tabTitles = listOf("아침", "점심", "저녁") + + // 2. TabLayout과 ViewPager2를 연결하고, TabItem의 메뉴명을 설정한다. + TabLayoutMediator(tabLayout, + viewPager, + { tab, position -> tab.text = tabTitles[position] }).attach() + + + } + }) + + recyclerView.adapter = adapter + + /*val monthFormat = DateTimeFormatter.ofPattern("yyyy.MM.dd").withLocale(Locale.forLanguageTag("ko")) val localDate = LocalDateTime.now().format(monthFormat) binding.textYearMonth.text = localDate @@ -92,12 +172,12 @@ class MainActivity : AppCompatActivity() { binding.textYearMonth.setOnClickListener { val intent = Intent(this, CalendarActivity::class.java); startActivityForResult(intent, CALENDAR_REQUEST_CODE) - } + }*/ val bundle : Bundle = Bundle() var calendarFragment : CalendarFragment = CalendarFragment() - val year = binding.textYearMonth.text.substring(0,4) + /*val year = binding.textYearMonth.text.substring(0,4) val month = binding.textYearMonth.text.substring(5,7) val day = binding.textYearMonth.text.substring(8,10) bundle.putString("Date", binding.textYearMonth.text.toString()) @@ -120,18 +200,11 @@ class MainActivity : AppCompatActivity() { val newDate = previousDate.format(DateTimeFormatter.ofPattern("yyyy.MM.dd")) binding.textYearMonth.text = newDate bundle.putString("Date", newDate) - } - - calendarFragment.arguments = bundle; - - supportFragmentManager - .beginTransaction() - .replace(binding.frame.id, CalendarFragment()) - .commitAllowingStateLoss() + }*/ } - @Deprecated("Deprecated in Java") + /*@Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == CALENDAR_REQUEST_CODE && resultCode == RESULT_OK) { @@ -142,7 +215,7 @@ class MainActivity : AppCompatActivity() { Log.d("changedate", selectedDate) } } - } + }*/ override fun onCreateOptionsMenu(menu: Menu?): Boolean { @@ -162,11 +235,15 @@ class MainActivity : AppCompatActivity() { } } - override fun onRestart() { //여기 문제 있음 + override fun onResume() { + super.onResume() + } + + /*override fun onRestart() { //여기 문제 있음 super.onRestart() binding.textYearMonth.text = selectedDate } - +*/ companion object { private const val CALENDAR_REQUEST_CODE = 1 } diff --git a/app/src/main/java/com/eatssu/android/ui/main/ViewPager2Adapter.kt b/app/src/main/java/com/eatssu/android/ui/main/ViewPager2Adapter.kt index 6af790ae..a2f1149f 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/ViewPager2Adapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/ViewPager2Adapter.kt @@ -1,5 +1,6 @@ package com.eatssu.android.ui.main +import android.util.Log import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.viewpager2.adapter.FragmentStateAdapter @@ -8,6 +9,7 @@ class ViewPager2Adapter(fragmentActivity: FragmentActivity) : FragmentStateAdapter(fragmentActivity) { // 1. ViewPager2에 연결할 Fragment 들을 생성 val fragmentList = listOf(BreakfastFragment(), LunchFragment(), DinnerFragment()) + lateinit var menuDate : String // 2. ViesPager2에서 노출시킬 Fragment 의 갯수 설정 override fun getItemCount(): Int { @@ -16,6 +18,9 @@ class ViewPager2Adapter(fragmentActivity: FragmentActivity) : // 3. ViewPager2의 각 페이지에서 노출할 Fragment 설정 override fun createFragment(position: Int): Fragment { + /*if(fragmentList[position] is LunchFragment) { + (fragmentList[position] as LunchFragment).setDate(menuDate) + }*/ return fragmentList[position] } @@ -25,4 +30,9 @@ class ViewPager2Adapter(fragmentActivity: FragmentActivity) : // 예를 들어, 첫 번째 Fragment를 디폴트로 설정하려면 0을 반환합니다. return 1 } + + fun setMenudate(date : String){ + this.menuDate = date + Log.d("vpdate", menuDate) + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0c6df639..79b80e38 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -50,7 +50,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - + --> - + android:layout_height="wrap_content" + android:overScrollMode="never"/> From 772b1c79eefe23ea31ac6b02bce5aa1ea2e7ca47 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Mon, 31 Jul 2023 17:51:11 +0900 Subject: [PATCH 05/10] =?UTF-8?q?fix:=20MainActivity=20merge=20=ED=9B=84?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eatssu/android/ui/main/LunchFragment.kt | 2 +- .../eatssu/android/ui/main/MainActivity.kt | 119 +++++++++++++++--- 2 files changed, 106 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt b/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt index feac26e7..46f829c8 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt @@ -163,7 +163,7 @@ class LunchFragment : Fragment() { viewModel.getData().observe(viewLifecycleOwner, androidx.lifecycle.Observer { dataReceived -> menuDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMM")) + dataReceived Log.d("lunchdate", menuDate) - menuService.getTodayMeal(menuDate, restaurantType.toString(),time) + menuService.getTodayMeal("$menuDate", restaurantType.toString(),time) .enqueue(object : Callback { override fun onResponse( call: Call, diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 22a6858d..6acae3e3 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -15,14 +15,16 @@ import android.util.Log import android.view.LayoutInflater import android.view.Menu import android.view.MenuItem +import android.view.View import android.widget.FrameLayout import androidx.annotation.RequiresApi +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.GridLayoutManager import androidx.viewpager2.widget.ViewPager2 import com.eatssu.android.data.MySharedPreferences import com.eatssu.android.databinding.ActivityMainBinding -import com.eatssu.android.ui.calendar.CalendarFragment import com.eatssu.android.ui.BaseActivity -import com.eatssu.android.ui.calendar.CalendarActivity +import com.eatssu.android.ui.calendar.* import com.eatssu.android.ui.main.ViewPager2Adapter import com.eatssu.android.ui.mypage.ChangeNicknameActivity import com.eatssu.android.ui.mypage.MyPageActivity @@ -36,9 +38,11 @@ import com.prolificinteractive.materialcalendarview.format.TitleFormatter import java.security.MessageDigest import java.security.NoSuchAlgorithmException import java.text.SimpleDateFormat +import java.time.DayOfWeek import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter +import java.time.temporal.TemporalAdjusters import java.util.* class MainActivity : AppCompatActivity() { @@ -47,6 +51,10 @@ class MainActivity : AppCompatActivity() { private var year: String = "" private var month: String = "" private var day: String = "" + lateinit var calendarAdapter: CalendarAdapter + private var calendarList = ArrayList() + private var allViewHolders : List = mutableListOf() + @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { @@ -90,10 +98,98 @@ class MainActivity : AppCompatActivity() { startActivity(intent) // 화면 전환을 시켜줌 } - val monthFormat = - DateTimeFormatter.ofPattern("yyyy.MM.dd").withLocale(Locale.forLanguageTag("ko")) - val localDate = LocalDateTime.now().format(monthFormat) - binding.textYearMonth.text = localDate + var week_day: Array = resources.getStringArray(R.array.calendar_day) + + calendarAdapter = CalendarAdapter(calendarList) + + calendarList.apply { + val dateFormat = + DateTimeFormatter.ofPattern("dd").withLocale(Locale.forLanguageTag("ko")) + val monthFormat = DateTimeFormatter.ofPattern("yyyy . MM . dd") + .withLocale(Locale.forLanguageTag("ko")) + + val localDate = LocalDateTime.now().format(monthFormat) + + val preSunday: LocalDateTime = LocalDateTime.now().with( + TemporalAdjusters.previous( + DayOfWeek.SUNDAY + ) + ) + Log.d("preSunday", preSunday.toString()) + for (i in 0..6) { + Log.d("날짜만", week_day[i]) + + calendarList.apply { + add( + CalendarData( + preSunday.plusDays(i.toLong()).format(dateFormat), + week_day[i] + ) + ) + } + Log.d("저번 주 일요일 기준으로 시작!", preSunday.plusDays(i.toLong()).format(dateFormat)) + } + binding.weekRecycler.adapter = calendarAdapter + binding.weekRecycler.layoutManager = GridLayoutManager(this@MainActivity, 7) + + } + + //RecyclerView에 목록 출력 + val recyclerView = binding.weekRecycler + + val adapter = calendarAdapter + + adapter.setOnItemClickListener(object : OnItemClickListener { + override fun onItemClick(v: View?, data: CalendarData) { + + val returnViewHolderList = calendarAdapter.returnViewHolderList() + lateinit var holderSelect : CalendarAdapter.CalendarViewHolder + lateinit var selected : String + + for(holder in returnViewHolderList){ + holder.binding.weekCardview.setBackgroundResource(R.drawable.ic_selector_background_white) + if(holder.today.equals(data.cl_date)) { + holderSelect = holder + selected = holder.today + } + } + + holderSelect.binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) + + val viewModel = ViewModelProvider(this@MainActivity)[CalendarViewModel::class.java] + viewModel.setData(selected) + + // 1) ViewPager2 참조 + val viewPager: ViewPager2 = binding.vpMain + val tabLayout: TabLayout = binding.tabLayout + + // 2) FragmentStateAdapter 생성 : Fragment 여러개를 ViewPager2에 연결해주는 역할 + val viewpagerFragmentAdapter = ViewPager2Adapter(this@MainActivity) + + viewpagerFragmentAdapter.setMenudate(selected) + + Log.d("todaydate", selected) + + // 3) ViewPager2의 adapter에 설정 + viewPager.adapter = viewpagerFragmentAdapter + viewPager.setCurrentItem(viewpagerFragmentAdapter.getDefaultFragmentPosition(), false) + + // ###### TabLayout과 ViewPager2를 연결 + // 1. 탭메뉴의 이름을 리스트로 생성해둔다. + val tabTitles = listOf("아침", "점심", "저녁") + + // 2. TabLayout과 ViewPager2를 연결하고, TabItem의 메뉴명을 설정한다. + TabLayoutMediator(tabLayout, + viewPager, + { tab, position -> tab.text = tabTitles[position] }).attach() + + + } + }) + + recyclerView.adapter = adapter + + /*binding.textYearMonth.text = localDate binding.textYearMonth.setOnClickListener { @@ -119,11 +215,11 @@ class MainActivity : AppCompatActivity() { val previousDate = currentDate.plusDays(1) val newDate = previousDate.format(DateTimeFormatter.ofPattern("yyyy.MM.dd")) binding.textYearMonth.text = newDate - } + }*/ } - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + /*override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == CALENDAR_REQUEST_CODE && resultCode == RESULT_OK) { val changedDate = data?.getStringExtra("changedate") @@ -133,7 +229,7 @@ class MainActivity : AppCompatActivity() { Log.d("changedate", selectedDate) } } - } + }*/ override fun onCreateOptionsMenu(menu: Menu?): Boolean { @@ -153,11 +249,6 @@ class MainActivity : AppCompatActivity() { } } - override fun onRestart() { //여기 문제 있음 - super.onRestart() - binding.textYearMonth.text = selectedDate - } - companion object { private const val CALENDAR_REQUEST_CODE = 1 } From 5db403d7937fbcd4ee4a126c06f65912d2542548 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Thu, 3 Aug 2023 15:07:09 +0900 Subject: [PATCH 06/10] =?UTF-8?q?fix:=20=EC=A3=BC=EA=B0=84=EC=BA=98?= =?UTF-8?q?=EB=A6=B0=EB=8D=94=20=EB=B0=B0=EA=B2=BD=20=EC=9B=90=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/eatssu/android/ui/calendar/CalendarAdapter.kt | 6 ++++-- .../main/java/com/eatssu/android/ui/main/MainActivity.kt | 2 +- app/src/main/res/drawable/selector_background_blue.xml | 6 +++--- app/src/main/res/layout/item_calendar_list.xml | 6 +++++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt index def04423..f7317b36 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt @@ -10,6 +10,7 @@ import android.view.ViewGroup import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView +import com.eatssu.android.R import com.eatssu.android.databinding.ItemCalendarListBinding import com.eatssu.android.ui.main.MainActivity import java.time.LocalDate @@ -27,6 +28,7 @@ class CalendarAdapter(private val cList: List) : private var selectedDate: String? = null lateinit var today : String + lateinit var day : String @RequiresApi(Build.VERSION_CODES.O) fun bind(item: CalendarData) { @@ -34,7 +36,7 @@ class CalendarAdapter(private val cList: List) : binding.day.text = item.cl_day today = binding.date.text as String - var day = binding.day.text + day = binding.day.text as String // 오늘 날짜 val now = LocalDate.now() @@ -44,7 +46,7 @@ class CalendarAdapter(private val cList: List) : // 오늘 날짜와 캘린더의 오늘 날짜가 같을 경우 background_blue 적용하기 if (now.equals(today)) { - binding.weekCardview.setBackgroundResource(com.eatssu.android.R.drawable.selector_background_blue) + binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) } /* binding.root.setOnClickListener { diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 6acae3e3..0bd1c8d1 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -154,7 +154,7 @@ class MainActivity : AppCompatActivity() { } } - holderSelect.binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) + holderSelect.binding.weekCardview.setBackgroundResource(R.drawable.transparent_calendar_element) val viewModel = ViewModelProvider(this@MainActivity)[CalendarViewModel::class.java] viewModel.setData(selected) diff --git a/app/src/main/res/drawable/selector_background_blue.xml b/app/src/main/res/drawable/selector_background_blue.xml index 5adeb041..24d16059 100644 --- a/app/src/main/res/drawable/selector_background_blue.xml +++ b/app/src/main/res/drawable/selector_background_blue.xml @@ -1,13 +1,13 @@ - - + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_calendar_list.xml b/app/src/main/res/layout/item_calendar_list.xml index 6b62ab31..6985302e 100644 --- a/app/src/main/res/layout/item_calendar_list.xml +++ b/app/src/main/res/layout/item_calendar_list.xml @@ -5,7 +5,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" - android:focusable="true"> + android:focusable="true" + android:paddingLeft="5dp" + android:paddingRight="5dp"> @@ -24,6 +27,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="19" + android:paddingBottom="5dp" android:textAlignment="center"/> From bff83a1143701719ecb84d746fde64de0828e6d7 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Sat, 5 Aug 2023 14:25:18 +0900 Subject: [PATCH 07/10] =?UTF-8?q?fix:=20=EC=A3=BC=EA=B0=84=EC=BA=98?= =?UTF-8?q?=EB=A6=B0=EB=8D=94=20=EB=B0=B0=EA=B2=BD=20=EC=9B=90=20=ED=81=AC?= =?UTF-8?q?=EA=B8=B0=20=EC=88=98=EC=A0=95=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/item_calendar_list.xml | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/layout/item_calendar_list.xml b/app/src/main/res/layout/item_calendar_list.xml index 6985302e..e198cfb9 100644 --- a/app/src/main/res/layout/item_calendar_list.xml +++ b/app/src/main/res/layout/item_calendar_list.xml @@ -2,33 +2,31 @@ + android:focusable="true"> + android:textAlignment="center" + android:gravity="center"/> + android:textAlignment="center" + android:gravity="center"/> \ No newline at end of file From c96723b62342c90d153cbbad67322dd74ef40045 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Tue, 8 Aug 2023 22:01:29 +0900 Subject: [PATCH 08/10] =?UTF-8?q?feat:=20main=EC=97=90=EC=84=9C=20date?= =?UTF-8?q?=EA=B0=92=20=EB=84=98=EC=96=B4=EA=B0=80=EA=B3=A0=20=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=20=EB=82=98=EC=98=A4=EB=8A=94=EA=B1=B0=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=20=EC=99=84=EB=A3=8C!!=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/eatssu/android/ui/main/LunchFragment.kt | 3 ++- .../com/eatssu/android/ui/main/MainActivity.kt | 17 +++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt b/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt index 46f829c8..dc3bcaf1 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/LunchFragment.kt @@ -162,8 +162,9 @@ class LunchFragment : Fragment() { // ViewModel에서 데이터 가져오기 viewModel.getData().observe(viewLifecycleOwner, androidx.lifecycle.Observer { dataReceived -> menuDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMM")) + dataReceived + //menuDate = "202307$dataReceived" Log.d("lunchdate", menuDate) - menuService.getTodayMeal("$menuDate", restaurantType.toString(),time) + menuService.getTodayMeal(menuDate, restaurantType.toString(),time) .enqueue(object : Callback { override fun onResponse( call: Call, diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 0bd1c8d1..d1ca6731 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -1,40 +1,26 @@ package com.eatssu.android.ui.main import com.eatssu.android.R -import android.annotation.SuppressLint -import android.content.Context import android.content.Intent -import android.content.pm.PackageInfo -import android.content.pm.PackageManager import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.util.Base64.NO_WRAP -import android.util.Base64.encodeToString import android.util.Log -import android.view.LayoutInflater import android.view.Menu import android.view.MenuItem import android.view.View -import android.widget.FrameLayout import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager import androidx.viewpager2.widget.ViewPager2 import com.eatssu.android.data.MySharedPreferences import com.eatssu.android.databinding.ActivityMainBinding -import com.eatssu.android.ui.BaseActivity import com.eatssu.android.ui.calendar.* -import com.eatssu.android.ui.main.ViewPager2Adapter import com.eatssu.android.ui.mypage.ChangeNicknameActivity import com.eatssu.android.ui.mypage.MyPageActivity import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.prolificinteractive.materialcalendarview.* -import com.prolificinteractive.materialcalendarview.format.ArrayWeekDayFormatter -import com.prolificinteractive.materialcalendarview.format.DateFormatTitleFormatter -import com.prolificinteractive.materialcalendarview.format.MonthArrayTitleFormatter -import com.prolificinteractive.materialcalendarview.format.TitleFormatter import java.security.MessageDigest import java.security.NoSuchAlgorithmException import java.text.SimpleDateFormat @@ -158,6 +144,9 @@ class MainActivity : AppCompatActivity() { val viewModel = ViewModelProvider(this@MainActivity)[CalendarViewModel::class.java] viewModel.setData(selected) + // viewModel에 값 넘어가서 메뉴 뜨는지 확인하는 코드 + //var senddate = "14" + //viewModel.setData(senddate) // 1) ViewPager2 참조 val viewPager: ViewPager2 = binding.vpMain From ef519f7820f370fa33a72bc3645b92f5dbbd4b7a Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Thu, 10 Aug 2023 21:47:32 +0900 Subject: [PATCH 09/10] =?UTF-8?q?feat:=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EB=82=A0=EC=A7=9C=20=EC=84=A0=ED=83=9D=EC=8B=9C=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=83=89=20=EB=B3=80=EA=B2=BD=20=EC=84=B1?= =?UTF-8?q?=EA=B3=B5!!=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 4 ++-- .../java/com/eatssu/android/ui/calendar/CalendarAdapter.kt | 2 ++ .../main/java/com/eatssu/android/ui/main/MainActivity.kt | 5 ++++- app/src/main/res/color/selector_calendar_colortext.xml | 5 +++++ app/src/main/res/layout/item_calendar_list.xml | 6 ++++-- 5 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/color/selector_calendar_colortext.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 7fa24a26..89bc849b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ + - - + diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt index f7317b36..f2b584de 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt @@ -46,6 +46,8 @@ class CalendarAdapter(private val cList: List) : // 오늘 날짜와 캘린더의 오늘 날짜가 같을 경우 background_blue 적용하기 if (now.equals(today)) { + binding.date.isSelected = true; + binding.day.isSelected = true; binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) } /* diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index d1ca6731..24c8d610 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -134,12 +134,15 @@ class MainActivity : AppCompatActivity() { for(holder in returnViewHolderList){ holder.binding.weekCardview.setBackgroundResource(R.drawable.ic_selector_background_white) + holder.binding.day.isSelected = false + holder.binding.date.isSelected = false if(holder.today.equals(data.cl_date)) { holderSelect = holder selected = holder.today } } - + holderSelect.binding.day.isSelected = true + holderSelect.binding.date.isSelected = true holderSelect.binding.weekCardview.setBackgroundResource(R.drawable.transparent_calendar_element) val viewModel = ViewModelProvider(this@MainActivity)[CalendarViewModel::class.java] diff --git a/app/src/main/res/color/selector_calendar_colortext.xml b/app/src/main/res/color/selector_calendar_colortext.xml new file mode 100644 index 00000000..9cdb46c9 --- /dev/null +++ b/app/src/main/res/color/selector_calendar_colortext.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_calendar_list.xml b/app/src/main/res/layout/item_calendar_list.xml index e198cfb9..eaf2f077 100644 --- a/app/src/main/res/layout/item_calendar_list.xml +++ b/app/src/main/res/layout/item_calendar_list.xml @@ -18,7 +18,8 @@ android:layout_height="20dp" android:text="월" android:textAlignment="center" - android:gravity="center"/> + android:gravity="center" + android:textColor="@color/selector_calendar_colortext"/> + android:gravity="center" + android:textColor="@color/selector_calendar_colortext"/> \ No newline at end of file From c66e6f1a9a68d371c856dc360df6524e8638f434 Mon Sep 17 00:00:00 2001 From: Amepistheo Date: Fri, 11 Aug 2023 23:49:10 +0900 Subject: [PATCH 10/10] =?UTF-8?q?feat:=20CalendarAdapter=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=95=EB=A6=AC=20#29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/ui/calendar/CalendarAdapter.kt | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt index f2b584de..70d05483 100644 --- a/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt +++ b/app/src/main/java/com/eatssu/android/ui/calendar/CalendarAdapter.kt @@ -50,35 +50,6 @@ class CalendarAdapter(private val cList: List) : binding.day.isSelected = true; binding.weekCardview.setBackgroundResource(R.drawable.selector_background_blue) } - /* - binding.root.setOnClickListener { - // Update the selectedDate to the clicked date - selectedDate = today as String? - // Update the background of the clicked date - for(holder in allViewHolders){ - holder.binding.weekCardview.setBackgroundResource(com.eatssu.android.R.drawable.ic_selector_background_white) - Log.d("searchfor", holder.toString()) - } - selectedDate?.let { it1 -> Log.d("rootdata", it1) } - val bundle : Bundle = Bundle() - bundle.putString("calendardata", selectedDate) - - val intent = Intent(binding.root.context, MainActivity::class.java) - intent.putExtra("calendardata", selectedDate) - ContextCompat.startActivity(binding.root.context, intent, null) - - *//*val lunchFragment = LunchFragment() - lunchFragment.arguments = bundle*//* - - *//*val caledarFragment = CalendarFragment() - - lateinit var dataPassListener : onDataPassListener - - dataPassListener = caledarFragment.context as onDataPassListener - dataPassListener.onDataPass(selectedDate)*//* - - binding.weekCardview.setBackgroundResource(com.eatssu.android.R.drawable.selector_background_blue) - }*/ } }