diff --git a/yuja/.gitignore b/yuja/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/yuja/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/yuja/.idea/.gitignore b/yuja/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/yuja/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/yuja/.idea/.name b/yuja/.idea/.name new file mode 100644 index 0000000..997352e --- /dev/null +++ b/yuja/.idea/.name @@ -0,0 +1 @@ +FLO \ No newline at end of file diff --git a/yuja/.idea/compiler.xml b/yuja/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/yuja/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/yuja/.idea/deploymentTargetDropDown.xml b/yuja/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..f5f3e8b --- /dev/null +++ b/yuja/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/.idea/gradle.xml b/yuja/.idea/gradle.xml new file mode 100644 index 0000000..526b4c2 --- /dev/null +++ b/yuja/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/yuja/.idea/misc.xml b/yuja/.idea/misc.xml new file mode 100644 index 0000000..91568a7 --- /dev/null +++ b/yuja/.idea/misc.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/.gitignore b/yuja/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/yuja/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/yuja/app/.idea/.gitignore b/yuja/app/.idea/.gitignore new file mode 100644 index 0000000..eaf91e2 --- /dev/null +++ b/yuja/app/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/yuja/app/.idea/gradle.xml b/yuja/app/.idea/gradle.xml new file mode 100644 index 0000000..2e1adb8 --- /dev/null +++ b/yuja/app/.idea/gradle.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/.idea/misc.xml b/yuja/app/.idea/misc.xml new file mode 100644 index 0000000..a87c751 --- /dev/null +++ b/yuja/app/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/yuja/app/.idea/modules.xml b/yuja/app/.idea/modules.xml new file mode 100644 index 0000000..baf3be6 --- /dev/null +++ b/yuja/app/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/yuja/app/.idea/vcs.xml b/yuja/app/.idea/vcs.xml new file mode 100644 index 0000000..c8ade07 --- /dev/null +++ b/yuja/app/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/build.gradle b/yuja/app/build.gradle new file mode 100644 index 0000000..d0db292 --- /dev/null +++ b/yuja/app/build.gradle @@ -0,0 +1,47 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' +} + +android { + compileSdk 31 + + viewBinding { + enabled true + } + + defaultConfig { + applicationId "com.example.flo" + minSdk 21 + targetSdk 31 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.appcompat:appcompat:1.4.0' + implementation 'com.google.android.material:material:1.4.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.2' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ No newline at end of file diff --git a/yuja/app/proguard-rules.pro b/yuja/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/yuja/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/yuja/app/src/androidTest/java/com/example/flo/ExampleInstrumentedTest.kt b/yuja/app/src/androidTest/java/com/example/flo/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..6dfac89 --- /dev/null +++ b/yuja/app/src/androidTest/java/com/example/flo/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.example.flo + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.example.flo", appContext.packageName) + } +} \ No newline at end of file diff --git a/yuja/app/src/main/AndroidManifest.xml b/yuja/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..bf46c89 --- /dev/null +++ b/yuja/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/AlbumFragment.kt b/yuja/app/src/main/java/com/example/flo/AlbumFragment.kt new file mode 100644 index 0000000..2c5803b --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/AlbumFragment.kt @@ -0,0 +1,39 @@ +package com.example.flo + +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.databinding.FragmentAlbumBinding +import com.google.android.material.tabs.TabLayoutMediator + +class AlbumFragment : Fragment() { + lateinit var binding : FragmentAlbumBinding + +// TabLayout에 들어갈 text + private var information = arrayListOf("수록곡", "상세정보", "영상") + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentAlbumBinding.inflate(inflater, container, false) + + binding.albumBackIv.setOnClickListener { + (context as MainActivity).supportFragmentManager.beginTransaction().replace(R.id.main_frm, HomeFragment()).commitAllowingStateLoss() + } + + val albumAdapter = AlbumVPAdapter(this) + binding.albumContentVp.adapter = albumAdapter +// TabLayout, ViewPager 연결 + TabLayoutMediator(binding.albumContentTb, binding.albumContentVp) { + tab, position -> + tab.text = information[position] + }.attach() + + return binding.root + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/AlbumVPAdapter.kt b/yuja/app/src/main/java/com/example/flo/AlbumVPAdapter.kt new file mode 100644 index 0000000..4b98338 --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/AlbumVPAdapter.kt @@ -0,0 +1,17 @@ +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 { +// when .==' switch (position에 따라 다른 정보 보여줌) + return when(position) { + 0 -> SongFragment() + 1 -> DetailFragment() + else -> VideoFragment() + } + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/BannerFragment.kt b/yuja/app/src/main/java/com/example/flo/BannerFragment.kt new file mode 100644 index 0000000..ab42533 --- /dev/null +++ b/yuja/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) // ImageView의 src를 변경 + + return binding.root + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/BannerVPAdapter.kt b/yuja/app/src/main/java/com/example/flo/BannerVPAdapter.kt new file mode 100644 index 0000000..46032ba --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/BannerVPAdapter.kt @@ -0,0 +1,16 @@ +package com.example.flo + +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) //함수가 처음 실행될 때 fragment에 아무것도 없음. 이때 homefagmetnt에 있는 걸 넣어줘라? + notifyItemInserted(fragmentlist.size-1) //list 안에 새로운 값이 추가되었을 경우, viewpager에게 알려줌 ("이것도 추가해서 보여줘!") + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/DetailFragment.kt b/yuja/app/src/main/java/com/example/flo/DetailFragment.kt new file mode 100644 index 0000000..1009d7e --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/DetailFragment.kt @@ -0,0 +1,22 @@ +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/yuja/app/src/main/java/com/example/flo/HomeFragment.kt b/yuja/app/src/main/java/com/example/flo/HomeFragment.kt new file mode 100644 index 0000000..a844d1a --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/HomeFragment.kt @@ -0,0 +1,35 @@ +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 androidx.viewpager2.widget.ViewPager2 +import com.example.flo.databinding.FragmentHomeBinding + +class HomeFragment : Fragment() { + lateinit var binding: FragmentHomeBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentHomeBinding.inflate(inflater, container, false) + + binding.homeTodayAlbumImgIv.setOnClickListener { + (context as MainActivity).supportFragmentManager.beginTransaction() + .replace(R.id.main_frm, AlbumFragment()) + .commitAllowingStateLoss() + } + + val bannerAdapter = BannerVPAdapter(this) + bannerAdapter.addFragment(BannerFragment(R.drawable.img_home_viewpager_exp)) //괄호 안: 만든 fragment + 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/yuja/app/src/main/java/com/example/flo/LockerFragment.kt b/yuja/app/src/main/java/com/example/flo/LockerFragment.kt new file mode 100644 index 0000000..c887e68 --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/LockerFragment.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.FragmentLockerBinding + +class LockerFragment : Fragment() { + + lateinit var binding: FragmentLockerBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentLockerBinding.inflate(inflater, container, false) + + return binding.root + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/LookFragment.kt b/yuja/app/src/main/java/com/example/flo/LookFragment.kt new file mode 100644 index 0000000..c1e990d --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/LookFragment.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.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/yuja/app/src/main/java/com/example/flo/MainActivity.kt b/yuja/app/src/main/java/com/example/flo/MainActivity.kt new file mode 100644 index 0000000..4ead7ab --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/MainActivity.kt @@ -0,0 +1,74 @@ +package com.example.flo + +import android.content.Intent +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.Log +import com.example.flo.databinding.ActivityMainBinding + +class MainActivity : AppCompatActivity() { + + lateinit var binding: ActivityMainBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + val song = Song(binding.mainMiniplayerTitleTv.text.toString(), binding.mainMiniplayerSingerTv.text.toString()) +// 데이터를 잘 받아왔는지 확인 + Log.d("Song", song.title + song.singer) + + binding.mainPlayerCl.setOnClickListener { + //startActivity(Intent(this, SongActivity::class.java)) + + //intent 상자 만들기 + val intent = Intent(this, SongActivity::class.java) + //데이터 담기 + intent.putExtra("title", song.title) //key, 전달할 값 + intent.putExtra("singer", song.singer) + //데이터 전달 + startActivity(intent) + } + initBottomNavigation() + } + + 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 + } + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/SearchFragment.kt b/yuja/app/src/main/java/com/example/flo/SearchFragment.kt new file mode 100644 index 0000000..71d1bc8 --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/SearchFragment.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.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/yuja/app/src/main/java/com/example/flo/Song.kt b/yuja/app/src/main/java/com/example/flo/Song.kt new file mode 100644 index 0000000..857a24d --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/Song.kt @@ -0,0 +1,6 @@ +package com.example.flo + +data class Song( + val title : String = "", + val singer : String = "" +) diff --git a/yuja/app/src/main/java/com/example/flo/SongActivity.kt b/yuja/app/src/main/java/com/example/flo/SongActivity.kt new file mode 100644 index 0000000..139f9f2 --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/SongActivity.kt @@ -0,0 +1,48 @@ +package com.example.flo + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.appcompat.app.AppCompatActivity +import com.example.flo.databinding.ActivitySongBinding + +class SongActivity : AppCompatActivity() { + + lateinit var binding : ActivitySongBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySongBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.songDownIb.setOnClickListener { + finish() + } + + binding.songMiniplayerIv.setOnClickListener { + setPlayStatus(false) + } + + binding.songPauseIv.setOnClickListener { + setPlayStatus(true) + } + + //데이터를 받아왔다면(intent에 title&singer가 있는지 확인) + if (intent.hasExtra("title") && intent.hasExtra("singer")) { + //텍스트 변경 + binding.songTitleTv.text = intent.getStringExtra("title") + binding.songSingerTv.text = intent.getStringExtra("singer") + } + } + + fun setPlayStatus(isPlaying: Boolean) { + if(isPlaying){ + binding.songMiniplayerIv.visibility = View.VISIBLE + binding.songPauseIv.visibility = View.GONE + } + else { + binding.songMiniplayerIv.visibility = View.GONE + binding.songPauseIv.visibility = View.VISIBLE + } + } +} \ No newline at end of file diff --git a/yuja/app/src/main/java/com/example/flo/SongFragment.kt b/yuja/app/src/main/java/com/example/flo/SongFragment.kt new file mode 100644 index 0000000..5d1e4c1 --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/SongFragment.kt @@ -0,0 +1,22 @@ +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.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/yuja/app/src/main/java/com/example/flo/VideoFragment.kt b/yuja/app/src/main/java/com/example/flo/VideoFragment.kt new file mode 100644 index 0000000..cd62d5d --- /dev/null +++ b/yuja/app/src/main/java/com/example/flo/VideoFragment.kt @@ -0,0 +1,22 @@ +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.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/yuja/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/yuja/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/yuja/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/drawable/btm_color_selector.xml b/yuja/app/src/main/res/drawable/btm_color_selector.xml new file mode 100644 index 0000000..3ecf8a7 --- /dev/null +++ b/yuja/app/src/main/res/drawable/btm_color_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/drawable/btn_actionbar_instagram.png b/yuja/app/src/main/res/drawable/btn_actionbar_instagram.png new file mode 100644 index 0000000..90bc027 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_actionbar_instagram.png differ diff --git a/yuja/app/src/main/res/drawable/btn_arrow_black.png b/yuja/app/src/main/res/drawable/btn_arrow_black.png new file mode 100644 index 0000000..cc38ca8 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_arrow_black.png differ diff --git a/yuja/app/src/main/res/drawable/btn_main_arrow_more.png b/yuja/app/src/main/res/drawable/btn_main_arrow_more.png new file mode 100644 index 0000000..59e410c Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_main_arrow_more.png differ diff --git a/yuja/app/src/main/res/drawable/btn_main_mike.png b/yuja/app/src/main/res/drawable/btn_main_mike.png new file mode 100644 index 0000000..9bddec6 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_main_mike.png differ diff --git a/yuja/app/src/main/res/drawable/btn_main_setting.png b/yuja/app/src/main/res/drawable/btn_main_setting.png new file mode 100644 index 0000000..7a8d5d6 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_main_setting.png differ diff --git a/yuja/app/src/main/res/drawable/btn_main_ticket.png b/yuja/app/src/main/res/drawable/btn_main_ticket.png new file mode 100644 index 0000000..52b6d64 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_main_ticket.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplay_mvpause.png b/yuja/app/src/main/res/drawable/btn_miniplay_mvpause.png new file mode 100644 index 0000000..470e046 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplay_mvpause.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplay_mvplay.png b/yuja/app/src/main/res/drawable/btn_miniplay_mvplay.png new file mode 100644 index 0000000..d118677 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplay_mvplay.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplay_pause.png b/yuja/app/src/main/res/drawable/btn_miniplay_pause.png new file mode 100644 index 0000000..470e046 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplay_pause.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplayer_go_list.png b/yuja/app/src/main/res/drawable/btn_miniplayer_go_list.png new file mode 100644 index 0000000..1b2d977 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplayer_go_list.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplayer_next.png b/yuja/app/src/main/res/drawable/btn_miniplayer_next.png new file mode 100644 index 0000000..3aedba3 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplayer_next.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplayer_play.png b/yuja/app/src/main/res/drawable/btn_miniplayer_play.png new file mode 100644 index 0000000..f619072 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplayer_play.png differ diff --git a/yuja/app/src/main/res/drawable/btn_miniplayer_previous.png b/yuja/app/src/main/res/drawable/btn_miniplayer_previous.png new file mode 100644 index 0000000..d0bf1f6 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_miniplayer_previous.png differ diff --git a/yuja/app/src/main/res/drawable/btn_panel_play_large.png b/yuja/app/src/main/res/drawable/btn_panel_play_large.png new file mode 100644 index 0000000..4ac7103 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_panel_play_large.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_eq_off.png b/yuja/app/src/main/res/drawable/btn_player_eq_off.png new file mode 100644 index 0000000..f23d9c6 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_eq_off.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_go_list.png b/yuja/app/src/main/res/drawable/btn_player_go_list.png new file mode 100644 index 0000000..1b2d977 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_go_list.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_more.png b/yuja/app/src/main/res/drawable/btn_player_more.png new file mode 100644 index 0000000..a8ad9e6 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_more.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_play.png b/yuja/app/src/main/res/drawable/btn_player_play.png new file mode 100644 index 0000000..f6c3201 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_play.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_related.png b/yuja/app/src/main/res/drawable/btn_player_related.png new file mode 100644 index 0000000..9026fe5 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_related.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_setting.png b/yuja/app/src/main/res/drawable/btn_player_setting.png new file mode 100644 index 0000000..0df8f69 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_setting.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_unlike_off.png b/yuja/app/src/main/res/drawable/btn_player_unlike_off.png new file mode 100644 index 0000000..b539504 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_unlike_off.png differ diff --git a/yuja/app/src/main/res/drawable/btn_player_unlike_on.png b/yuja/app/src/main/res/drawable/btn_player_unlike_on.png new file mode 100644 index 0000000..45a43ca Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_player_unlike_on.png differ diff --git a/yuja/app/src/main/res/drawable/btn_playlist_select_off.png b/yuja/app/src/main/res/drawable/btn_playlist_select_off.png new file mode 100644 index 0000000..62ef45c Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_playlist_select_off.png differ diff --git a/yuja/app/src/main/res/drawable/btn_playlist_select_on.png b/yuja/app/src/main/res/drawable/btn_playlist_select_on.png new file mode 100644 index 0000000..2d3b6af Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_playlist_select_on.png differ diff --git a/yuja/app/src/main/res/drawable/btn_toggle_off.png b/yuja/app/src/main/res/drawable/btn_toggle_off.png new file mode 100644 index 0000000..983360d Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_toggle_off.png differ diff --git a/yuja/app/src/main/res/drawable/btn_toggle_on.png b/yuja/app/src/main/res/drawable/btn_toggle_on.png new file mode 100644 index 0000000..fb609f4 Binary files /dev/null and b/yuja/app/src/main/res/drawable/btn_toggle_on.png differ diff --git a/yuja/app/src/main/res/drawable/discovery_banner_aos.jpg b/yuja/app/src/main/res/drawable/discovery_banner_aos.jpg new file mode 100644 index 0000000..c905515 Binary files /dev/null and b/yuja/app/src/main/res/drawable/discovery_banner_aos.jpg differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_home_no_select.png b/yuja/app/src/main/res/drawable/ic_bottom_home_no_select.png new file mode 100644 index 0000000..69a8ab6 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_home_no_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_home_select.png b/yuja/app/src/main/res/drawable/ic_bottom_home_select.png new file mode 100644 index 0000000..c0ff48e Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_home_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_locker_no_select.png b/yuja/app/src/main/res/drawable/ic_bottom_locker_no_select.png new file mode 100644 index 0000000..a67dec3 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_locker_no_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_locker_select.png b/yuja/app/src/main/res/drawable/ic_bottom_locker_select.png new file mode 100644 index 0000000..042489f Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_locker_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_look_no_select.png b/yuja/app/src/main/res/drawable/ic_bottom_look_no_select.png new file mode 100644 index 0000000..6c2f4f0 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_look_no_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_look_select.png b/yuja/app/src/main/res/drawable/ic_bottom_look_select.png new file mode 100644 index 0000000..3d169e4 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_look_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_search_no_select.png b/yuja/app/src/main/res/drawable/ic_bottom_search_no_select.png new file mode 100644 index 0000000..a77b8c5 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_search_no_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_bottom_search_select.png b/yuja/app/src/main/res/drawable/ic_bottom_search_select.png new file mode 100644 index 0000000..d5c8a72 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_bottom_search_select.png differ diff --git a/yuja/app/src/main/res/drawable/ic_launcher_background.xml b/yuja/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/yuja/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yuja/app/src/main/res/drawable/ic_main_facebook.png b/yuja/app/src/main/res/drawable/ic_main_facebook.png new file mode 100644 index 0000000..83e9732 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_main_facebook.png differ diff --git a/yuja/app/src/main/res/drawable/ic_main_instagram.png b/yuja/app/src/main/res/drawable/ic_main_instagram.png new file mode 100644 index 0000000..398ce61 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_main_instagram.png differ diff --git a/yuja/app/src/main/res/drawable/ic_main_twitter.png b/yuja/app/src/main/res/drawable/ic_main_twitter.png new file mode 100644 index 0000000..6ddc68e Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_main_twitter.png differ diff --git a/yuja/app/src/main/res/drawable/ic_main_youtube.png b/yuja/app/src/main/res/drawable/ic_main_youtube.png new file mode 100644 index 0000000..0c4ec93 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_main_youtube.png differ diff --git a/yuja/app/src/main/res/drawable/ic_my_like_off.png b/yuja/app/src/main/res/drawable/ic_my_like_off.png new file mode 100644 index 0000000..c06e139 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_my_like_off.png differ diff --git a/yuja/app/src/main/res/drawable/ic_my_like_on.png b/yuja/app/src/main/res/drawable/ic_my_like_on.png new file mode 100644 index 0000000..22577c0 Binary files /dev/null and b/yuja/app/src/main/res/drawable/ic_my_like_on.png differ diff --git a/yuja/app/src/main/res/drawable/icon_browse_arrow_right.png b/yuja/app/src/main/res/drawable/icon_browse_arrow_right.png new file mode 100644 index 0000000..71b588b Binary files /dev/null and b/yuja/app/src/main/res/drawable/icon_browse_arrow_right.png differ diff --git a/yuja/app/src/main/res/drawable/img_album_exp.png b/yuja/app/src/main/res/drawable/img_album_exp.png new file mode 100644 index 0000000..6e3f38a Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_album_exp.png differ diff --git a/yuja/app/src/main/res/drawable/img_album_exp2.png b/yuja/app/src/main/res/drawable/img_album_exp2.png new file mode 100644 index 0000000..28ea3ee Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_album_exp2.png differ diff --git a/yuja/app/src/main/res/drawable/img_album_lp.png b/yuja/app/src/main/res/drawable/img_album_lp.png new file mode 100644 index 0000000..29fb1b4 Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_album_lp.png differ diff --git a/yuja/app/src/main/res/drawable/img_first_album_default.png b/yuja/app/src/main/res/drawable/img_first_album_default.png new file mode 100644 index 0000000..926d34f Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_first_album_default.png differ diff --git a/yuja/app/src/main/res/drawable/img_home_viewpager_exp.png b/yuja/app/src/main/res/drawable/img_home_viewpager_exp.png new file mode 100644 index 0000000..da78032 Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_home_viewpager_exp.png differ diff --git a/yuja/app/src/main/res/drawable/img_home_viewpager_exp2.png b/yuja/app/src/main/res/drawable/img_home_viewpager_exp2.png new file mode 100644 index 0000000..50fa4be Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_home_viewpager_exp2.png differ diff --git a/yuja/app/src/main/res/drawable/img_potcast_exp.png b/yuja/app/src/main/res/drawable/img_potcast_exp.png new file mode 100644 index 0000000..50a46e0 Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_potcast_exp.png differ diff --git a/yuja/app/src/main/res/drawable/img_video_exp.png b/yuja/app/src/main/res/drawable/img_video_exp.png new file mode 100644 index 0000000..7f6b05f Binary files /dev/null and b/yuja/app/src/main/res/drawable/img_video_exp.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_down.png b/yuja/app/src/main/res/drawable/nugu_btn_down.png new file mode 100644 index 0000000..03a04c5 Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_down.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_pause_32.png b/yuja/app/src/main/res/drawable/nugu_btn_pause_32.png new file mode 100644 index 0000000..9388aa3 Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_pause_32.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_play_32.png b/yuja/app/src/main/res/drawable/nugu_btn_play_32.png new file mode 100644 index 0000000..b781e4c Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_play_32.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_random_inactive.png b/yuja/app/src/main/res/drawable/nugu_btn_random_inactive.png new file mode 100644 index 0000000..fe4f880 Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_random_inactive.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_repeat_inactive.png b/yuja/app/src/main/res/drawable/nugu_btn_repeat_inactive.png new file mode 100644 index 0000000..1e4044d Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_repeat_inactive.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_skip_next_32.png b/yuja/app/src/main/res/drawable/nugu_btn_skip_next_32.png new file mode 100644 index 0000000..fc02f28 Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_skip_next_32.png differ diff --git a/yuja/app/src/main/res/drawable/nugu_btn_skip_previous_32.png b/yuja/app/src/main/res/drawable/nugu_btn_skip_previous_32.png new file mode 100644 index 0000000..03ec854 Binary files /dev/null and b/yuja/app/src/main/res/drawable/nugu_btn_skip_previous_32.png differ diff --git a/yuja/app/src/main/res/drawable/textview_background_radius.xml b/yuja/app/src/main/res/drawable/textview_background_radius.xml new file mode 100644 index 0000000..a7ca13e --- /dev/null +++ b/yuja/app/src/main/res/drawable/textview_background_radius.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/drawable/textview_background_select_color_radius.xml b/yuja/app/src/main/res/drawable/textview_background_select_color_radius.xml new file mode 100644 index 0000000..6542e62 --- /dev/null +++ b/yuja/app/src/main/res/drawable/textview_background_select_color_radius.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/drawable/widget_black_play.png b/yuja/app/src/main/res/drawable/widget_black_play.png new file mode 100644 index 0000000..0ec2700 Binary files /dev/null and b/yuja/app/src/main/res/drawable/widget_black_play.png differ diff --git a/yuja/app/src/main/res/layout/activity_main.xml b/yuja/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..a25fb0e --- /dev/null +++ b/yuja/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/activity_song.xml b/yuja/app/src/main/res/layout/activity_song.xml new file mode 100644 index 0000000..b590793 --- /dev/null +++ b/yuja/app/src/main/res/layout/activity_song.xml @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_album.xml b/yuja/app/src/main/res/layout/fragment_album.xml new file mode 100644 index 0000000..9f52d1d --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_album.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_banner.xml b/yuja/app/src/main/res/layout/fragment_banner.xml new file mode 100644 index 0000000..c9eb444 --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_banner.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_detail.xml b/yuja/app/src/main/res/layout/fragment_detail.xml new file mode 100644 index 0000000..c711e5a --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_detail.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_home.xml b/yuja/app/src/main/res/layout/fragment_home.xml new file mode 100644 index 0000000..3348210 --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,779 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_locker.xml b/yuja/app/src/main/res/layout/fragment_locker.xml new file mode 100644 index 0000000..38a93a5 --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_locker.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_look.xml b/yuja/app/src/main/res/layout/fragment_look.xml new file mode 100644 index 0000000..59d1359 --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_look.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_search.xml b/yuja/app/src/main/res/layout/fragment_search.xml new file mode 100644 index 0000000..6fbc0a9 --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_search.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_song.xml b/yuja/app/src/main/res/layout/fragment_song.xml new file mode 100644 index 0000000..df3fe83 --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_song.xml @@ -0,0 +1,555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/layout/fragment_video.xml b/yuja/app/src/main/res/layout/fragment_video.xml new file mode 100644 index 0000000..444e03b --- /dev/null +++ b/yuja/app/src/main/res/layout/fragment_video.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/menu/bottom_nav_menu.xml b/yuja/app/src/main/res/menu/bottom_nav_menu.xml new file mode 100644 index 0000000..9a55b1a --- /dev/null +++ b/yuja/app/src/main/res/menu/bottom_nav_menu.xml @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/yuja/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/yuja/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/yuja/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/yuja/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/yuja/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/yuja/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/yuja/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..b2dfe3d Binary files /dev/null and b/yuja/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/yuja/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/yuja/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/yuja/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/yuja/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..62b611d Binary files /dev/null and b/yuja/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/yuja/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/yuja/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..948a307 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/yuja/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/yuja/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..1b9a695 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/yuja/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/yuja/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..28d4b77 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/yuja/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/yuja/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9287f50 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/yuja/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/yuja/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..aa7d642 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/yuja/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/yuja/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9126ae3 Binary files /dev/null and b/yuja/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/yuja/app/src/main/res/values-night/themes.xml b/yuja/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..f430368 --- /dev/null +++ b/yuja/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/yuja/app/src/main/res/values/colors.xml b/yuja/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..b3ef6c0 --- /dev/null +++ b/yuja/app/src/main/res/values/colors.xml @@ -0,0 +1,18 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + + #9cbee2 + #062342 + #6bb2ff + + #00ff0000 + #3f3fff + #a8a8a8 + \ No newline at end of file diff --git a/yuja/app/src/main/res/values/strings.xml b/yuja/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..9ac5010 --- /dev/null +++ b/yuja/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + FLO + \ No newline at end of file diff --git a/yuja/app/src/main/res/values/themes.xml b/yuja/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..4a5c354 --- /dev/null +++ b/yuja/app/src/main/res/values/themes.xml @@ -0,0 +1,23 @@ + + + + \ No newline at end of file diff --git a/yuja/app/src/test/java/com/example/flo/ExampleUnitTest.kt b/yuja/app/src/test/java/com/example/flo/ExampleUnitTest.kt new file mode 100644 index 0000000..d39df20 --- /dev/null +++ b/yuja/app/src/test/java/com/example/flo/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.example.flo + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/yuja/build.gradle b/yuja/build.gradle new file mode 100644 index 0000000..78fce59 --- /dev/null +++ b/yuja/build.gradle @@ -0,0 +1,18 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:7.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/yuja/gradle.properties b/yuja/gradle.properties new file mode 100644 index 0000000..98bed16 --- /dev/null +++ b/yuja/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official \ No newline at end of file diff --git a/yuja/gradle/wrapper/gradle-wrapper.jar b/yuja/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/yuja/gradle/wrapper/gradle-wrapper.jar differ diff --git a/yuja/gradle/wrapper/gradle-wrapper.properties b/yuja/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..8552cef --- /dev/null +++ b/yuja/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Dec 28 23:15:55 KST 2021 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/yuja/gradlew b/yuja/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/yuja/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/yuja/gradlew.bat b/yuja/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/yuja/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/yuja/settings.gradle b/yuja/settings.gradle new file mode 100644 index 0000000..5cb40e4 --- /dev/null +++ b/yuja/settings.gradle @@ -0,0 +1,10 @@ +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + jcenter() // Warning: this repository is going to shut down soon + } +} +rootProject.name = "FLO" +include ':app'