From e5e66db6bab3fcd46dc7a90f30990a44617e5d53 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 29 May 2024 18:00:57 +0900 Subject: [PATCH] [Feat]week4 --- .../.idea/deploymentTargetDropDown.xml" | 19 +- .../app/src/main/AndroidManifest.xml" | 4 +- .../java/com/example/flo/AlbumFragment.kt" | 11 + .../java/com/example/flo/AlbumVPAdapter.kt" | 16 + .../java/com/example/flo/BannerFragment.kt" | 24 + .../java/com/example/flo/BannerVPAdapter.kt" | 15 +- .../java/com/example/flo/DetailFragment.kt" | 23 + .../java/com/example/flo/HomeFragment.kt" | 9 +- .../java/com/example/flo/MainActivity.kt" | 14 +- .../src/main/java/com/example/flo/Song.kt" | 22 + .../java/com/example/flo/SongActivity.kt" | 112 +++- .../java/com/example/flo/SongFragment.kt" | 24 + .../java/com/example/flo/VideoFragment.kt" | 24 + .../src/main/res/layout/activity_main.xml" | 1 + .../src/main/res/layout/activity_song.xml" | 2 + .../src/main/res/layout/activity_splash.xml" | 18 + .../src/main/res/layout/fragment_album.xml" | 2 - .../src/main/res/layout/fragment_banner.xml" | 20 + .../src/main/res/layout/fragment_detail.xml" | 18 + .../src/main/res/layout/fragment_song.xml" | 540 ++++++++++++++++++ .../src/main/res/layout/fragment_video.xml" | 17 + .../app/src/main/res/values/colors.xml" | 7 + .../app/src/main/res/values/themes.xml" | 4 + 23 files changed, 935 insertions(+), 11 deletions(-) create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumVPAdapter.kt" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerFragment.kt" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/DetailFragment.kt" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/Song.kt" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongFragment.kt" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/VideoFragment.kt" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/activity_splash.xml" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_banner.xml" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_detail.xml" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_song.xml" create mode 100644 "\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_video.xml" diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/.idea/deploymentTargetDropDown.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/.idea/deploymentTargetDropDown.xml" index d53572a..b35c064 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/.idea/deploymentTargetDropDown.xml" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/.idea/deploymentTargetDropDown.xml" @@ -10,16 +10,29 @@ - + - + - + + + + + + + + + + + + + + diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/AndroidManifest.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/AndroidManifest.xml" index bf46c89..506c59a 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/AndroidManifest.xml" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/AndroidManifest.xml" @@ -9,9 +9,11 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.FLO"> + + android:exported="true" + android:theme="@style/SplashTheme"> diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumFragment.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumFragment.kt" index 42b5dca..9e01f4e 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumFragment.kt" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumFragment.kt" @@ -6,10 +6,13 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import com.example.flo.databinding.FragmentAlbumBinding +import com.google.android.material.tabs.TabLayoutMediator class AlbumFragment : Fragment() { lateinit var binding : FragmentAlbumBinding + private val information = arrayListOf("수록곡","상세정보","영상") + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -20,6 +23,14 @@ class AlbumFragment : Fragment() { binding.albumBackIv.setOnClickListener{ (context as MainActivity).supportFragmentManager.beginTransaction().replace(R.id.main_frm,HomeFragment()).commitAllowingStateLoss() } + val albumAdapter = AlbumVPAdapter(this) + binding.albumContentVp.adapter = albumAdapter + + TabLayoutMediator(binding.albumContentTb, binding.albumContentVp){ + tab,positin -> + tab.text=information[positin] + }.attach() + return binding.root } } \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumVPAdapter.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumVPAdapter.kt" new file mode 100644 index 0000000..be2822d --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/AlbumVPAdapter.kt" @@ -0,0 +1,16 @@ +package com.example.flo + +import androidx.fragment.app.Fragment +import androidx.viewpager2.adapter.FragmentStateAdapter + +class AlbumVPAdapter(fragment:Fragment) : FragmentStateAdapter(fragment) { + override fun getItemCount(): Int = 3 + + override fun createFragment(position: Int): Fragment { + return when(position){ + 0 -> SongFragment() + 1 -> DetailFragment() + else -> VideoFragment() + } + } +} \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerFragment.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerFragment.kt" new file mode 100644 index 0000000..fffd7d7 --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerFragment.kt" @@ -0,0 +1,24 @@ +package com.example.flo + +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.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/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerVPAdapter.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerVPAdapter.kt" index 38134fd..8f16603 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerVPAdapter.kt" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/BannerVPAdapter.kt" @@ -2,6 +2,19 @@ package com.example.flo import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStateManagerControl +import androidx.viewpager2.adapter.FragmentStateAdapter -class BannerVPAdapter(fragment:Fragment): FragmentAdapter(fragment) { +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] //0,1,2,3 + + fun addFragment(fragment: Fragment){ + fragmentList.add(fragment) + notifyItemInserted(fragmentList.size-1) + } } \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/DetailFragment.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/DetailFragment.kt" new file mode 100644 index 0000000..9aaebd5 --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/DetailFragment.kt" @@ -0,0 +1,23 @@ +package com.example.flo + +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.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/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/HomeFragment.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/HomeFragment.kt" index 83cea4f..c3680c0 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/HomeFragment.kt" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/HomeFragment.kt" @@ -5,6 +5,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.viewpager2.widget.ViewPager2 import com.example.flo.databinding.FragmentHomeBinding class HomeFragment : Fragment() { @@ -24,7 +25,13 @@ class HomeFragment : Fragment() { .commitAllowingStateLoss() } - val bannerAdapter = + 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 + + return binding.root } } \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/MainActivity.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/MainActivity.kt" index 2ce919d..6699882 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/MainActivity.kt" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/MainActivity.kt" @@ -12,13 +12,23 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + setTheme(R.style.Theme_FLO) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) + initBottomNavigation() + + val song = Song(binding.mainMiniPlayerSingerTv.text.toString(),binding.mainMiniPlayerSingerTv.text.toString(),0,60,false) + 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) + startActivity(intent) } - initBottomNavigation() } diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/Song.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/Song.kt" new file mode 100644 index 0000000..92b6acb --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/Song.kt" @@ -0,0 +1,22 @@ +package com.example.flo + +//import androidx.room.Entity +//import androidx.room.PrimaryKey + + +//제목, 가수, 사진,재생시간,현재 재생시간, isplaying(재생 되고 있는지) + +//@Entity(tableName = "SongTable") +data class Song( + var title: String = "", + var singer: String = "", + var second: Int = 0, + var playTime: Int = 0, + var isPlaying: Boolean = false, + var music: String = "", + //var coverImg: Int? = null, + //var isLike: Boolean = false +) +// { +// @PrimaryKey(autoGenerate = true) var id: Int = 0 +//} diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongActivity.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongActivity.kt" index 58ddc31..9b06943 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongActivity.kt" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongActivity.kt" @@ -4,6 +4,7 @@ import android.content.Intent import android.opengl.Visibility import android.os.Bundle import android.os.PersistableBundle +import android.util.Log import android.view.View import androidx.annotation.VisibleForTesting import androidx.appcompat.app.AppCompatActivity @@ -11,12 +12,23 @@ import com.example.flo.databinding.ActivitySongBinding class SongActivity : AppCompatActivity() { + //소괄호: 클래스 다ㅡㄹ ㄴ클래스로 상속을 진행할 떄는 소괄호를 넣어줘야 한다. + + //지역 변수 lateinit var binding : ActivitySongBinding + lateinit var song: Song + lateinit var timer:Timer override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySongBinding.inflate(layoutInflater) setContentView(binding.root) + + initSong() + setPlayer(song) + + + binding.songDownIb.setOnClickListener{ finish() } @@ -27,7 +39,41 @@ class SongActivity : AppCompatActivity() { setPlayerStatus(true) } } - fun setPlayerStatus(isPlaying : Boolean){ + + override fun onDestroy() { + super.onDestroy() + timer.interrupt() + } + 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) + + ) + } + 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.songStartTimeTv.text = String.format("%02d:%02d",song.playTime /60,song.playTime/60) + binding.songProgressSb.progress = (song.second *1000/song.playTime) + + setPlayerStatus(song.isPlaying) + + } + + private fun setPlayerStatus(isPlaying : Boolean){ + song.isPlaying =isPlaying + timer.isPlaying = isPlaying + if(isPlaying) { binding.songMiniplayerIv.visibility = View.VISIBLE //미니 플레이어 재생 버튼 보이게 binding.songPauseIv.visibility = View.GONE // 미니 플레이어 중지 버튼 공간과 모양이 안보이게 @@ -39,4 +85,68 @@ class SongActivity : AppCompatActivity() { } } + private fun startTimer(){ + timer = Timer(song.playTime,song.isPlaying) + timer.start() + } + + + 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) + { + 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(){ + super.onPause() + setPlayerStatus(false) + song.second=((binding.songProgressSb.progress*song.playTime)/100)/1000 + val sharedPreferences=getSharedPreferences("song", MODE_PRIVATE) + val editor = sharedPreferences.edit() //에디터 + + + + } + + + + + + + + + + + } \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongFragment.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongFragment.kt" new file mode 100644 index 0000000..762e139 --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/SongFragment.kt" @@ -0,0 +1,24 @@ +package com.example.flo + +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.databinding.FragmentDetailBinding +import com.example.flo.databinding.FragmentSongBinding + +class SongFragment : Fragment() { + + lateinit var binding: FragmentSongBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentSongBinding.inflate(inflater,container,false) + + return binding.root + } +} \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/VideoFragment.kt" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/VideoFragment.kt" new file mode 100644 index 0000000..fb3f3c6 --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/java/com/example/flo/VideoFragment.kt" @@ -0,0 +1,24 @@ +package com.example.flo + +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.databinding.FragmentDetailBinding +import com.example.flo.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/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/activity_main.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/activity_main.xml" index 3742252..4e7ceab 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/activity_main.xml" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/activity_main.xml" @@ -33,6 +33,7 @@ app:layout_constraintTop_toTopOf="parent"> + + + + + + \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_album.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_album.xml" index 1fd2c16..eb9b524 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_album.xml" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_album.xml" @@ -129,6 +129,4 @@ app:layout_constraintEnd_toEndOf="parent"/> - - \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_banner.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_banner.xml" new file mode 100644 index 0000000..6e4d673 --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_banner.xml" @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_detail.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_detail.xml" new file mode 100644 index 0000000..2166a3b --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_detail.xml" @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_song.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_song.xml" new file mode 100644 index 0000000..466d79f --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_song.xml" @@ -0,0 +1,540 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_video.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_video.xml" new file mode 100644 index 0000000..96d7f00 --- /dev/null +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/layout/fragment_video.xml" @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/colors.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/colors.xml" index b3ef6c0..d60b4b8 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/colors.xml" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/colors.xml" @@ -1,5 +1,7 @@ + #3f3fff + #FFBB86FC #FF6200EE #FF3700B3 @@ -10,9 +12,14 @@ #9cbee2 #062342 + #424242 #6bb2ff #00ff0000 #3f3fff #a8a8a8 + #3f3fff + #a8a8a8 + + #F11818 \ No newline at end of file diff --git "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/themes.xml" "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/themes.xml" index 4a5c354..0b72e7b 100644 --- "a/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/themes.xml" +++ "b/\354\230\201\353\247\250-\354\236\245\354\244\200\354\230\201/app/src/main/res/values/themes.xml" @@ -20,4 +20,8 @@ true + \ No newline at end of file