Skip to content

#21 [fix] main/메인화면 수정 #22

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.korail_aos">
package="com.example.korail_aos"
android:installLocation="preferExternal">
<uses-permission android:name="android.permission.INTERNET" />

<application
Expand All @@ -28,6 +29,7 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".presentation.train.DrawerActivity"></activity>
</application>

</manifest>
1 change: 1 addition & 0 deletions app/src/main/java/com/example/korail_aos/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
Expand Down
25 changes: 10 additions & 15 deletions app/src/main/java/com/example/korail_aos/di/NetworkModule.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.example.korail_aos.di

import androidx.databinding.ktx.BuildConfig
import com.example.korail_aos.BuildConfig.BASE_URL
import com.example.korail_aos.data.service.KorailService
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
Expand Down Expand Up @@ -37,22 +36,18 @@ object NetworkModule {

@Provides
@Singleton
fun providesOkHttpClient(interceptor: Interceptor): OkHttpClient {
val client = OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
fun providesKorailOkHttpClient(
interceptor: Interceptor
): OkHttpClient =
OkHttpClient.Builder()
.connectTimeout(15, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(15, TimeUnit.SECONDS)
.addInterceptor(interceptor)

if (BuildConfig.DEBUG) {
client.addInterceptor(
HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BODY
}
.addInterceptor(
HttpLoggingInterceptor().also { it.level = HttpLoggingInterceptor.Level.BODY }
)
}
return client.build()
}
.build()

@Provides
@Singleton
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.korail_aos.presentation.train

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.korail_aos.R
import com.example.korail_aos.databinding.ActivityMainDrawerBinding

private lateinit var binding: ActivityMainDrawerBinding
class DrawerActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main_drawer)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.korail_aos.presentation.train

import android.content.Intent
import android.os.Bundle
import android.view.*
import android.widget.Toast
Expand All @@ -8,11 +9,15 @@ import androidx.fragment.app.Fragment
import com.example.korail_aos.R
import com.example.korail_aos.data.service.KorailService
import com.example.korail_aos.databinding.FragmentTrainBinding
import com.example.korail_aos.presentation.information.InformationActivity
import com.example.korail_aos.remote.ResponseMainDto
import dagger.hilt.android.AndroidEntryPoint
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import java.text.SimpleDateFormat
import java.time.Instant
import java.util.*
import javax.inject.Inject

@AndroidEntryPoint
Expand All @@ -38,7 +43,6 @@ class TrainFragment : Fragment() {
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
return inflater.inflate(R.menu.menu_main_toolbar, menu)
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
Expand All @@ -50,26 +54,45 @@ class TrainFragment : Fragment() {

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

korailService.getTicket().enqueue(object : Callback<ResponseMainDto> {
override fun onResponse(
call: Call<ResponseMainDto>,
response: Response<ResponseMainDto>
) {
if (response.isSuccessful) { // response의 status code가 200~299 사이의
onBind(response.body()!!.data[0])
onBind(response.body()!!.data)
val result = response.body()!!.data
binding.tvDate.text = changeDateFormat(result.date, TrainFragment.DATE_DOW)
}
}

override fun onFailure(call: Call<ResponseMainDto>, t: Throwable) {
Toast.makeText(requireContext(), "에러 발생", Toast.LENGTH_SHORT).show()
}
})
binding.btnBook.setOnClickListener {
val intent = Intent(context, InformationActivity::class.java)
startActivity(intent)
}

binding.btnDrawer.setOnClickListener {
val intent = Intent(context, DrawerActivity::class.java)
startActivity(intent)
}
}
private fun changeDateFormat(date: String, type: Int): String {
val timestamp = Instant.parse(date)
val dateString = Date.from(timestamp)

return when (type) {
TrainFragment.DATE_DOW -> SimpleDateFormat("yyyy년 MM월 dd일 (E)", Locale("ko", "KR")).format(dateString)
else -> SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale("ko", "KR")).format(dateString)
}
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.btn_toolbar_drawer -> {
R.id.btn_drawer -> {
binding.navMainDrawer.openDrawer(Gravity.RIGHT)
binding.navMainDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
true
Expand All @@ -82,4 +105,7 @@ class TrainFragment : Fragment() {
super.onDestroyView()
_binding = null
}
companion object {
private const val DATE_DOW = 0
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ import kotlinx.serialization.Serializable
data class ResponseMainDto(
@SerialName("status") val status: Int,
@SerialName("message") val message: String,
@SerialName("data") val data: List<Data> // 배열로 들어가는 형식이기에 list로 만들어 줘야 한다.
@SerialName("data") val data: Data // 배열로 들어가는 형식이기에 list로 만들어 줘야 한다.
) {
@Serializable
data class Data(
@SerialName("ticket_id") val ticketId: Int,
@SerialName("tikcet_id") val ticketId: Int,
@SerialName("from") val from: String,
@SerialName("to") val to: String,
@SerialName("date") val date: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="66dp"
android:layout_marginStart="180dp"
android:layout_marginStart="188dp"
android:src="@drawable/ic_drawer_notice"/>
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_drawer_bar" />
android:src="@drawable/ic_main_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="55dp"
Expand All @@ -57,7 +57,7 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_drawer_bar" />
android:src="@drawable/ic_main_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="55dp"
Expand All @@ -81,7 +81,7 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_drawer_bar" />
android:src="@drawable/ic_main_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="55dp"
Expand All @@ -105,7 +105,7 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_drawer_bar" />
android:src="@drawable/ic_main_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="55dp"
Expand All @@ -129,7 +129,7 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_drawer_bar" />
android:src="@drawable/ic_main_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="55dp"
Expand All @@ -153,11 +153,11 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_drawer_bar" />
android:src="@drawable/ic_main_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="140dp"
android:layout_marginTop="155dp"
android:layout_marginTop="200dp"
android:background="@color/gray_04"
android:orientation="vertical">

Expand Down
Loading