diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.gitignore b/Paulo/Flo_Clone_UMC_Bottom/.gitignore
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.gitignore
rename to Paulo/Flo_Clone_UMC_Bottom/.gitignore
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/.gitignore b/Paulo/Flo_Clone_UMC_Bottom/.idea/.gitignore
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/.gitignore
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/.gitignore
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/compiler.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/compiler.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/compiler.xml
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/compiler.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/deploymentTargetSelector.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/deploymentTargetSelector.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/deploymentTargetSelector.xml
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/deploymentTargetSelector.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/gradle.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/gradle.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/gradle.xml
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/gradle.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/kotlinc.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/kotlinc.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/kotlinc.xml
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/kotlinc.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/migrations.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/migrations.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/migrations.xml
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/migrations.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/.idea/misc.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/misc.xml
similarity index 66%
rename from Paulo/UMC_Paulo_Mission1_Linear/.idea/misc.xml
rename to Paulo/Flo_Clone_UMC_Bottom/.idea/misc.xml
index 0ad17cbd..59b5413a 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/.idea/misc.xml
+++ b/Paulo/Flo_Clone_UMC_Bottom/.idea/misc.xml
@@ -1,4 +1,3 @@
-
@@ -7,4 +6,11 @@
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/.idea/vcs.xml b/Paulo/Flo_Clone_UMC_Bottom/.idea/vcs.xml
new file mode 100644
index 00000000..b2bdec2d
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/.gitignore b/Paulo/Flo_Clone_UMC_Bottom/app/.gitignore
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/.gitignore
rename to Paulo/Flo_Clone_UMC_Bottom/app/.gitignore
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/build.gradle.kts b/Paulo/Flo_Clone_UMC_Bottom/app/build.gradle.kts
similarity index 71%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/build.gradle.kts
rename to Paulo/Flo_Clone_UMC_Bottom/app/build.gradle.kts
index f1a021f8..13995708 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/build.gradle.kts
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/build.gradle.kts
@@ -4,12 +4,19 @@ plugins {
}
android {
- namespace = "com.example.umc_paulo_mission1_2"
+ namespace = "com.example.flo_clone_umc_bottom"
compileSdk = 34
+ buildFeatures {
+ dataBinding = true
+ viewBinding {
+ enable = true
+ }
+ }
+
defaultConfig {
- applicationId = "com.example.umc_paulo_mission1_2"
- minSdk = 24
+ applicationId = "com.example.flo_clone_umc_bottom"
+ minSdk = 28
targetSdk = 34
versionCode = 1
versionName = "1.0"
@@ -42,7 +49,12 @@ dependencies {
implementation(libs.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
+ implementation(libs.car.ui.lib)
+ implementation("me.relex:circleindicator:2.1.6")
+ implementation("com.google.code.gson:gson:2.8.7")
+ //implementation("me.relex:circleindicator2:2.1.6")
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
+
}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/proguard-rules.pro b/Paulo/Flo_Clone_UMC_Bottom/app/proguard-rules.pro
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/proguard-rules.pro
rename to Paulo/Flo_Clone_UMC_Bottom/app/proguard-rules.pro
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/androidTest/java/com/example/umc_paulo_mission1_2/ExampleInstrumentedTest.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/androidTest/java/com/example/flo_clone_umc_bottom/ExampleInstrumentedTest.kt
similarity index 84%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/androidTest/java/com/example/umc_paulo_mission1_2/ExampleInstrumentedTest.kt
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/androidTest/java/com/example/flo_clone_umc_bottom/ExampleInstrumentedTest.kt
index 1b602cd3..5499c313 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/androidTest/java/com/example/umc_paulo_mission1_2/ExampleInstrumentedTest.kt
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/androidTest/java/com/example/flo_clone_umc_bottom/ExampleInstrumentedTest.kt
@@ -1,4 +1,4 @@
-package com.example.umc_paulo_mission1_2
+package com.example.flo_clone_umc_bottom
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("com.example.umc_paulo_mission1_2", appContext.packageName)
+ assertEquals("com.example.flo_clone_umc_bottom", appContext.packageName)
}
}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/AndroidManifest.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/AndroidManifest.xml
similarity index 70%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/AndroidManifest.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/AndroidManifest.xml
index 2c06b514..99178612 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/AndroidManifest.xml
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ xmlns:tools="http://schemas.android.com/tools" >
+ android:theme="@style/Theme.Flo_Clone_UMC_Bottom"
+ tools:targetApi="31" >
+ android:exported="true"
+ android:theme="@style/SplashTheme">
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/Album.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/Album.kt
new file mode 100644
index 00000000..dfe0502f
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/Album.kt
@@ -0,0 +1,10 @@
+package com.example.flo_clone_umc_bottom
+
+import java.util.ArrayList
+
+data class Album(
+ var title: String? = "",
+ var singer: String? = "",
+ var coverImg: Int? = null,
+ var songs: ArrayList? = null
+)
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumFragment.kt
new file mode 100644
index 00000000..f17eb88e
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumFragment.kt
@@ -0,0 +1,60 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TableLayout
+import android.widget.Toast
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentAlbumBinding
+import com.google.android.material.tabs.TabLayoutMediator
+import com.google.gson.Gson
+
+class AlbumFragment : Fragment() {
+ lateinit var binding : FragmentAlbumBinding
+ private var information = arrayListOf("수록곡","상세정보","영상")
+ private var gson: Gson = Gson()
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+
+
+ ): View? {
+ binding = FragmentAlbumBinding.inflate(inflater, container,false)
+
+ val albumJson = arguments?.getString("album")
+ val album = gson.fromJson(albumJson, Album::class.java)
+ setInit(album)
+
+ binding.albumBackIv.setOnClickListener {
+ (context as MainActivity).supportFragmentManager.beginTransaction().replace(R.id.main_frm,HomeFragment()).commitAllowingStateLoss()
+ }
+
+// val albumTitle = arguments?.getString("ALBUM_TITLE")
+// val albumArtist = arguments?.getString("ALBUM_ARTIST")
+// val albumImageResId = arguments?.getInt("ALBUM_IMAGE")
+
+ val albumAdapter = AlbumVPAdapter(this, album.title, album.singer)
+ binding.albumContentVp.adapter = albumAdapter
+ TabLayoutMediator(binding.albumContentTb, binding.albumContentVp){
+ tab, position ->
+ tab.text = information[position]
+ }.attach()
+
+// binding.albumMusicTitleTv.text = album.title ?: "Unknown Album"
+// binding.albumSingerNameTv.text = album.singer ?: "Unknown Artist"
+// albumImageResId?.let { binding.albumAlbumIv.setImageResource(it) }
+//
+ val formattedTitle = String.format("%s 5th Album '%s'", album.singer,album.title)
+ binding.albumMusicTitleTv.text = formattedTitle
+ return binding.root
+ }
+
+ private fun setInit(album: Album){
+ binding.albumAlbumIv.setImageResource(album.coverImg!!)
+ }
+
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumRVAdapter.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumRVAdapter.kt
new file mode 100644
index 00000000..e78aa3a8
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumRVAdapter.kt
@@ -0,0 +1,60 @@
+package com.example.flo_clone_umc_bottom
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.example.flo_clone_umc_bottom.databinding.ItemAlbumBinding
+
+class AlbumRVAdapter(private val albumList: ArrayList): RecyclerView.Adapter() {
+ interface MyItemClickListener{
+ fun onItemClick(album: Album)
+ fun onRemoveAlbum(position: Int)
+ fun onIntentAlbum(album: Album)
+ }
+
+ private lateinit var mItemClickListener: MyItemClickListener
+ fun setMyItemClickListener(itemClickListener: MyItemClickListener){
+ mItemClickListener = itemClickListener
+ }
+
+ fun addItem(album: Album){
+ albumList.add(album)
+ notifyDataSetChanged()
+ }
+
+ fun removeItem(position: Int){
+ albumList.removeAt(position)
+ notifyDataSetChanged()
+ }
+ override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): AlbumRVAdapter.ViewHolder {
+ val binding: ItemAlbumBinding = ItemAlbumBinding.inflate(LayoutInflater.from(viewGroup.context), viewGroup, false)
+
+ return ViewHolder(binding)
+ }
+
+ override fun onBindViewHolder(holder: AlbumRVAdapter.ViewHolder, position: Int) {
+ holder.bind(albumList[position])
+ holder.itemView.setOnClickListener{
+ mItemClickListener.onItemClick(albumList[position])
+ }
+ holder.binding.itemAlbumTitleTv.setOnClickListener{
+ mItemClickListener.onRemoveAlbum(position)
+ }
+ holder.binding.itemAlbumPlayImgIv.setOnClickListener {
+ mItemClickListener.onIntentAlbum(albumList[position])
+ }
+ //6주차 정보 전달
+ }
+
+ override fun getItemCount(): Int = albumList.size
+
+ inner class ViewHolder(val binding: ItemAlbumBinding): RecyclerView.ViewHolder(binding.root){
+
+ fun bind(album: Album){
+ binding.itemAlbumTitleTv.text = album.title
+ binding.itemAlbumSingerTv.text = album.title
+ binding.itemAlbumCoverImgIv.setImageResource(album.coverImg!!)
+ }
+ }
+ //6주차 AlbumRVAdapter 확인 전
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumVPAdapter.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumVPAdapter.kt
new file mode 100644
index 00000000..a4359657
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/AlbumVPAdapter.kt
@@ -0,0 +1,25 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.viewpager2.adapter.FragmentStateAdapter
+
+class AlbumVPAdapter(fragment: Fragment, private val albumTitle: String?,
+ private val albumArtist: String?):FragmentStateAdapter(fragment) {
+ override fun getItemCount(): Int = 3
+ override fun createFragment(position: Int): Fragment {
+ val fragment = when (position) {
+ 0 -> SongFragment()
+ 1 -> DetailFragment()
+ else -> VideoFragment()
+ }
+ if (fragment is SongFragment) {
+ val bundle = Bundle().apply {
+ putString("ALBUM_TITLE", albumTitle)
+ putString("ALBUM_ARTIST", albumArtist)
+ }
+ fragment.arguments = bundle
+ }
+ return fragment
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/BannerFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/BannerFragment.kt
new file mode 100644
index 00000000..f4698f4f
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/BannerFragment.kt
@@ -0,0 +1,24 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentBannerBinding
+
+class BannerFragment(val imgRes : Int) : Fragment() {
+ lateinit var binding : FragmentBannerBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentBannerBinding.inflate(inflater, container, false)
+
+ binding.bannerImageIv.setImageResource(imgRes)
+
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/BannerVPAdapter.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/BannerVPAdapter.kt
new file mode 100644
index 00000000..f5b8d409
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/BannerVPAdapter.kt
@@ -0,0 +1,18 @@
+package com.example.flo_clone_umc_bottom
+
+import androidx.fragment.app.Fragment
+import androidx.viewpager2.adapter.FragmentStateAdapter
+
+class BannerVPAdapter(fragment: Fragment) :FragmentStateAdapter(fragment) {
+
+ private val fragmentlist : ArrayList = ArrayList()
+
+ override fun getItemCount(): Int = fragmentlist.size
+
+ override fun createFragment(position: Int): Fragment = fragmentlist[position]
+
+ fun addFragment(fragment: Fragment){
+ fragmentlist.add(fragment)
+ notifyItemInserted(fragmentlist.size-1)
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/DetailFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/DetailFragment.kt
new file mode 100644
index 00000000..c96b527d
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/DetailFragment.kt
@@ -0,0 +1,22 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentDetailBinding
+
+class DetailFragment : Fragment() {
+
+ lateinit var binding: FragmentDetailBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentDetailBinding.inflate(inflater,container,false)
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/HomeBannerVPAdapter.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/HomeBannerVPAdapter.kt
new file mode 100644
index 00000000..7bec188e
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/HomeBannerVPAdapter.kt
@@ -0,0 +1,18 @@
+package com.example.flo_clone_umc_bottom
+
+import androidx.fragment.app.Fragment
+import androidx.viewpager2.adapter.FragmentStateAdapter
+
+class HomeBannerVPAdapter(fragment: Fragment) :FragmentStateAdapter(fragment){
+
+ private val fragmentlist : ArrayList = ArrayList()
+
+ override fun getItemCount(): Int = fragmentlist.size
+
+ override fun createFragment(position: Int): Fragment = fragmentlist[position]
+
+ fun addFragment(fragment: Fragment){
+ fragmentlist.add(fragment)
+ notifyItemInserted(fragmentlist.size-1)
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/HomeFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/HomeFragment.kt
new file mode 100644
index 00000000..9d91c5d2
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/HomeFragment.kt
@@ -0,0 +1,179 @@
+package com.example.flo_clone_umc_bottom
+
+import android.content.Context
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.viewpager2.widget.ViewPager2
+import com.example.flo_clone_umc_bottom.databinding.FragmentHomeBinding
+import com.google.gson.Gson
+import java.util.Timer
+import java.util.TimerTask
+
+class HomeFragment : Fragment() {
+
+ private val timer = Timer()
+ private val handler = Handler(Looper.getMainLooper())
+ lateinit var binding: FragmentHomeBinding
+ private var albumDatas = ArrayList()
+ private var albumDataListener: AlbumRVAdapter.MyItemClickListener? = null
+ //6주차 데이터 전달을 위해 인터페이스를 참조하는 변수 생성
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ if (context is AlbumRVAdapter.MyItemClickListener) {
+ albumDataListener = context
+ } else {
+ albumDataListener = null
+ }
+ //6주차 AlbumRVAadpter에 MyItemClickListener가 있는지 확인
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentHomeBinding.inflate(inflater, container, false)
+
+ albumDatas.apply {
+ add(Album("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(Album("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(Album("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(Album("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(Album("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(Album("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ }
+// binding.homeAlbumImgIv1.setOnClickListener {
+// val bundle = Bundle()
+// bundle.putInt("ALBUM_IMAGE", R.drawable.img_album_exp2)
+// bundle.putString("ALBUM_TITLE", "LILAC")
+// bundle.putString("ALBUM_ARTIST", "아이유 (IU)")
+// val fragment = AlbumFragment()
+// fragment.arguments = bundle
+//
+// (context as MainActivity).supportFragmentManager.beginTransaction()
+// .replace(R.id.main_frm, fragment)
+// .commitAllowingStateLoss()
+// }
+//
+// binding.homeAlbumImgIv2.setOnClickListener {
+// val bundle = Bundle()
+// bundle.putInt("ALBUM_IMAGE", R.drawable.img_album_exp1)
+// bundle.putString("ALBUM_TITLE", "My NINJAS")
+// bundle.putString("ALBUM_ARTIST", "플리키뱅")
+// val fragment = AlbumFragment()
+// fragment.arguments = bundle
+//
+// (context as MainActivity).supportFragmentManager.beginTransaction()
+// .replace(R.id.main_frm, fragment)
+// .commitAllowingStateLoss()
+// }
+//
+// binding.homeAlbumImgIv3.setOnClickListener {
+// val bundle = Bundle()
+// bundle.putInt("ALBUM_IMAGE", R.drawable.img_album_exp)
+// bundle.putString("ALBUM_TITLE", "Butter")
+// bundle.putString("ALBUM_ARTIST", "BTS")
+// val fragment = AlbumFragment()
+// fragment.arguments = bundle
+//
+// (context as MainActivity).supportFragmentManager.beginTransaction()
+// .replace(R.id.main_frm, fragment)
+// .commitAllowingStateLoss()
+// }
+
+
+// binding.homeAlbumImgIv1.setOnClickListener {
+// (context as MainActivity).supportFragmentManager.beginTransaction().replace(R.id.main_frm,AlbumFragment()).commitAllowingStateLoss()
+// }
+
+ val albumRVAdapter = AlbumRVAdapter(albumDatas)
+ binding.homeTodayMusicAlbumRv.adapter = albumRVAdapter
+ binding.homeTodayMusicAlbumRv.layoutManager = LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false)
+
+ albumRVAdapter.setMyItemClickListener(object: AlbumRVAdapter.MyItemClickListener{
+ override fun onItemClick(album: Album) {
+ changeAlbumFragment(album)
+ }
+
+ override fun onRemoveAlbum(position: Int) {
+ albumRVAdapter.removeItem(position)
+ }
+
+ override fun onIntentAlbum(album: Album) {
+ (activity as MainActivity).updateMiniPlayer(album)
+ }
+ //6주차 미니 플레이어 업데이트
+ })
+
+ val bannerAdapter = BannerVPAdapter(this)
+ bannerAdapter.addFragment(BannerFragment(R.drawable.img_home_viewpager_exp))
+ bannerAdapter.addFragment(BannerFragment(R.drawable.img_home_viewpager_exp2))
+ binding.homeBannerVp.adapter = bannerAdapter
+ binding.homeBannerVp.orientation = ViewPager2.ORIENTATION_HORIZONTAL
+
+ val homeBannerAdapter = HomeBannerVPAdapter(this)
+ homeBannerAdapter.addFragment(BannerFragment(R.drawable.img_first_album_default))
+ homeBannerAdapter.addFragment(BannerFragment(R.drawable.img_first_album_default))
+ homeBannerAdapter.addFragment(BannerFragment(R.drawable.img_first_album_default))
+ binding.homePannelBackgroundVp.adapter = homeBannerAdapter
+ binding.homePannelBackgroundVp.orientation = ViewPager2.ORIENTATION_HORIZONTAL
+
+ binding.homeCircleCi.setViewPager(binding.homePannelBackgroundVp)
+ startAutoSlide(homeBannerAdapter)
+
+ return binding.root
+ }
+
+ private fun changeAlbumFragment(album: Album) {
+ (context as MainActivity).supportFragmentManager.beginTransaction()
+ .replace(R.id.main_frm, AlbumFragment().apply {
+ arguments = Bundle().apply {
+ val gson = Gson()
+ val albumJson = gson.toJson(album)
+ putString("album", albumJson)
+ }
+ })
+ .commitAllowingStateLoss()
+ }
+
+ private fun startAutoSlide(adapter: HomeBannerVPAdapter) {
+ timer.scheduleAtFixedRate(object : TimerTask() {
+ override fun run() {
+ handler.post {
+ val nextItem = binding.homePannelBackgroundVp.currentItem + 1
+ if (nextItem < adapter.itemCount) {
+ binding.homePannelBackgroundVp.currentItem = nextItem
+ } else {
+ binding.homePannelBackgroundVp.currentItem = 0
+ }
+ }
+ }
+ }, 3000, 3000)
+ }
+
+// private fun startAutoSlide(adpater : BannerVPAdapter) {
+// // 일정 간격으로 슬라이드 변경 (3초마다)
+// timer.scheduleAtFixedRate(3000, 3000) {
+// handler.post {
+// val nextItem = binding.homePannelBackgroundVp.currentItem + 1
+// if (nextItem < adpater.itemCount) {
+// binding.homePannelBackgroundVp.currentItem = nextItem
+// } else {
+// binding.homePannelBackgroundVp.currentItem = 0 // 마지막 페이지에서 첫 페이지로 순환
+// }
+// }
+// }
+// }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ timer.cancel()
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerAlbum.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerAlbum.kt
new file mode 100644
index 00000000..2dbaa404
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerAlbum.kt
@@ -0,0 +1,9 @@
+package com.example.flo_clone_umc_bottom
+
+data class LockerAlbum(
+ var title: String? = "",
+ var singer: String? = "",
+ var coverImg: Int? = null,
+ var info: String? = "",
+ var isButtonVisible: Boolean = false
+)
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerAlbumRVAdapter.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerAlbumRVAdapter.kt
new file mode 100644
index 00000000..0845e6b7
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerAlbumRVAdapter.kt
@@ -0,0 +1,90 @@
+package com.example.flo_clone_umc_bottom
+
+import android.util.Log
+import android.util.SparseBooleanArray
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.core.os.persistableBundleOf
+import androidx.recyclerview.widget.RecyclerView
+import com.example.flo_clone_umc_bottom.databinding.ItemAlbumBinding
+import com.example.flo_clone_umc_bottom.databinding.ItemSavedBinding
+
+class LockerAlbumRVAdapter(private val savedList: ArrayList):RecyclerView.Adapter() {
+
+ private val switchStatus = SparseBooleanArray()
+
+ interface MyItemClickListener{
+ //fun onItemClick(lockerAlbum: LockerAlbum)
+ fun onRemoveAlbum(position: Int)
+ fun onButtonClick(position: Int, click: Boolean)
+ }
+
+ private lateinit var mItemClickListener: MyItemClickListener
+ fun setMyItemClickListener(itemClickListener: MyItemClickListener){
+ mItemClickListener = itemClickListener
+ }
+
+ fun removeItem(position: Int){
+ savedList.removeAt(position)
+ notifyDataSetChanged()
+ }
+ //6주차 ... 누르면 없어지기
+
+
+
+ override fun onCreateViewHolder( viewGroup: ViewGroup, viewType: Int): LockerAlbumRVAdapter.ViewHolder {
+ val binding: ItemSavedBinding = ItemSavedBinding.inflate(LayoutInflater.from(viewGroup.context), viewGroup, false)
+
+ return ViewHolder(binding)
+ }
+
+ override fun onBindViewHolder(holder: LockerAlbumRVAdapter.ViewHolder, position: Int) {
+ holder.binding.itemSavedSwitchSw.isChecked = switchStatus.get(position, false)
+
+ holder.bind(savedList[position])
+ holder.binding.itemSavedMoreIv.setOnClickListener{
+ mItemClickListener.onRemoveAlbum(position)
+ }
+ //6주차 ... 누르면 없어지기
+
+ holder.binding.itemSavedPlayIv.setOnClickListener {
+ savedList[position].isButtonVisible = false
+ mItemClickListener.onButtonClick(position, savedList[position].isButtonVisible)
+ notifyItemChanged(position)
+ }
+
+ holder.binding.itemSavedPauseIv.setOnClickListener {
+ savedList[position].isButtonVisible = true
+ mItemClickListener.onButtonClick(position, savedList[position].isButtonVisible)
+ notifyItemChanged(position)
+ }
+ }
+
+ override fun getItemCount(): Int = savedList.size
+
+ inner class ViewHolder(val binding: ItemSavedBinding): RecyclerView.ViewHolder(binding.root){
+
+ fun bind(lockerAlbum:LockerAlbum){
+ binding.itemSavedTitleTv.text = lockerAlbum.title
+ binding.itemSavedSingerTv.text = lockerAlbum.title
+ binding.itemSavedImgIv.setImageResource(lockerAlbum.coverImg!!)
+
+ if (lockerAlbum.isButtonVisible) {
+ binding.itemSavedPlayIv.visibility = View.GONE
+ binding.itemSavedPauseIv.visibility = View.VISIBLE
+ } else {
+ binding.itemSavedPlayIv.visibility = View.VISIBLE
+ binding.itemSavedPauseIv.visibility = View.GONE
+ }
+
+ binding.itemSavedSwitchSw.setOnCheckedChangeListener(null)
+ binding.itemSavedSwitchSw.isChecked = switchStatus.get(bindingAdapterPosition, false)
+
+ binding.itemSavedSwitchSw.setOnCheckedChangeListener { _, isChecked ->
+ switchStatus.put(bindingAdapterPosition, isChecked)
+ }
+ //6주차 스위치 상태 저장
+ }
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerFragment.kt
new file mode 100644
index 00000000..a6b3eca6
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerFragment.kt
@@ -0,0 +1,35 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentLockerBinding
+import com.example.flo_clone_umc_bottom.databinding.FragmentSavedBinding
+import com.google.android.material.tabs.TabLayoutMediator
+import java.util.concurrent.locks.Lock
+
+class LockerFragment : Fragment() {
+
+ lateinit var binding: FragmentLockerBinding
+ private var information = arrayListOf("저정한 곡","음악파일")
+
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentLockerBinding.inflate(inflater, container, false)
+
+ val lockerAdapter = LockerVPAdapter(this)
+ binding.lockerContentVp.adapter = lockerAdapter
+ TabLayoutMediator(binding.lockerContentTb, binding.lockerContentVp){
+ tab, position ->
+ tab.text = information[position]
+ }.attach()
+
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerVPAdapter.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerVPAdapter.kt
new file mode 100644
index 00000000..18c5d217
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LockerVPAdapter.kt
@@ -0,0 +1,15 @@
+package com.example.flo_clone_umc_bottom
+
+import androidx.fragment.app.Fragment
+import androidx.viewpager2.adapter.FragmentStateAdapter
+
+class LockerVPAdapter(fragment: Fragment): FragmentStateAdapter(fragment){
+ override fun getItemCount(): Int = 2
+
+ override fun createFragment(position: Int): Fragment {
+ return when(position) {
+ 0 -> SavedFragment()
+ else -> MusicFileFragment()
+ }
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LookFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LookFragment.kt
new file mode 100644
index 00000000..f16c12f3
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/LookFragment.kt
@@ -0,0 +1,23 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentLookBinding
+
+class LookFragment : Fragment() {
+
+ lateinit var binding: FragmentLookBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentLookBinding.inflate(inflater, container, false)
+
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/MainActivity.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/MainActivity.kt
new file mode 100644
index 00000000..27b75d92
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/MainActivity.kt
@@ -0,0 +1,141 @@
+package com.example.flo_clone_umc_bottom
+
+import android.app.Activity
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.util.Log
+import android.view.View
+import android.widget.Toast
+import androidx.activity.result.contract.ActivityResultContracts
+import com.example.flo_clone_umc_bottom.databinding.ActivityMainBinding
+import com.google.gson.Gson
+
+class MainActivity : AppCompatActivity() {
+
+ lateinit var binding: ActivityMainBinding
+
+ private var song: Song = Song()
+ private var gson: Gson = Gson()
+
+ val getResultText = registerForActivityResult(
+ ActivityResultContracts.StartActivityForResult()
+ ) { result ->
+ if (result.resultCode == Activity.RESULT_OK) {
+ val albumTitle = result.data?.getStringExtra("ALBUM_TITLE")
+ Toast.makeText(this,albumTitle, Toast.LENGTH_SHORT).show()
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setTheme(R.style.Theme_Flo_Clone_UMC_Bottom)
+ binding = ActivityMainBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ //val song = Song(binding.mainMiniplayerTitleTv.text.toString(), binding.mainMiniplayerSingerTv.text.toString(),0,60,false,"music_lilac")
+ //6주차 정보가 계속 초기화 되어서 들어가는 문제를 해결
+
+ binding.mainPlayerCl.setOnClickListener {
+ //startActivity(Intent(this, SongActivity::class.java))
+ val intent = Intent(this, SongActivity::class.java)
+ intent.putExtra("title", song.title)
+ intent.putExtra("singer", song.singer)
+ intent.putExtra("second", song.second)
+ intent.putExtra("playTime", song.playTime)
+ intent.putExtra("isPlaying", song.isPlaying)
+ intent.putExtra("music", song.music)
+ intent.putExtra("coverImg", song.coverImg)
+ getResultText.launch(intent)
+ }
+
+
+
+
+ initBottomNavigation()
+
+ Log.d("Song",song.title + song.singer)
+ }
+
+ private fun initBottomNavigation(){
+
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_frm, HomeFragment())
+ .commitAllowingStateLoss()
+
+ binding.mainBnv.setOnItemSelectedListener{ item ->
+ when (item.itemId) {
+
+ R.id.homeFragment -> {
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_frm, HomeFragment())
+ .commitAllowingStateLoss()
+ return@setOnItemSelectedListener true
+ }
+
+ R.id.lookFragment -> {
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_frm, LookFragment())
+ .commitAllowingStateLoss()
+ return@setOnItemSelectedListener true
+ }
+ R.id.searchFragment -> {
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_frm, SearchFragment())
+ .commitAllowingStateLoss()
+ return@setOnItemSelectedListener true
+ }
+ R.id.lockerFragment -> {
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_frm, LockerFragment())
+ .commitAllowingStateLoss()
+ return@setOnItemSelectedListener true
+ }
+ }
+ false
+ }
+ }
+
+
+ private fun setMiniPlayer(song: Song){
+ binding.mainMiniplayerTitleTv.text = song.title
+ binding.mainMiniplayerSingerTv.text = song.singer
+ binding.mainMiniplayerProgressSb.progress = (song.second*100000)/song.playTime
+
+ }
+
+ fun updateMiniPlayer(album: Album) {
+ song = Song(
+ title = album.title,
+ singer = album.singer,
+ second = 0,
+ playTime = 60,
+ isPlaying = false,
+ music = "music_lilac",
+ coverImg = album.coverImg
+ )
+ //6주차 SongActivity로 정보 전달을 위한 song 변수 초기화
+
+ binding.mainMiniplayerTitleTv.text = album.title
+ binding.mainMiniplayerSingerTv.text = album.singer
+ binding.mainMiniplayerProgressSb.progress = (song.second*100000)/song.playTime
+ binding.mainPlayerCl.visibility = View.VISIBLE // 미니 플레이어 표시
+ }
+ //6주차 미니 플레이어 업데이트
+
+ override fun onStart() {
+ super.onStart()
+ val sharedPreferences = getSharedPreferences("song", MODE_PRIVATE)
+ val songJson = sharedPreferences.getString("songData",null )
+
+ song = if(songJson == null){
+ Song("라일락", "아이유(IU)", 0, 60, false, "music_lilac", R.drawable.img_album_exp2)
+ } else {
+ gson.fromJson(songJson, Song::class.java)
+ }
+
+ setMiniPlayer(song)
+
+
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/MusicFileFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/MusicFileFragment.kt
new file mode 100644
index 00000000..39476b41
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/MusicFileFragment.kt
@@ -0,0 +1,23 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentMusicfileBinding
+import com.example.flo_clone_umc_bottom.databinding.FragmentVideoBinding
+
+class MusicFileFragment : Fragment() {
+
+ lateinit var binding: FragmentMusicfileBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentMusicfileBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SavedFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SavedFragment.kt
new file mode 100644
index 00000000..9b7409f6
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SavedFragment.kt
@@ -0,0 +1,82 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.example.flo_clone_umc_bottom.databinding.FragmentSavedBinding
+
+class SavedFragment:Fragment() {
+ lateinit var binding : FragmentSavedBinding
+ private var savedDatas = ArrayList()
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentSavedBinding.inflate(inflater,container,false)
+
+ savedDatas.apply{
+ add(LockerAlbum("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(LockerAlbum("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(LockerAlbum("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(LockerAlbum("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(LockerAlbum("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(LockerAlbum("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ add(LockerAlbum("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(LockerAlbum("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(LockerAlbum("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(LockerAlbum("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(LockerAlbum("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(LockerAlbum("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ add(LockerAlbum("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(LockerAlbum("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(LockerAlbum("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(LockerAlbum("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(LockerAlbum("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(LockerAlbum("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ add(LockerAlbum("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(LockerAlbum("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(LockerAlbum("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(LockerAlbum("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(LockerAlbum("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(LockerAlbum("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ add(LockerAlbum("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(LockerAlbum("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(LockerAlbum("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(LockerAlbum("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(LockerAlbum("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(LockerAlbum("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ add(LockerAlbum("Butter", "방탄소년단 (BTS)", R.drawable.img_album_exp))
+ add(LockerAlbum("Lilac", "아이유 (IU)", R.drawable.img_album_exp2))
+ add(LockerAlbum("Next Level", "에스파 (AESPA)", R.drawable.img_album_exp3))
+ add(LockerAlbum("Boy with Luv", "방탄소년단 (BTS)", R.drawable.img_album_exp4))
+ add(LockerAlbum("BBoom BBoom", "모모랜드 (MOMOLAND)", R.drawable.img_album_exp5))
+ add(LockerAlbum("Weekend", "태연 (Tae Yeon)", R.drawable.img_album_exp6))
+ }
+ //6주차 locker에 recyclerView 내용 추가
+
+ val lockerAlbumRVAdapter = LockerAlbumRVAdapter(savedDatas)
+ binding.savedAlbumInfoRv.adapter = lockerAlbumRVAdapter
+ binding.savedAlbumInfoRv.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL,false)
+ //6주차 recyclerView에 추가
+
+ lockerAlbumRVAdapter.setMyItemClickListener(object: LockerAlbumRVAdapter.MyItemClickListener{
+ override fun onRemoveAlbum(position: Int) {
+ lockerAlbumRVAdapter.removeItem(position)
+ }
+
+ //6주차 ... 누르면 없어지기
+ override fun onButtonClick(position: Int, click: Boolean) {
+ savedDatas[position].isButtonVisible = !savedDatas[position].isButtonVisible
+
+ }
+ })
+
+
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SearchFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SearchFragment.kt
new file mode 100644
index 00000000..9e5b9088
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SearchFragment.kt
@@ -0,0 +1,23 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentSearchBinding
+
+class SearchFragment : Fragment() {
+
+ lateinit var binding: FragmentSearchBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentSearchBinding.inflate(inflater, container, false)
+
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/Song.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/Song.kt
new file mode 100644
index 00000000..04c09a5e
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/Song.kt
@@ -0,0 +1,11 @@
+package com.example.flo_clone_umc_bottom
+
+data class Song(
+ val title : String? = "",
+ val singer : String? = "",
+ var second : Int = 0,
+ val playTime : Int = 0,
+ var isPlaying : Boolean = false,
+ var music : String = "",
+ var coverImg: Int? = null
+)
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SongActivity.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SongActivity.kt
new file mode 100644
index 00000000..f9d0ef80
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SongActivity.kt
@@ -0,0 +1,197 @@
+package com.example.flo_clone_umc_bottom
+
+import android.app.Activity
+import android.content.Intent
+import android.media.MediaPlayer
+import android.os.Bundle
+import android.os.PersistableBundle
+import android.util.Log
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import com.example.flo_clone_umc_bottom.databinding.ActivitySongBinding
+import com.google.gson.Gson
+
+class SongActivity : AppCompatActivity() {
+ lateinit var binding : ActivitySongBinding
+ lateinit var song : Song
+ lateinit var timer: Timer
+ private var mediaPlayer: MediaPlayer? = null
+ private var gson : Gson = Gson()
+ private var repeat = false //5주차 repeat 변수
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivitySongBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ initSong()
+ setPlayer(song)
+
+ binding.songMiniplayerIv.setOnClickListener {
+ setPlayerStatus(false)
+ }
+ binding.songPauseIv.setOnClickListener {
+ setPlayerStatus(true)
+ }
+
+ binding.songRepeatIv.setOnClickListener {
+ setRepeatStatus(true)
+ }
+ binding.songRepeatingIv.setOnClickListener {
+ setRepeatStatus(false)
+ }
+ //5주차 setRepeatStatus 함수에 맞춰 true, false 변경
+
+ binding.songRandomIv.setOnClickListener {
+ setRandomStatus(false)
+ }
+ binding.songRandomingIv.setOnClickListener {
+ setRandomStatus(true)
+ }
+
+ binding.songDownIb.setOnClickListener{
+ val resultIntent = Intent()
+ resultIntent.putExtra("ALBUM_TITLE", binding.songMusicTitleTv.text)
+ setResult(Activity.RESULT_OK, resultIntent)
+ finish()
+ }
+ }
+
+ private fun initSong(){
+ if(intent.hasExtra("title") && intent.hasExtra("singer")){
+ song = Song(
+ intent.getStringExtra("title")!!,
+ intent.getStringExtra("singer")!!,
+ intent.getIntExtra("second",0),
+ intent.getIntExtra("playTime",0),
+ intent.getBooleanExtra("isPlaying",false),
+ intent.getStringExtra("music")!!
+ )
+ }
+ startTimer()
+ }
+
+ private fun setPlayer(song : Song){
+ binding.songMusicTitleTv.text = intent.getStringExtra("title")
+ binding.songSingerNameTv.text = intent.getStringExtra("singer")
+ binding.songStartTimeTv.text = String.format("%02d:%02d",song.second /60, song.second % 60)
+ binding.songEndTimeTv.text = String.format("%02d:%02d",song.playTime /60, song.playTime % 60)
+ binding.songProgressSb.progress = (song.second * 1000 / song.playTime)
+ //val music = resources.getIdentifier(song.music, "raw", this.packageName)
+ val music = R.raw.music_lilac
+ val coverImgResId = intent.getIntExtra("coverImg", R.drawable.img_album_exp2)
+ mediaPlayer = MediaPlayer.create(this,music)
+ binding.songAlbumIv.setImageResource(coverImgResId)
+
+ setPlayerStatus(song.isPlaying)
+ }
+
+ fun setPlayerStatus(isPlaying : Boolean){
+ song.isPlaying = isPlaying
+ timer.isPlaying = isPlaying
+ if(isPlaying){
+ binding.songMiniplayerIv.visibility = View.VISIBLE
+ binding.songPauseIv.visibility = View.GONE
+ mediaPlayer?.start()
+ }
+ else {
+ binding.songMiniplayerIv.visibility = View.GONE
+ binding.songPauseIv.visibility = View.VISIBLE
+ if(mediaPlayer?.isPlaying == true){
+ mediaPlayer?.pause()
+ }
+ }
+ }
+
+ private fun startTimer() {
+ if (::timer.isInitialized) {
+ timer.interrupt()
+ }
+ timer = Timer(song.playTime, song.isPlaying)
+ timer.start()
+ }
+ //5주차 기존 타이머 스레드 종료 및 시작
+
+ inner class Timer(private val playTime: Int, var isPlaying: Boolean = true): Thread() {
+ private var second: Int = 0
+ private var mills: Float = 0f
+
+ override fun run() {
+ super.run()
+ try {
+ while (true) {
+ if (second >= playTime) {
+ if (repeat) {
+ //5주차 repeat이 활성화된 경우, 노래를 다시 시작
+ second = 0
+ mills = 0f
+ mediaPlayer?.seekTo(0)
+ mediaPlayer?.start()
+ } else {
+ break
+ }
+ }
+
+ if (isPlaying) {
+ sleep(50)
+ mills += 50
+
+ runOnUiThread {
+ binding.songProgressSb.progress = ((mills / playTime) * 100).toInt()
+ }
+ if (mills % 1000 == 0f) {
+ runOnUiThread {
+ binding.songStartTimeTv.text = String.format("%02d:%02d", second / 60, second % 60)
+ }
+ second++
+ }
+ }
+ }
+ } catch (e: InterruptedException) {
+ Log.d("Song", "쓰레드가 죽었습니다. ${e.message}")
+ }
+ }
+ }
+
+ override fun onPause() {
+ setPlayerStatus(false)
+ super.onPause()
+ song.second = ((binding.songProgressSb.progress * song.playTime)/100)/1000
+ val sharedPreferences = getSharedPreferences("song", MODE_PRIVATE)
+ val editor = sharedPreferences.edit()
+ editor.putString("title", song.title)
+ val songJson = gson.toJson(song)
+ editor.putString("songData", songJson)
+
+ editor.apply()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ timer.interrupt()
+ mediaPlayer?.release()
+ mediaPlayer = null
+ }
+
+ fun setRepeatStatus(isRepeating: Boolean) {
+ repeat = isRepeating // repeat 변수 업데이트
+ if (repeat) {
+ binding.songRepeatIv.visibility = View.GONE
+ binding.songRepeatingIv.visibility = View.VISIBLE
+ } else {
+ binding.songRepeatIv.visibility = View.VISIBLE
+ binding.songRepeatingIv.visibility = View.GONE
+ }
+ }
+ //5주차 repeat에 맞춰 변경
+
+ fun setRandomStatus(isPlaying : Boolean) {
+ if (isPlaying) {
+ binding.songRandomIv.visibility = View.VISIBLE
+ binding.songRandomingIv.visibility = View.GONE
+ } else {
+ binding.songRandomIv.visibility = View.GONE
+ binding.songRandomingIv.visibility = View.VISIBLE
+ }
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SongFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SongFragment.kt
new file mode 100644
index 00000000..81116ef1
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/SongFragment.kt
@@ -0,0 +1,49 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Toast
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentSongvpBinding
+
+class SongFragment : Fragment() {
+ lateinit var binding: FragmentSongvpBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentSongvpBinding.inflate(inflater,container,false)
+ //내 취향 믹스 버튼 온 오프
+ binding.songMixoffTg.setOnClickListener {
+ setMixStatus(true)
+ }
+ binding.songMixonTg.setOnClickListener {
+ setMixStatus(false)
+ }
+
+ val albumTitle = arguments?.getString("ALBUM_TITLE")
+ val albumArtist = arguments?.getString("ALBUM_ARTIST")
+
+ binding.songMusicTitle01Tv.text = albumTitle ?: "Unknown Album"
+ binding.songSingerName01Tv.text = albumArtist ?: "Unknown Artist"
+
+ binding.songLalacLayout.setOnClickListener {
+ Toast.makeText(activity,albumTitle, Toast.LENGTH_SHORT).show()
+ }
+ return binding.root
+ }
+
+ fun setMixStatus(isPlaying : Boolean) {
+ if (isPlaying) {
+ binding.songMixoffTg.visibility = View.GONE
+ binding.songMixonTg.visibility = View.VISIBLE
+ } else {
+ binding.songMixoffTg.visibility = View.VISIBLE
+ binding.songMixonTg.visibility = View.GONE
+ }
+ }
+}
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/VideoFragment.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/VideoFragment.kt
new file mode 100644
index 00000000..5588808a
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/java/com/example/flo_clone_umc_bottom/VideoFragment.kt
@@ -0,0 +1,22 @@
+package com.example.flo_clone_umc_bottom
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.flo_clone_umc_bottom.databinding.FragmentDetailBinding
+import com.example.flo_clone_umc_bottom.databinding.FragmentVideoBinding
+
+class VideoFragment : Fragment() {
+ lateinit var binding: FragmentVideoBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentVideoBinding.inflate(inflater,container,false)
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/ic_launcher_foreground.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/ic_launcher_foreground.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/apple_44.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/apple_44.png
new file mode 100644
index 00000000..f365d20c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/apple_44.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btm_color_selector.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btm_color_selector.xml
new file mode 100644
index 00000000..3ecf8a7a
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btm_color_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_actionbar_close.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_actionbar_close.png
new file mode 100644
index 00000000..b6cc3cc0
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_actionbar_close.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_actionbar_instagram.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_actionbar_instagram.png
new file mode 100644
index 00000000..90bc0277
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_actionbar_instagram.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_arrow_black.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_arrow_black.png
new file mode 100644
index 00000000..cc38ca8c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_arrow_black.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_arrow_more.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_arrow_more.png
new file mode 100644
index 00000000..59e410c5
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_arrow_more.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_input_password.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_input_password.png
new file mode 100644
index 00000000..8c2eb186
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_input_password.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_input_password_off.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_input_password_off.png
new file mode 100644
index 00000000..8234f538
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_input_password_off.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_arrow_more.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_arrow_more.png
new file mode 100644
index 00000000..59e410c5
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_arrow_more.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_mike.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_mike.png
new file mode 100644
index 00000000..9bddec69
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_mike.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_setting.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_setting.png
new file mode 100644
index 00000000..7a8d5d6a
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_setting.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_ticket.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_ticket.png
new file mode 100644
index 00000000..52b6d64f
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_main_ticket.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_mvpause.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_mvpause.png
new file mode 100644
index 00000000..470e0467
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_mvpause.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_mvplay.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_mvplay.png
new file mode 100644
index 00000000..d1186774
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_mvplay.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_pause.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_pause.png
new file mode 100644
index 00000000..470e0467
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplay_pause.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_go_list.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_go_list.png
new file mode 100644
index 00000000..1b2d9774
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_go_list.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_next.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_next.png
new file mode 100644
index 00000000..3aedba3c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_next.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_play.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_play.png
new file mode 100644
index 00000000..f6190725
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_play.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_previous.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_previous.png
new file mode 100644
index 00000000..d0bf1f66
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_miniplayer_previous.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_nugu.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_nugu.png
new file mode 100644
index 00000000..9bddec69
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_nugu.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_panel_play_large.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_panel_play_large.png
new file mode 100644
index 00000000..4ac71038
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_panel_play_large.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_eq_off.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_eq_off.png
new file mode 100644
index 00000000..f23d9c6c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_eq_off.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_go_list.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_go_list.png
new file mode 100644
index 00000000..1b2d9774
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_go_list.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_more.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_more.png
new file mode 100644
index 00000000..a8ad9e62
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_more.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_play.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_play.png
new file mode 100644
index 00000000..f6c3201c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_play.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_related.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_related.png
new file mode 100644
index 00000000..9026fe5e
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_related.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_setting.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_setting.png
new file mode 100644
index 00000000..0df8f69a
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_setting.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_unlike_off.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_unlike_off.png
new file mode 100644
index 00000000..b5395047
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_unlike_off.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_unlike_on.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_unlike_on.png
new file mode 100644
index 00000000..45a43cae
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_player_unlike_on.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_playlist_select_off.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_playlist_select_off.png
new file mode 100644
index 00000000..62ef45ca
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_playlist_select_off.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_playlist_select_on.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_playlist_select_on.png
new file mode 100644
index 00000000..2d3b6afe
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_playlist_select_on.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_setting_phone.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_setting_phone.png
new file mode 100644
index 00000000..d6de4c69
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_setting_phone.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_textbox_close.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_textbox_close.png
new file mode 100644
index 00000000..10f1f636
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_textbox_close.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_titlebar_close.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_titlebar_close.png
new file mode 100644
index 00000000..6615deff
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_titlebar_close.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_toggle_off.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_toggle_off.png
new file mode 100644
index 00000000..983360df
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_toggle_off.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_toggle_on.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_toggle_on.png
new file mode 100644
index 00000000..fb609f46
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/btn_toggle_on.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_black_color.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_black_color.xml
new file mode 100644
index 00000000..cad3794f
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_black_color.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_flo_color.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_flo_color.xml
new file mode 100644
index 00000000..d5e92f35
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_flo_color.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_gray_color.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_gray_color.xml
new file mode 100644
index 00000000..dbcaae2b
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_gray_color.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_white_color.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_white_color.xml
new file mode 100644
index 00000000..32e95830
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/button_background_white_color.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/discovery_banner_aos.jpg b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/discovery_banner_aos.jpg
new file mode 100644
index 00000000..c9055156
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/discovery_banner_aos.jpg differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chart_background.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chart_background.xml
new file mode 100644
index 00000000..64c040f5
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chart_background.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chip_off_background.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chip_off_background.xml
new file mode 100644
index 00000000..43005ce6
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chip_off_background.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chip_on_background.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chip_on_background.xml
new file mode 100644
index 00000000..ce894ed7
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/fragment_look_chip_on_background.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_home_no_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_home_no_select.png
new file mode 100644
index 00000000..69a8ab6c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_home_no_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_home_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_home_select.png
new file mode 100644
index 00000000..c0ff48e7
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_home_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_locker_no_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_locker_no_select.png
new file mode 100644
index 00000000..a67dec39
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_locker_no_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_locker_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_locker_select.png
new file mode 100644
index 00000000..042489f1
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_locker_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_look_no_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_look_no_select.png
new file mode 100644
index 00000000..6c2f4f0c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_look_no_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_look_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_look_select.png
new file mode 100644
index 00000000..3d169e48
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_look_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_my_no_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_my_no_select.png
new file mode 100644
index 00000000..a67dec39
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_my_no_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_my_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_my_select.png
new file mode 100644
index 00000000..042489f1
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_my_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_search_no_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_search_no_select.png
new file mode 100644
index 00000000..a77b8c57
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_search_no_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_search_select.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_search_select.png
new file mode 100644
index 00000000..d5c8a722
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_bottom_search_select.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_browse_arrow_right.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_browse_arrow_right.png
new file mode 100644
index 00000000..71b588bf
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_browse_arrow_right.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_flo_logo.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_flo_logo.png
new file mode 100644
index 00000000..643224de
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_flo_logo.png differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/ic_launcher_background.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/ic_launcher_background.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_facebook.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_facebook.png
new file mode 100644
index 00000000..83e97321
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_facebook.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_facebook_btn.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_facebook_btn.png
new file mode 100644
index 00000000..83e97321
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_facebook_btn.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_instagram.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_instagram.png
new file mode 100644
index 00000000..398ce614
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_instagram.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_instagram_btn.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_instagram_btn.png
new file mode 100644
index 00000000..398ce614
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_instagram_btn.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_twitter.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_twitter.png
new file mode 100644
index 00000000..6ddc68ee
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_twitter.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_twitter_btn.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_twitter_btn.png
new file mode 100644
index 00000000..6ddc68ee
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_twitter_btn.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_youtube.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_youtube.png
new file mode 100644
index 00000000..0c4ec932
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_youtube.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_youtube_btn.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_youtube_btn.png
new file mode 100644
index 00000000..0c4ec932
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_main_youtube_btn.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_my_like_off.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_my_like_off.png
new file mode 100644
index 00000000..c06e139d
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_my_like_off.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_my_like_on.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_my_like_on.png
new file mode 100644
index 00000000..22577c0b
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ic_my_like_on.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ico_20_logo_tid_white.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ico_20_logo_tid_white.png
new file mode 100644
index 00000000..c6f4d4f9
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/ico_20_logo_tid_white.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/icon_browse_arrow_right.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/icon_browse_arrow_right.png
new file mode 100644
index 00000000..71b588bf
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/icon_browse_arrow_right.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp.png
new file mode 100644
index 00000000..6e3f38af
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp1.jpeg b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp1.jpeg
new file mode 100644
index 00000000..3f3c205a
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp1.jpeg differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp2.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp2.png
new file mode 100644
index 00000000..28ea3ee5
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp2.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp3.jpg b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp3.jpg
new file mode 100644
index 00000000..66416001
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp3.jpg differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp4.jpg b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp4.jpg
new file mode 100644
index 00000000..aecebb6a
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp4.jpg differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp5.jpg b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp5.jpg
new file mode 100644
index 00000000..6a8d8701
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp5.jpg differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp6.jpg b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp6.jpg
new file mode 100644
index 00000000..48202f2d
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_exp6.jpg differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_lp.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_lp.png
new file mode 100644
index 00000000..29fb1b4d
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_album_lp.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_default_4_x_1.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_default_4_x_1.png
new file mode 100644
index 00000000..926d34f5
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_default_4_x_1.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_first_album_default.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_first_album_default.png
new file mode 100644
index 00000000..926d34f5
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_first_album_default.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_home_viewpager_exp.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_home_viewpager_exp.png
new file mode 100644
index 00000000..da780323
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_home_viewpager_exp.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_home_viewpager_exp2.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_home_viewpager_exp2.png
new file mode 100644
index 00000000..50fa4be8
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_home_viewpager_exp2.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_1.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_1.png
new file mode 100644
index 00000000..0d43e8e4
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_1.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_2.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_2.png
new file mode 100644
index 00000000..f03efb22
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_2.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_3.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_3.png
new file mode 100644
index 00000000..51de6849
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_jenre_exp_3.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_potcast_exp.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_potcast_exp.png
new file mode 100644
index 00000000..50a46e03
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_potcast_exp.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_video_exp.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_video_exp.png
new file mode 100644
index 00000000..7f6b05f2
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/img_video_exp.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/kakako_44.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/kakako_44.png
new file mode 100644
index 00000000..243298e0
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/kakako_44.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_color_selector.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_color_selector.xml
new file mode 100644
index 00000000..3ecf8a7a
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_color_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_home_selector.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_home_selector.xml
new file mode 100644
index 00000000..b018478e
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_home_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_look_selector.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_look_selector.xml
new file mode 100644
index 00000000..89ced75d
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_look_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_my_selector.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_my_selector.xml
new file mode 100644
index 00000000..d6739bf2
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_my_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_search_selector.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_search_selector.xml
new file mode 100644
index 00000000..e6e823fd
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/main_btm_search_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/naver_44.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/naver_44.png
new file mode 100644
index 00000000..d9844877
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/naver_44.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_down.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_down.png
new file mode 100644
index 00000000..03a04c57
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_down.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_pause_32.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_pause_32.png
new file mode 100644
index 00000000..9388aa33
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_pause_32.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_play_32.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_play_32.png
new file mode 100644
index 00000000..b781e4c8
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_play_32.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_random_inactive.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_random_inactive.png
new file mode 100644
index 00000000..fe4f880b
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_random_inactive.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_randoming_inactive.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_randoming_inactive.png
new file mode 100644
index 00000000..c874de72
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_randoming_inactive.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_repeat_inactive.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_repeat_inactive.png
new file mode 100644
index 00000000..1e4044dc
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_repeat_inactive.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_repeating_inactive.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_repeating_inactive.png
new file mode 100644
index 00000000..16692af9
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_repeating_inactive.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_skip_next_32.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_skip_next_32.png
new file mode 100644
index 00000000..fc02f28f
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_skip_next_32.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_skip_previous_32.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_skip_previous_32.png
new file mode 100644
index 00000000..03ec854c
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/nugu_btn_skip_previous_32.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/splash.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/splash.xml
new file mode 100644
index 00000000..ace8a7d8
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/splash.xml
@@ -0,0 +1,8 @@
+
+
+
+ -
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/textview_background_radius.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/textview_background_radius.xml
new file mode 100644
index 00000000..53beead7
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/textview_background_radius.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/textview_background_select_color_radius.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/textview_background_select_color_radius.xml
new file mode 100644
index 00000000..ea8dc88c
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/textview_background_select_color_radius.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/widget_black_play.png b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/widget_black_play.png
new file mode 100644
index 00000000..0ec27005
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/drawable/widget_black_play.png differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_main.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 00000000..ea4cb306
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_song.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_song.xml
new file mode 100644
index 00000000..b66ce9a9
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_song.xml
@@ -0,0 +1,328 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_splash.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_splash.xml
new file mode 100644
index 00000000..84ca1014
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/activity_splash.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_album.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_album.xml
new file mode 100644
index 00000000..99b8e4ea
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_album.xml
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_banner.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_banner.xml
new file mode 100644
index 00000000..79d444a9
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_banner.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_detail.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_detail.xml
new file mode 100644
index 00000000..0c7e4d03
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_detail.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_home.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 00000000..8431bd34
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,823 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_homebanner.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_homebanner.xml
new file mode 100644
index 00000000..a3e7339c
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_homebanner.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_locker.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_locker.xml
new file mode 100644
index 00000000..1514c2c8
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_locker.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_look.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_look.xml
new file mode 100644
index 00000000..59d13593
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_look.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_musicfile.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_musicfile.xml
new file mode 100644
index 00000000..f3c36909
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_musicfile.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_saved.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_saved.xml
new file mode 100644
index 00000000..277110c2
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_saved.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_search.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_search.xml
new file mode 100644
index 00000000..6fbc0a95
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_search.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_song.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_song.xml
new file mode 100644
index 00000000..533d0356
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_song.xml
@@ -0,0 +1,556 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_songvp.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_songvp.xml
new file mode 100644
index 00000000..3d8a9852
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_songvp.xml
@@ -0,0 +1,554 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_video.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_video.xml
new file mode 100644
index 00000000..3da36132
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/fragment_video.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/item_album.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/item_album.xml
new file mode 100644
index 00000000..5eba725e
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/item_album.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/item_saved.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/item_saved.xml
new file mode 100644
index 00000000..4b577f19
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/layout/item_saved.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/menu/bottom_nav_menu.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/menu/bottom_nav_menu.xml
new file mode 100644
index 00000000..9a55b1a3
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/menu/bottom_nav_menu.xml
@@ -0,0 +1,28 @@
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 79%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index 6f3b755b..eca70cfe 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -2,5 +2,4 @@
-
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 79%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 6f3b755b..eca70cfe 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -2,5 +2,4 @@
-
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-hdpi/ic_launcher.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-mdpi/ic_launcher.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_bboom.mp3 b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_bboom.mp3
new file mode 100644
index 00000000..b5555914
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_bboom.mp3 differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_boy.mp3 b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_boy.mp3
new file mode 100644
index 00000000..c19f2391
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_boy.mp3 differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_butter.mp3 b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_butter.mp3
new file mode 100644
index 00000000..a6b952fc
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_butter.mp3 differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_flu.mp3 b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_flu.mp3
new file mode 100644
index 00000000..e6a0d7e4
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_flu.mp3 differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_lilac.mp3 b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_lilac.mp3
new file mode 100644
index 00000000..2e3c0d98
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_lilac.mp3 differ
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_next.mp3 b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_next.mp3
new file mode 100644
index 00000000..6261b050
Binary files /dev/null and b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/raw/music_next.mp3 differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values-night/themes.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values-night/themes.xml
similarity index 81%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values-night/themes.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values-night/themes.xml
index 7f85b593..2e9a4b2d 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values-night/themes.xml
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values-night/themes.xml
@@ -1,6 +1,6 @@
-
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/colors.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/colors.xml
new file mode 100644
index 00000000..e9c100db
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/colors.xml
@@ -0,0 +1,25 @@
+
+
+ #3f3fff
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
+ #9cbee2
+ #062342
+ #424242
+ #6bb2ff
+
+ #00ff0000
+ #3f3fff
+ #a8a8a8
+ #3f3fff
+ #a8a8a8
+
+ #F11818
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/strings.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/strings.xml
new file mode 100644
index 00000000..98ccc78f
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Flo_Clone_UMC_Bottom
+
\ No newline at end of file
diff --git a/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/themes.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/themes.xml
new file mode 100644
index 00000000..5e34fd71
--- /dev/null
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/values/themes.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/xml/backup_rules.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/xml/backup_rules.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/xml/backup_rules.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/xml/data_extraction_rules.xml b/Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/xml/data_extraction_rules.xml
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/main/res/xml/data_extraction_rules.xml
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/test/java/com/example/umc_paulo_mission1_2/ExampleUnitTest.kt b/Paulo/Flo_Clone_UMC_Bottom/app/src/test/java/com/example/flo_clone_umc_bottom/ExampleUnitTest.kt
similarity index 88%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/test/java/com/example/umc_paulo_mission1_2/ExampleUnitTest.kt
rename to Paulo/Flo_Clone_UMC_Bottom/app/src/test/java/com/example/flo_clone_umc_bottom/ExampleUnitTest.kt
index 9d4716b6..afdf7f14 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/test/java/com/example/umc_paulo_mission1_2/ExampleUnitTest.kt
+++ b/Paulo/Flo_Clone_UMC_Bottom/app/src/test/java/com/example/flo_clone_umc_bottom/ExampleUnitTest.kt
@@ -1,4 +1,4 @@
-package com.example.umc_paulo_mission1_2
+package com.example.flo_clone_umc_bottom
import org.junit.Test
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/build.gradle.kts b/Paulo/Flo_Clone_UMC_Bottom/build.gradle.kts
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/build.gradle.kts
rename to Paulo/Flo_Clone_UMC_Bottom/build.gradle.kts
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/gradle.properties b/Paulo/Flo_Clone_UMC_Bottom/gradle.properties
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/gradle.properties
rename to Paulo/Flo_Clone_UMC_Bottom/gradle.properties
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/gradle/libs.versions.toml b/Paulo/Flo_Clone_UMC_Bottom/gradle/libs.versions.toml
similarity index 91%
rename from Paulo/UMC_Paulo_Mission1_Linear/gradle/libs.versions.toml
rename to Paulo/Flo_Clone_UMC_Bottom/gradle/libs.versions.toml
index faf6ca23..f74e5fbe 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/gradle/libs.versions.toml
+++ b/Paulo/Flo_Clone_UMC_Bottom/gradle/libs.versions.toml
@@ -9,6 +9,7 @@ appcompat = "1.7.0"
material = "1.12.0"
activity = "1.9.2"
constraintlayout = "2.1.4"
+carUiLib = "2.6.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -19,6 +20,7 @@ androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+car-ui-lib = { group = "com.android.car.ui", name = "car-ui-lib", version.ref = "carUiLib" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/gradle/wrapper/gradle-wrapper.jar b/Paulo/Flo_Clone_UMC_Bottom/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/gradle/wrapper/gradle-wrapper.jar
rename to Paulo/Flo_Clone_UMC_Bottom/gradle/wrapper/gradle-wrapper.jar
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/gradle/wrapper/gradle-wrapper.properties b/Paulo/Flo_Clone_UMC_Bottom/gradle/wrapper/gradle-wrapper.properties
similarity index 86%
rename from Paulo/UMC_Paulo_Mission1_Linear/gradle/wrapper/gradle-wrapper.properties
rename to Paulo/Flo_Clone_UMC_Bottom/gradle/wrapper/gradle-wrapper.properties
index 04b8b66d..9beefb8a 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/gradle/wrapper/gradle-wrapper.properties
+++ b/Paulo/Flo_Clone_UMC_Bottom/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,4 @@
-#Sat Sep 28 01:10:49 KST 2024
+#Sun Oct 13 02:38:40 KST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/gradlew b/Paulo/Flo_Clone_UMC_Bottom/gradlew
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/gradlew
rename to Paulo/Flo_Clone_UMC_Bottom/gradlew
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/gradlew.bat b/Paulo/Flo_Clone_UMC_Bottom/gradlew.bat
similarity index 100%
rename from Paulo/UMC_Paulo_Mission1_Linear/gradlew.bat
rename to Paulo/Flo_Clone_UMC_Bottom/gradlew.bat
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/settings.gradle.kts b/Paulo/Flo_Clone_UMC_Bottom/settings.gradle.kts
similarity index 92%
rename from Paulo/UMC_Paulo_Mission1_Linear/settings.gradle.kts
rename to Paulo/Flo_Clone_UMC_Bottom/settings.gradle.kts
index 944b1978..69243641 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/settings.gradle.kts
+++ b/Paulo/Flo_Clone_UMC_Bottom/settings.gradle.kts
@@ -19,6 +19,6 @@ dependencyResolutionManagement {
}
}
-rootProject.name = "UMC_Paulo_Mission1_2"
+rootProject.name = "Flo_Clone_UMC_Bottom"
include(":app")
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/.idea/vcs.xml b/Paulo/UMC_Paulo_Mission1_Constraint/.idea/vcs.xml
new file mode 100644
index 00000000..b2bdec2d
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/build.gradle.kts b/Paulo/UMC_Paulo_Mission1_Constraint/app/build.gradle.kts
index 21eb35a7..cb92b979 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/build.gradle.kts
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/build.gradle.kts
@@ -42,7 +42,9 @@ android {
}
dependencies {
-
+ implementation ("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0")
+ implementation("androidx.navigation:navigation-fragment-ktx:2.7.0")
+ implementation("androidx.navigation:navigation-ui-ktx:2.7.0")
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
@@ -51,4 +53,5 @@ dependencies {
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
-}
\ No newline at end of file
+ implementation("androidx.core:core-splashscreen:1.0.1")
+}
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/AndroidManifest.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/AndroidManifest.xml
index 1996c3cb..1b5f7b87 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/AndroidManifest.xml
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/AndroidManifest.xml
@@ -12,12 +12,19 @@
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication"
tools:targetApi="31">
+
+
+ android:exported="false"/>
+
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/CheckActivity.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/CheckActivity.kt
new file mode 100644
index 00000000..412db1c2
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/CheckActivity.kt
@@ -0,0 +1,21 @@
+package com.example.myapplication
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.example.myapplication.databinding.ActivityCheckBinding
+
+class CheckActivity: AppCompatActivity() {
+ lateinit var binding: ActivityCheckBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityCheckBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ val gettext = intent.getStringExtra("textkey")
+
+ binding.emptyCheckActivityTv.text = gettext;
+ binding.backCheckActivityBt.setOnClickListener {
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/HomeFragment.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/HomeFragment.kt
new file mode 100644
index 00000000..48a81c18
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/HomeFragment.kt
@@ -0,0 +1,52 @@
+package com.example.myapplication
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.myapplication.databinding.FragmentHomeBinding
+
+class HomeFragment : Fragment() {
+ private var _binding: FragmentHomeBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // View Binding 설정
+ _binding = FragmentHomeBinding.inflate(inflater, container, false)
+
+ // 각 ImageView에 대한 클릭 리스너 설정
+ binding.imageViewR.setOnClickListener {
+ val intent = Intent(requireActivity(), MemoActivity::class.java)
+ startActivity(intent)
+ }
+ binding.imageViewB.setOnClickListener {
+ openActivity2()
+ }
+ binding.imageViewG.setOnClickListener {
+ openActivity2()
+ }
+ binding.imageViewP.setOnClickListener {
+ openActivity2()
+ }
+ binding.imageViewY.setOnClickListener {
+ openActivity2()
+ }
+
+ return binding.root // Inflate된 뷰 반환
+ }
+
+ private fun openActivity2() {
+ val intent = Intent(requireActivity(), MainActivity2::class.java)
+ startActivity(intent)
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MainActivity.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MainActivity.kt
index 46c6dd16..44ba2875 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MainActivity.kt
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MainActivity.kt
@@ -1,17 +1,24 @@
package com.example.myapplication
import android.app.Activity
+import android.app.FragmentContainer
import android.content.Intent
import android.os.Bundle
+import android.view.View
import android.widget.ImageView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
+import androidx.fragment.app.FragmentContainerView
+import androidx.navigation.NavOptions
+import androidx.navigation.fragment.NavHostFragment
+import androidx.navigation.ui.setupWithNavController
import com.example.myapplication.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
+ var position = 2
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -20,31 +27,85 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
+ val navHostFragment = supportFragmentManager.findFragmentById(R.id.fragmentcon) as NavHostFragment
+ val navController = navHostFragment.navController
+ binding.bottomnav.setupWithNavController(navController)
+
+
+
+ binding.bottomnav.setOnItemSelectedListener { item ->
+ val navOptionsLeftToRight = NavOptions.Builder()
+ .setEnterAnim(R.anim.to_right)
+ .setExitAnim(R.anim.from_right)
+ .setPopEnterAnim(R.anim.to_left)
+ .setPopExitAnim(R.anim.from_left)
+ .build()
+
+ val navOptionsRightToLeft = NavOptions.Builder()
+ .setEnterAnim(R.anim.to_left)
+ .setExitAnim(R.anim.from_left)
+ .setPopEnterAnim(R.anim.to_right)
+ .setPopExitAnim(R.anim.from_right)
+ .build()
+
+
+
+ when (item.itemId) {
+ R.id.item_timer_img -> {
+ if(position < 4) {
+ navController.navigate(R.id.item_timer_img, null,navOptionsLeftToRight)
+ }
+ else if(position > 4){
+
+ }
+ position = 4
+ true
+ }
+
+ R.id.item_search_img -> {
+ if(position < 1) {
+
+ }
+ else if(position > 1) {
+ navController.navigate(R.id.item_search_img, null, navOptionsRightToLeft)
+ }
+ position = 1
+ true
+ }
+
+ R.id.item_home_img -> {
+ if(position > 2) {
+ navController.navigate(R.id.item_home_img, null, navOptionsRightToLeft)
+ }
+ else if(position < 2) {
+ navController.navigate(R.id.item_home_img, null, navOptionsLeftToRight)
+ }
+ position = 2
+ true
+ }
+
+ R.id.item_setting_img -> {
+ if(position > 3) {
+ navController.navigate(R.id.item_setting_img, null, navOptionsRightToLeft)
+ }
+ else if(position < 3) {
+ navController.navigate(R.id.item_setting_img, null, navOptionsLeftToRight)
+ }
+ position = 3
+ true
+ }
+ else -> false
+ }
+ }
+
+
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
- binding.imageViewG.setOnClickListener {
- val intent = Intent(this, MainActivity2::class.java)
- startActivity(intent)
- }
-
- binding.imageViewP.setOnClickListener {
- val intent = Intent(this, MainActivity2::class.java)
- startActivity(intent)
- }
- binding.imageViewR.setOnClickListener {
- val intent = Intent(this, MainActivity2::class.java)
- startActivity(intent)
- }
-
- binding.imageViewY.setOnClickListener {
- val intent = Intent(this, MainActivity2::class.java)
- startActivity(intent)
- }
/*
val imageB: ImageView = findViewById(R.id.imageViewB)
imageB.setOnClickListener {
@@ -76,4 +137,7 @@ class MainActivity : AppCompatActivity() {
}
*/
}
+ fun hideBottomNavigation(state:Boolean){
+ if(state) binding.bottomnav.visibility = View.GONE else binding.bottomnav.visibility=View.VISIBLE
+ }
}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MemoActivity.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MemoActivity.kt
new file mode 100644
index 00000000..825a374f
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/MemoActivity.kt
@@ -0,0 +1,48 @@
+package com.example.myapplication
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AlertDialog
+import androidx.appcompat.app.AppCompatActivity
+import com.example.myapplication.databinding.ActivityMemoBinding
+
+class MemoActivity: AppCompatActivity() {
+ lateinit var binding: ActivityMemoBinding
+ var text = ""
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityMemoBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ binding.checkMemoActivityBt.setOnClickListener {
+ val gettext = binding.textfieldMemoActivityEt.text.toString()
+ val intent = Intent(this, CheckActivity::class.java)
+ intent.putExtra("textkey",gettext)
+ startActivity(intent)
+
+ }
+ }
+
+ override fun onPause() {
+ super.onPause()
+ text = binding.textfieldMemoActivityEt.text.toString()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ binding.textfieldMemoActivityEt.setText(text)
+ }
+
+ override fun onRestart() {
+ super.onRestart()
+ val builder = AlertDialog.Builder(this)
+ builder.setTitle("다시 작성하시겠습니까?")
+ builder.setPositiveButton("다시 작성"){ dialog, which ->
+ text = ""
+ binding.textfieldMemoActivityEt.setText("")
+ }
+ builder.setNegativeButton("그대로 작성"){ dialog, which ->
+
+ }
+ builder.show()
+ }
+}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SearchFragment.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SearchFragment.kt
new file mode 100644
index 00000000..275e36bb
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SearchFragment.kt
@@ -0,0 +1,18 @@
+package com.example.myapplication
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+
+class SearchFragment : Fragment(R.layout.fragment_search) {
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_search, container, false)
+ }
+}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SettingFragment.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SettingFragment.kt
new file mode 100644
index 00000000..e0099a23
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SettingFragment.kt
@@ -0,0 +1,18 @@
+package com.example.myapplication
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+
+class SettingFragment : Fragment(R.layout.fragment_setting) {
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_setting, container, false)
+ }
+}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/java/com/example/umc_paulo_mission1_2/MainActivity.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SplashFragment.kt
similarity index 50%
rename from Paulo/UMC_Paulo_Mission1_Linear/app/src/main/java/com/example/umc_paulo_mission1_2/MainActivity.kt
rename to Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SplashFragment.kt
index 1b79c295..fd53e5b2 100644
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/java/com/example/umc_paulo_mission1_2/MainActivity.kt
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/SplashFragment.kt
@@ -1,16 +1,32 @@
-package com.example.umc_paulo_mission1_2
+package com.example.myapplication
+import android.content.Intent
import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
-class MainActivity : AppCompatActivity() {
+class SplashFragment : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+
+ setContentView(R.layout.activity_splash)
+
+ // 일정 시간 지연 이후 실행하기 위한 코드
+ Handler(Looper.getMainLooper()).postDelayed({
+
+ // 일정 시간이 지나면 MainActivity로 이동
+ val intent = Intent(this, MainActivity::class.java)
+ startActivity(intent)
+
+ finish()
+
+ }, 2000) // 시간 2초 이후 실행
enableEdgeToEdge()
- setContentView(R.layout.activity_main)
+ setContentView(R.layout.activity_splash)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/TimerFragment.kt b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/TimerFragment.kt
new file mode 100644
index 00000000..0b337501
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/java/com/example/myapplication/TimerFragment.kt
@@ -0,0 +1,74 @@
+package com.example.myapplication
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.myapplication.databinding.FragmentTimerBinding
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+
+class TimerFragment:Fragment(R.layout.fragment_timer) {
+ private var _binding: FragmentTimerBinding? = null
+ private val binding get() = _binding!!
+
+ private var job: Job? = null
+ private var timeInSeconds = 0
+ private var isRunning = false
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ _binding = FragmentTimerBinding.bind(view)
+ binding.timerStartBu.setOnClickListener {
+ if(!isRunning){
+ startStopwatch()
+ }
+ }
+
+ binding.timerPauseBu.setOnClickListener {
+ pauseStopwatch()
+ }
+
+ binding.timerResetBu.setOnClickListener {
+ resetStopwatch()
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ private fun startStopwatch() {
+ isRunning = true
+ job = CoroutineScope(Dispatchers.Main).launch {
+ while (isRunning) {
+ delay(1000L)
+ timeInSeconds++
+ updateTimerText()
+ }
+ }
+ }
+
+ private fun pauseStopwatch() {
+ isRunning = false
+ job?.cancel()
+ }
+
+ private fun resetStopwatch() {
+ pauseStopwatch()
+ timeInSeconds = 0
+ updateTimerText()
+ }
+
+ private fun updateTimerText() {
+ val hours = timeInSeconds / 3600
+ val minutes = (timeInSeconds % 3600) / 60
+ val seconds = timeInSeconds % 60
+ binding.timerTimerTv.text = String.format("%02d:%02d:%02d",hours , minutes, seconds) // "MM:SS" 형식으로 표시
+ }
+}
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/from_left.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/from_left.xml
new file mode 100644
index 00000000..9cbfde5f
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/from_left.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/from_right.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/from_right.xml
new file mode 100644
index 00000000..e7464b77
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/from_right.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/to_left.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/to_left.xml
new file mode 100644
index 00000000..acee93db
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/to_left.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/to_right.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/to_right.xml
new file mode 100644
index 00000000..1d3b4aa9
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/anim/to_right.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/color/icon_color.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/color/icon_color.xml
new file mode 100644
index 00000000..e4d092bd
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/color/icon_color.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/bottomnavbackground.jpeg b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/bottomnavbackground.jpeg
new file mode 100644
index 00000000..ce5541ec
Binary files /dev/null and b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/bottomnavbackground.jpeg differ
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/home_icon.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/home_icon.xml
new file mode 100644
index 00000000..63490446
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/home_icon.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/jjanggobackground1.jpeg b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/jjanggobackground1.jpeg
new file mode 100644
index 00000000..db00162e
Binary files /dev/null and b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/jjanggobackground1.jpeg differ
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/pochacco.png b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/pochacco.png
new file mode 100644
index 00000000..8e260c4e
Binary files /dev/null and b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/pochacco.png differ
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/search_icon.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/search_icon.xml
new file mode 100644
index 00000000..09f9e99f
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/search_icon.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/setting_icon.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/setting_icon.xml
new file mode 100644
index 00000000..128ddbc2
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/setting_icon.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/splash.jpeg b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/splash.jpeg
new file mode 100644
index 00000000..25cea37f
Binary files /dev/null and b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/drawable/splash.jpeg differ
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_check.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_check.xml
new file mode 100644
index 00000000..e9f64b8b
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_check.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main.xml
index 4a45067f..754e6555 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main.xml
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main.xml
@@ -7,164 +7,188 @@
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@drawable/background">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main2.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main2.xml
index bccc9717..4cbb3de3 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main2.xml
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_main2.xml
@@ -9,12 +9,15 @@
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_memo.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_memo.xml
new file mode 100644
index 00000000..3fb82ad4
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_memo.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_splash.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_splash.xml
new file mode 100644
index 00000000..71c63587
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/activity_splash.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_home.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 00000000..055ebf59
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_search.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_search.xml
new file mode 100644
index 00000000..b4536063
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_search.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_setting.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_setting.xml
new file mode 100644
index 00000000..eafe7a88
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_setting.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_timer.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_timer.xml
new file mode 100644
index 00000000..226bea82
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/layout/fragment_timer.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/menu/bottom_nav_item.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/menu/bottom_nav_item.xml
new file mode 100644
index 00000000..ec44e99c
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/menu/bottom_nav_item.xml
@@ -0,0 +1,25 @@
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/navigation/bottom_navigation.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/navigation/bottom_navigation.xml
new file mode 100644
index 00000000..b5d59dd1
--- /dev/null
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/navigation/bottom_navigation.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/colors.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/colors.xml
index c8524cd9..52d5578b 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/colors.xml
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/colors.xml
@@ -2,4 +2,6 @@
#FF000000
#FFFFFFFF
+ #ADD8E6
+ #0000FF
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/strings.xml b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/strings.xml
index 3de1a396..4cacd0f5 100644
--- a/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/strings.xml
+++ b/Paulo/UMC_Paulo_Mission1_Constraint/app/src/main/res/values/strings.xml
@@ -1,3 +1,5 @@
My Application
+
+ Hello blank fragment
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/background.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/background.png
deleted file mode 100644
index 621a8e0c..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/background.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/background.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/background.png
deleted file mode 100644
index 621a8e0c..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/background.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gb.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gb.png
deleted file mode 100644
index 21b76823..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gb.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gg.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gg.png
deleted file mode 100644
index 4cc1f6b1..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gg.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gp.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gp.png
deleted file mode 100644
index 67ccbad6..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gp.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gr.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gr.png
deleted file mode 100644
index ae053677..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gr.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gy.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gy.png
deleted file mode 100644
index c1407109..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/gy.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/vector.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/vector.png
deleted file mode 100644
index 2a1d6c56..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/drawable/vector.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gb.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gb.png
deleted file mode 100644
index 21b76823..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gb.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gg.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gg.png
deleted file mode 100644
index 4cc1f6b1..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gg.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gp.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gp.png
deleted file mode 100644
index 67ccbad6..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gp.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gr.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gr.png
deleted file mode 100644
index ae053677..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gr.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gy.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gy.png
deleted file mode 100644
index c1407109..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/gy.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/ic_launcher_background.xml b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 07d5da9c..00000000
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/ic_launcher_foreground.xml b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/ic_launcher_foreground.xml
deleted file mode 100644
index 2b068d11..00000000
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/vector.png b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/vector.png
deleted file mode 100644
index 2a1d6c56..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/drawable/vector.png and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/font/gangwoneduhyeonokt.ttf b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/font/gangwoneduhyeonokt.ttf
deleted file mode 100644
index 862c6d28..00000000
Binary files a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/font/gangwoneduhyeonokt.ttf and /dev/null differ
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/layout/activity_main.xml b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index ba01e62c..00000000
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/colors.xml b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/colors.xml
deleted file mode 100644
index c8524cd9..00000000
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- #FF000000
- #FFFFFFFF
-
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/strings.xml b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/strings.xml
deleted file mode 100644
index 59753c0b..00000000
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- UMC_Paulo_Mission1_2
-
\ No newline at end of file
diff --git a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/themes.xml b/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/themes.xml
deleted file mode 100644
index e137b5a8..00000000
--- a/Paulo/UMC_Paulo_Mission1_Linear/app/src/main/res/values/themes.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Paulo/test.txt b/Paulo/test.txt
deleted file mode 100644
index b6fc4c62..00000000
--- a/Paulo/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-hello
\ No newline at end of file