From 816d40ab56140352ac8c9c4c1bb960402d63c8ae Mon Sep 17 00:00:00 2001 From: Ssamssamukja <109636635+Ssamssamukja@users.noreply.github.com> Date: Tue, 25 Jun 2024 23:59:32 +0900 Subject: [PATCH] =?UTF-8?q?[Nunu/#47]=20feat:=2010=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20(#49)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [nunu/#47] update : 파일구조화 data(Model) / ui(View, Controller) / utils 구분 * [nunu/#47] feat: 카카오 로그인 구현 - gradle 설정 - 카카오 해시값 설정 - 카카오 로그인 구현 - 카카오 로그인 성공시 이동 --- UMC_6th/app/build.gradle.kts | 3 + UMC_6th/app/src/main/AndroidManifest.xml | 26 +++- .../com/example/umc_6th/GlobalApplication.kt | 13 ++ .../java/com/example/umc_6th/LoginActivity.kt | 92 ----------- .../adapter/SharedPreferencesHelper.kt | 28 ---- .../umc_6th/{ => data/entities}/Album.kt | 2 +- .../umc_6th/{ => data/entities}/Like.kt | 2 +- .../umc_6th/{ => data/entities}/Song.kt | 2 +- .../umc_6th/{ => data/entities}/User.kt | 2 +- .../umc_6th/{ => data/local}/AlbumDao.kt | 4 +- .../umc_6th/{ => data/local}/SongDao.kt | 3 +- .../umc_6th/{ => data/local}/SongDatabase.kt | 6 +- .../umc_6th/{ => data/local}/UserDao.kt | 3 +- .../{ => data/remote}/ApiRepository.kt | 2 +- .../umc_6th/{ => data/remote}/BaseResponse.kt | 2 +- .../{ => data/remote/album}/AlbumApi.kt | 2 +- .../{ => data/remote/album}/AlbumResponse.kt | 5 +- .../{ => data/remote/album}/AlbumService.kt | 4 +- .../umc_6th/{ => data/remote/auth}/AuthApi.kt | 4 +- .../{ => data/remote/auth}/AuthService.kt | 6 +- .../remote/auth}/RetrofitInstance.kt | 5 +- .../umc_6th/{ => data/remote/song}/SongApi.kt | 2 +- .../{ => data/remote/song}/SongResponse.kt | 2 +- .../{ => data/remote/song}/SongService.kt | 4 +- .../{ => ui}/adapter/AlbumPagerAdapter.kt | 10 +- .../{ => ui}/adapter/AlbumRecyclerAdapter.kt | 8 +- .../{ => ui}/adapter/HomePagerAdapter.kt | 6 +- .../adapter/LockerAlbumRecyclerAdapter.kt | 8 +- .../{ => ui}/adapter/LockerPagerAdapter.kt | 8 +- .../LockerSavedAlbumRecyclerAdapter.kt | 8 +- .../adapter/SongRecyclerViewAdapter.kt | 8 +- .../example/umc_6th/ui/login/LoginActivity.kt | 145 ++++++++++++++++++ .../umc_6th/{ => ui/login}/LoginView.kt | 5 +- .../umc_6th/{ => ui/main}/MainActivity.kt | 21 ++- .../main/album}/AlbumDetailFragment.kt | 3 +- .../{ => ui/main/album}/AlbumFragment.kt | 15 +- .../{ => ui/main/album}/AlbumSongsFragment.kt | 5 +- .../{ => ui/main/album}/AlbumVideoFragment.kt | 3 +- .../main/home}/FragmentHomeMainBanner.kt | 3 +- .../main/home}/FragmentHomeMainBanner2.kt | 3 +- .../{ => ui/main/home}/HomeAlbumView.kt | 4 +- .../{ => ui/main/home}/HomeFragment.kt | 15 +- .../{ => ui/main/locker}/LockerFragment.kt | 10 +- .../main/locker}/LockerMusicFileFragment.kt | 3 +- .../main/locker}/LockerSavedAlbumFragment.kt | 5 +- .../main/locker}/LockerSavedSongFragment.kt | 9 +- .../{ => ui/main/look}/LookFragment.kt | 8 +- .../umc_6th/{ => ui/main/look}/LookView.kt | 4 +- .../{ => ui/main/search}/SearchFragment.kt | 3 +- .../umc_6th/{ => ui/signup}/SignUpActivity.kt | 10 +- .../umc_6th/{ => ui/signup}/SignUpView.kt | 2 +- .../umc_6th/{ => ui/song}/SongActivity.kt | 10 +- .../umc_6th/{ => ui/splash}/SplashActivity.kt | 4 +- .../example/umc_6th/{ => utils}/Constant.kt | 2 +- .../umc_6th/{ => utils}/ForegroundService.kt | 4 +- .../app/src/main/res/layout/activity_main.xml | 2 +- .../app/src/main/res/layout/activity_song.xml | 2 +- UMC_6th/settings.gradle.kts | 1 + 58 files changed, 347 insertions(+), 234 deletions(-) create mode 100644 UMC_6th/app/src/main/java/com/example/umc_6th/GlobalApplication.kt delete mode 100644 UMC_6th/app/src/main/java/com/example/umc_6th/LoginActivity.kt delete mode 100644 UMC_6th/app/src/main/java/com/example/umc_6th/adapter/SharedPreferencesHelper.kt rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/entities}/Album.kt (88%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/entities}/Like.kt (82%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/entities}/Song.kt (91%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/entities}/User.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/local}/AlbumDao.kt (86%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/local}/SongDao.kt (91%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/local}/SongDatabase.kt (81%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/local}/UserDao.kt (80%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote}/ApiRepository.kt (75%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote}/BaseResponse.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/album}/AlbumApi.kt (74%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/album}/AlbumResponse.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/album}/AlbumService.kt (89%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/auth}/AuthApi.kt (64%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/auth}/AuthService.kt (89%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/auth}/RetrofitInstance.kt (72%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/song}/SongApi.kt (74%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/song}/SongResponse.kt (93%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => data/remote/song}/SongService.kt (88%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/AlbumPagerAdapter.kt (72%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/AlbumRecyclerAdapter.kt (89%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/HomePagerAdapter.kt (74%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/LockerAlbumRecyclerAdapter.kt (91%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/LockerPagerAdapter.kt (65%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/LockerSavedAlbumRecyclerAdapter.kt (88%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui}/adapter/SongRecyclerViewAdapter.kt (89%) create mode 100644 UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginActivity.kt rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/login}/LoginView.kt (52%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main}/MainActivity.kt (94%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/album}/AlbumDetailFragment.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/album}/AlbumFragment.kt (92%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/album}/AlbumSongsFragment.kt (93%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/album}/AlbumVideoFragment.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/home}/FragmentHomeMainBanner.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/home}/FragmentHomeMainBanner2.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/home}/HomeAlbumView.kt (62%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/home}/HomeFragment.kt (94%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/locker}/LockerFragment.kt (93%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/locker}/LockerMusicFileFragment.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/locker}/LockerSavedAlbumFragment.kt (92%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/locker}/LockerSavedSongFragment.kt (93%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/look}/LookFragment.kt (86%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/look}/LookView.kt (61%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/main/search}/SearchFragment.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/signup}/SignUpActivity.kt (90%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/signup}/SignUpView.kt (70%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/song}/SongActivity.kt (97%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => ui/splash}/SplashActivity.kt (96%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => utils}/Constant.kt (74%) rename UMC_6th/app/src/main/java/com/example/umc_6th/{ => utils}/ForegroundService.kt (94%) diff --git a/UMC_6th/app/build.gradle.kts b/UMC_6th/app/build.gradle.kts index e8400dc..e287165 100644 --- a/UMC_6th/app/build.gradle.kts +++ b/UMC_6th/app/build.gradle.kts @@ -92,4 +92,7 @@ dependencies { //Glide implementation("com.github.bumptech.glide:glide:4.11.0") annotationProcessor("com.github.bumptech.glide:compiler:4.11.0") + + //카카오 + implementation ("com.kakao.sdk:v2-user:2.20.1") } \ No newline at end of file diff --git a/UMC_6th/app/src/main/AndroidManifest.xml b/UMC_6th/app/src/main/AndroidManifest.xml index b477c23..c780ee6 100644 --- a/UMC_6th/app/src/main/AndroidManifest.xml +++ b/UMC_6th/app/src/main/AndroidManifest.xml @@ -8,6 +8,7 @@ @@ -34,16 +35,29 @@ - - + + + + + + + + + + + + \ No newline at end of file diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/GlobalApplication.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/GlobalApplication.kt new file mode 100644 index 0000000..9188ed9 --- /dev/null +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/GlobalApplication.kt @@ -0,0 +1,13 @@ +package com.example.umc_6th; + +import android.app.Application +import com.kakao.sdk.common.KakaoSdk + +class GlobalApplication : Application() { + override fun onCreate() { + super.onCreate() + + // Kakao Sdk 초기화 + KakaoSdk.init(this, "9d12108978063874c1db2eef7e2b81de") + } +} diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LoginActivity.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/LoginActivity.kt deleted file mode 100644 index c12ade8..0000000 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LoginActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.example.umc_6th - -import android.content.Intent -import android.os.Bundle -import android.util.Log -import android.widget.Toast -import androidx.appcompat.app.AppCompatActivity -import com.example.umc_6th.databinding.ActivityLoginBinding - -class LoginActivity : AppCompatActivity(), LoginView { - - private var _binding : ActivityLoginBinding? = null - private val binding get() = _binding!! - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - _binding = ActivityLoginBinding.inflate(layoutInflater) - setContentView(binding.root) - - binding.loginSignUpTv.setOnClickListener{ - val intent = Intent(this, SignUpActivity::class.java) - startActivity(intent) - } - - binding.loginCloseIv.setOnClickListener { - finish() - } - binding.loginSignInBtn.setOnClickListener { - login() - } - } - - private fun login() { - if (binding.loginIdEt.text.toString().isEmpty() || binding.loginDirectInputEt.text.toString().isEmpty()) { - Toast.makeText(this, "이메일을 입력해주세요.", Toast.LENGTH_SHORT).show() - return - } - - if (binding.loginPasswordEt.text.toString().isEmpty()) { - Toast.makeText(this, "비밀번호를 입력해주세요.", Toast.LENGTH_SHORT).show() - return - } - - val email : String = binding.loginIdEt.text.toString() + "@" + binding.loginDirectInputEt.text.toString() - val pwd : String = binding.loginPasswordEt.text.toString() - - val songDB = SongDatabase.getInstance(this)!! - /* - val user = songDB.userDao().getUser(email, pwd) - - if (user != null) { - Log.d("LoginActivity", user.id.toString()) - saveJwt(user.id.toString()) - startMainActivity() - } else { - Toast.makeText(this, "회원 정보가 존재하지 않습니다", Toast.LENGTH_SHORT).show() - } - - */ - - val authService = AuthService() - authService.setLoginView(this) - - authService.login(User(email, pwd, "")) - } - - private fun startMainActivity() { - val intent = Intent(this, MainActivity::class.java) - startActivity(intent) - } - - private fun saveJwt(jwt: String) { - val spf = getSharedPreferences("auth" , MODE_PRIVATE) - val editor = spf.edit() - - editor.putString("jwt", jwt) - editor.apply() - } - - override fun onLoginSuccess(code : Int, result : Result) { - saveJwt(result.jwt) - startMainActivity() - } - - override fun onLoginFailure(message : String) { - Toast.makeText(this, message, Toast.LENGTH_SHORT).show() - } - - override fun onDestroy() { - super.onDestroy() - _binding = null - } -} \ No newline at end of file diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/SharedPreferencesHelper.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/SharedPreferencesHelper.kt deleted file mode 100644 index 1bad3e4..0000000 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/SharedPreferencesHelper.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.example.umc_6th.adapter - -import android.content.Context -import android.content.SharedPreferences - -class SharedPreferencesHelper(context: Context) { - private val PREFS_NAME = "song" - private var preferences: SharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) - - fun saveSongId(songId: Int) { - preferences.edit().putInt("LAST_SONG_ID", songId).apply() - } - - fun getSongId(): Int { - return preferences.getInt("LAST_SONG_ID", 0) - } - - fun saveUserSetting(key: String, value: Boolean) { - preferences.edit().putBoolean(key, value).apply() - } - - fun getUserSetting(key: String, defaultValue: Boolean): Boolean { - return preferences.getBoolean(key, defaultValue) - } - - - -} \ No newline at end of file diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/Album.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Album.kt similarity index 88% rename from UMC_6th/app/src/main/java/com/example/umc_6th/Album.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Album.kt index dfede36..15d4df5 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/Album.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Album.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.entities import androidx.room.Entity diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/Like.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Like.kt similarity index 82% rename from UMC_6th/app/src/main/java/com/example/umc_6th/Like.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Like.kt index 0ec36aa..3eca19f 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/Like.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Like.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.entities import androidx.room.Entity import androidx.room.PrimaryKey diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/Song.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Song.kt similarity index 91% rename from UMC_6th/app/src/main/java/com/example/umc_6th/Song.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Song.kt index a5976e5..3873212 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/Song.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/Song.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.entities import androidx.room.Entity import androidx.room.PrimaryKey diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/User.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/User.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/User.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/User.kt index 911df06..c508363 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/User.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/entities/User.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.entities import androidx.room.Entity import androidx.room.PrimaryKey diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumDao.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/AlbumDao.kt similarity index 86% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumDao.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/local/AlbumDao.kt index 13f0fe5..dfb26ea 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumDao.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/AlbumDao.kt @@ -1,6 +1,8 @@ -package com.example.umc_6th +package com.example.umc_6th.data.local import androidx.room.* +import com.example.umc_6th.data.entities.Album +import com.example.umc_6th.data.entities.Like @Dao interface AlbumDao { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SongDao.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/SongDao.kt similarity index 91% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SongDao.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/local/SongDao.kt index e0c5008..9e4fd1a 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SongDao.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/SongDao.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.data.local import androidx.room.Dao import androidx.room.Delete import androidx.room.Insert import androidx.room.Query import androidx.room.Update +import com.example.umc_6th.data.entities.Song @Dao interface SongDao { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SongDatabase.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/SongDatabase.kt similarity index 81% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SongDatabase.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/local/SongDatabase.kt index 08fdb74..febb6d6 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SongDatabase.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/SongDatabase.kt @@ -1,9 +1,13 @@ -package com.example.umc_6th +package com.example.umc_6th.data.local import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase +import com.example.umc_6th.data.entities.Album +import com.example.umc_6th.data.entities.Like +import com.example.umc_6th.data.entities.Song +import com.example.umc_6th.data.entities.User @Database(entities = [Song::class, Album::class, User::class, Like::class], version = 1) abstract class SongDatabase: RoomDatabase() { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/UserDao.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/UserDao.kt similarity index 80% rename from UMC_6th/app/src/main/java/com/example/umc_6th/UserDao.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/local/UserDao.kt index 8f6b77b..6b8ca9b 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/UserDao.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/local/UserDao.kt @@ -1,8 +1,9 @@ -package com.example.umc_6th +package com.example.umc_6th.data.local import androidx.room.Dao import androidx.room.Insert import androidx.room.Query +import com.example.umc_6th.data.entities.User @Dao interface UserDao { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/ApiRepository.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/ApiRepository.kt similarity index 75% rename from UMC_6th/app/src/main/java/com/example/umc_6th/ApiRepository.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/ApiRepository.kt index 24ea8aa..b575cc1 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/ApiRepository.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/ApiRepository.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote class ApiRepository { companion object { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/BaseResponse.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/BaseResponse.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/BaseResponse.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/BaseResponse.kt index bab9e34..04d05d1 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/BaseResponse.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/BaseResponse.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote import com.google.gson.annotations.SerializedName diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumApi.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumApi.kt similarity index 74% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumApi.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumApi.kt index 4ac827d..6bdd947 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumApi.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumApi.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.album import retrofit2.Call import retrofit2.http.GET diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumResponse.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumResponse.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumResponse.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumResponse.kt index 5c92a87..6d26387 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumResponse.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumResponse.kt @@ -1,11 +1,12 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.album import com.google.gson.annotations.SerializedName data class AlbumResponse( @SerializedName("isSuccess") val isSuccess: Boolean, @SerializedName("code") val code: Int, @SerializedName("message") val message: String, - @SerializedName("result") val result: TodayAlbumResult) + @SerializedName("result") val result: TodayAlbumResult +) data class TodayAlbumResult( diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumService.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumService.kt similarity index 89% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumService.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumService.kt index d3f1e81..69c648d 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumService.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/album/AlbumService.kt @@ -1,6 +1,8 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.album import android.util.Log +import com.example.umc_6th.ui.main.home.HomeAlbumView +import com.example.umc_6th.data.remote.auth.RetrofitInstance import retrofit2.Call import retrofit2.Callback import retrofit2.Response diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AuthApi.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/AuthApi.kt similarity index 64% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AuthApi.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/AuthApi.kt index 61ba302..3318684 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AuthApi.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/AuthApi.kt @@ -1,5 +1,7 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.auth +import com.example.umc_6th.data.entities.User +import com.example.umc_6th.data.remote.BaseResponse import retrofit2.Call import retrofit2.http.Body import retrofit2.http.POST diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AuthService.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/AuthService.kt similarity index 89% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AuthService.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/AuthService.kt index c2d0b63..a675f34 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AuthService.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/AuthService.kt @@ -1,6 +1,10 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.auth import android.util.Log +import com.example.umc_6th.ui.login.LoginView +import com.example.umc_6th.ui.signup.SignUpView +import com.example.umc_6th.data.entities.User +import com.example.umc_6th.data.remote.BaseResponse import retrofit2.Call import retrofit2.Callback import retrofit2.Response diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/RetrofitInstance.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/RetrofitInstance.kt similarity index 72% rename from UMC_6th/app/src/main/java/com/example/umc_6th/RetrofitInstance.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/RetrofitInstance.kt index 0effed7..571b5f8 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/RetrofitInstance.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/auth/RetrofitInstance.kt @@ -1,5 +1,8 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.auth +import com.example.umc_6th.data.remote.album.AlbumApi +import com.example.umc_6th.data.remote.ApiRepository +import com.example.umc_6th.data.remote.song.SongApi import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SongApi.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongApi.kt similarity index 74% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SongApi.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongApi.kt index d9c38a9..816e7f5 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SongApi.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongApi.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.song import retrofit2.Call import retrofit2.http.GET diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SongResponse.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongResponse.kt similarity index 93% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SongResponse.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongResponse.kt index 6f382a2..36bf3be 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SongResponse.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongResponse.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.song import com.google.gson.annotations.SerializedName diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SongService.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongService.kt similarity index 88% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SongService.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongService.kt index 70a9c45..bb425d9 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SongService.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/data/remote/song/SongService.kt @@ -1,6 +1,8 @@ -package com.example.umc_6th +package com.example.umc_6th.data.remote.song import android.util.Log +import com.example.umc_6th.ui.main.look.LookView +import com.example.umc_6th.data.remote.auth.RetrofitInstance import retrofit2.Call import retrofit2.Callback import retrofit2.Response diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/AlbumPagerAdapter.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/AlbumPagerAdapter.kt similarity index 72% rename from UMC_6th/app/src/main/java/com/example/umc_6th/adapter/AlbumPagerAdapter.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/AlbumPagerAdapter.kt index 166e94b..c00b0ce 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/AlbumPagerAdapter.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/AlbumPagerAdapter.kt @@ -1,11 +1,11 @@ -package com.example.umc_6th.adapter +package com.example.umc_6th.ui.adapter import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import com.example.umc_6th.AlbumDetailFragment -import com.example.umc_6th.AlbumSongsFragment -import com.example.umc_6th.AlbumVideoFragment -import com.example.umc_6th.HomeFragment +import com.example.umc_6th.ui.main.album.AlbumDetailFragment +import com.example.umc_6th.ui.main.album.AlbumSongsFragment +import com.example.umc_6th.ui.main.album.AlbumVideoFragment +import com.example.umc_6th.ui.main.home.HomeFragment class AlbumPagerAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/AlbumRecyclerAdapter.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/AlbumRecyclerAdapter.kt similarity index 89% rename from UMC_6th/app/src/main/java/com/example/umc_6th/adapter/AlbumRecyclerAdapter.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/AlbumRecyclerAdapter.kt index 2212438..b562c0f 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/AlbumRecyclerAdapter.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/AlbumRecyclerAdapter.kt @@ -1,19 +1,19 @@ -package com.example.umc_6th.adapter +package com.example.umc_6th.ui.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.example.umc_6th.Album +import com.example.umc_6th.data.entities.Album import com.example.umc_6th.databinding.ItemAlbumBinding class AlbumRecyclerAdapter(private val albumList: ArrayList) : RecyclerView.Adapter() { - override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): AlbumRecyclerAdapter.ViewHolder { + override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder { val binding: ItemAlbumBinding = ItemAlbumBinding.inflate(LayoutInflater.from(viewGroup.context), viewGroup, false) return ViewHolder(binding) } - override fun onBindViewHolder(holder: AlbumRecyclerAdapter.ViewHolder, position: Int) { + override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.bind(albumList[position]) holder.binding.imgItemAlbumCover.setOnClickListener { itemClickListener?.onItemClick(albumList[position]) diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/HomePagerAdapter.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/HomePagerAdapter.kt similarity index 74% rename from UMC_6th/app/src/main/java/com/example/umc_6th/adapter/HomePagerAdapter.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/HomePagerAdapter.kt index f825c70..3b71915 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/HomePagerAdapter.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/HomePagerAdapter.kt @@ -1,9 +1,9 @@ -package com.example.umc_6th.adapter +package com.example.umc_6th.ui.adapter import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import com.example.umc_6th.FragmentHomeMainBanner -import com.example.umc_6th.FragmentHomeMainBanner2 +import com.example.umc_6th.ui.main.home.FragmentHomeMainBanner +import com.example.umc_6th.ui.main.home.FragmentHomeMainBanner2 class HomePagerAdapter { class HomeMainViewPagerAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/LockerAlbumRecyclerAdapter.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/LockerAlbumRecyclerAdapter.kt similarity index 91% rename from UMC_6th/app/src/main/java/com/example/umc_6th/adapter/LockerAlbumRecyclerAdapter.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/LockerAlbumRecyclerAdapter.kt index 7430aa7..560a006 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/adapter/LockerAlbumRecyclerAdapter.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/adapter/LockerAlbumRecyclerAdapter.kt @@ -1,13 +1,11 @@ -package com.example.umc_6th.adapter +package com.example.umc_6th.ui.adapter import android.annotation.SuppressLint import android.util.SparseBooleanArray import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.example.umc_6th.R -import com.example.umc_6th.Song -import com.example.umc_6th.databinding.ItemLockerAlbumBinding +import com.example.umc_6th.data.entities.Song import com.example.umc_6th.databinding.ItemLockerSongBinding class LockerAlbumRecyclerAdapter() : RecyclerView.Adapter() { @@ -18,7 +16,7 @@ class LockerAlbumRecyclerAdapter() : RecyclerView.Adapter() { @@ -20,13 +20,13 @@ class LockerSavedAlbumRecyclerAdapter : RecyclerView.Adapter() { - override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): SongRecyclerViewAdapter.ViewHolder { + override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder { val binding: ItemSongBinding = ItemSongBinding.inflate(LayoutInflater.from(viewGroup.context), viewGroup, false) return ViewHolder(binding) } - override fun onBindViewHolder(holder: SongRecyclerViewAdapter.ViewHolder, position: Int) { + override fun onBindViewHolder(holder: ViewHolder, position: Int) { //holder.bind(result.songs[position]) if(result.songs[position].coverImgUrl == "" || result.songs[position].coverImgUrl == null){ diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginActivity.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginActivity.kt new file mode 100644 index 0000000..ae9caca --- /dev/null +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginActivity.kt @@ -0,0 +1,145 @@ +package com.example.umc_6th.ui.login + +import android.content.ContentValues.TAG +import android.content.Intent +import android.os.Bundle +import android.util.Log +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import com.example.umc_6th.ui.signup.SignUpActivity +import com.example.umc_6th.data.local.SongDatabase +import com.example.umc_6th.data.entities.User +import com.example.umc_6th.data.remote.Result +import com.example.umc_6th.data.remote.auth.AuthService +import com.example.umc_6th.databinding.ActivityLoginBinding +import com.example.umc_6th.ui.main.MainActivity +import com.kakao.sdk.auth.model.OAuthToken +import com.kakao.sdk.common.model.ClientError +import com.kakao.sdk.common.model.ClientErrorCause +import com.kakao.sdk.user.UserApiClient + +class LoginActivity : AppCompatActivity(), LoginView { + + private var _binding : ActivityLoginBinding? = null + private val binding get() = _binding!! + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + _binding = ActivityLoginBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.loginSignUpTv.setOnClickListener{ + val intent = Intent(this, SignUpActivity::class.java) + startActivity(intent) + } + + binding.loginCloseIv.setOnClickListener { + finish() + } + binding.loginSignInBtn.setOnClickListener { + login() + } + binding.loginKakakoLoginIv.setOnClickListener { + kakaoLogin() + } + } + + private fun login() { + if (binding.loginIdEt.text.toString().isEmpty() || binding.loginDirectInputEt.text.toString().isEmpty()) { + Toast.makeText(this, "이메일을 입력해주세요.", Toast.LENGTH_SHORT).show() + return + } + + if (binding.loginPasswordEt.text.toString().isEmpty()) { + Toast.makeText(this, "비밀번호를 입력해주세요.", Toast.LENGTH_SHORT).show() + return + } + + val email : String = binding.loginIdEt.text.toString() + "@" + binding.loginDirectInputEt.text.toString() + val pwd : String = binding.loginPasswordEt.text.toString() + + val songDB = SongDatabase.getInstance(this)!! + /* + val user = songDB.userDao().getUser(email, pwd) + + if (user != null) { + Log.d("LoginActivity", user.id.toString()) + saveJwt(user.id.toString()) + startMainActivity() + } else { + Toast.makeText(this, "회원 정보가 존재하지 않습니다", Toast.LENGTH_SHORT).show() + } + + */ + + val authService = AuthService() + authService.setLoginView(this) + + authService.login(User(email, pwd, "")) + } + + private fun startMainActivity() { + val intent = Intent(this, MainActivity::class.java) + startActivity(intent) + } + + private fun saveJwt(jwt: String) { + val spf = getSharedPreferences("auth" , MODE_PRIVATE) + val editor = spf.edit() + + editor.putString("jwt", jwt) + editor.apply() + } + + override fun onLoginSuccess(code: Int, result: Result) { + saveJwt(result.jwt) + startMainActivity() + } + + override fun onLoginFailure(message : String) { + Toast.makeText(this, message, Toast.LENGTH_SHORT).show() + } + + override fun kakaoLogin() { + // 카카오계정으로 로그인 공통 callback 구성 + // 카카오톡으로 로그인 할 수 없어 카카오계정으로 로그인할 경우 사용됨 + val callback: (OAuthToken?, Throwable?) -> Unit = { token, error -> + if (error != null) { + Log.e(TAG, "카카오계정으로 로그인 실패", error) + } else if (token != null) { + Log.i(TAG, "카카오계정으로 로그인 성공 ${token.accessToken}") + saveJwt(token.toString()) + startMainActivity() + } + } + + // 카카오톡이 설치되어 있으면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인 + if (UserApiClient.instance.isKakaoTalkLoginAvailable(this)) { + UserApiClient.instance.loginWithKakaoTalk(this) { token, error -> + if (error != null) { + Log.e(TAG, "카카오톡으로 로그인 실패", error) + + // 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우, + // 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기) + if (error is ClientError && error.reason == ClientErrorCause.Cancelled) { + return@loginWithKakaoTalk + } + + // 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인 시도 + UserApiClient.instance.loginWithKakaoAccount(this, callback = callback) + } else if (token != null) { + Log.i(TAG, "카카오톡으로 로그인 성공 ${token.accessToken}") + saveJwt(token.toString()) + startMainActivity() + } + } + } else { + UserApiClient.instance.loginWithKakaoAccount(this, callback = callback) + } + } + + override fun onDestroy() { + super.onDestroy() + _binding = null + } + +} \ No newline at end of file diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LoginView.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginView.kt similarity index 52% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LoginView.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginView.kt index ec0c20f..5c7cc7f 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LoginView.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/login/LoginView.kt @@ -1,6 +1,9 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.login + +import com.example.umc_6th.data.remote.Result interface LoginView { fun onLoginSuccess(code : Int, result : Result) fun onLoginFailure(message : String) + fun kakaoLogin() } \ No newline at end of file diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/MainActivity.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/MainActivity.kt similarity index 94% rename from UMC_6th/app/src/main/java/com/example/umc_6th/MainActivity.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/MainActivity.kt index 4e34e60..b5ffec3 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/MainActivity.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/MainActivity.kt @@ -1,9 +1,7 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main -import android.app.Activity -import android.content.Context +import android.content.ContentValues.TAG import android.content.Intent -import android.content.SharedPreferences import android.os.Bundle import android.util.Log import android.widget.Toast @@ -12,16 +10,24 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider -import com.example.umc_6th.adapter.SharedPreferencesHelper +import com.example.umc_6th.ui.main.home.HomeFragment +import com.example.umc_6th.ui.main.locker.LockerFragment +import com.example.umc_6th.ui.main.look.LookFragment +import com.example.umc_6th.R +import com.example.umc_6th.ui.main.search.SearchFragment +import com.example.umc_6th.ui.song.SongActivity +import com.example.umc_6th.data.local.SongDatabase +import com.example.umc_6th.data.entities.Song import com.example.umc_6th.databinding.ActivityMainBinding import com.google.gson.Gson +import com.kakao.sdk.common.util.Utility class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var resultLauncher: ActivityResultLauncher private lateinit var viewModel: HomeFragment.SharedViewModel - private var song:Song = Song() + private var song: Song = Song() private val songs = arrayListOf() lateinit var songDB: SongDatabase private var nowPos = 0 @@ -81,11 +87,12 @@ class MainActivity : AppCompatActivity() { editor.putInt("songId",songs[nowPos].id-1) editor.apply() - val intent = Intent(this,SongActivity::class.java) + val intent = Intent(this, SongActivity::class.java) startActivity(intent) } Log.d("MainActivity", getJwt().toString()) + Log.d(TAG, "keyhash : ${Utility.getKeyHash(this)}") } private fun getJwt() : String? { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumDetailFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumDetailFragment.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumDetailFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumDetailFragment.kt index e7ec667..dac6598 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumDetailFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumDetailFragment.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.album import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.example.umc_6th.R class AlbumDetailFragment : Fragment() { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumFragment.kt similarity index 92% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumFragment.kt index d8a2931..94349ee 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumFragment.kt @@ -1,19 +1,20 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.album -import android.content.Intent import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentPagerAdapter -import androidx.viewpager2.adapter.FragmentStateAdapter -import com.example.umc_6th.adapter.AlbumPagerAdapter +import com.example.umc_6th.ui.main.home.HomeFragment +import com.example.umc_6th.R +import com.example.umc_6th.ui.adapter.AlbumPagerAdapter +import com.example.umc_6th.data.entities.Album +import com.example.umc_6th.data.entities.Like +import com.example.umc_6th.data.local.SongDatabase import com.example.umc_6th.databinding.FragmentAlbumBinding +import com.example.umc_6th.ui.main.MainActivity import com.google.android.material.tabs.TabLayoutMediator import com.google.gson.Gson diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumSongsFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumSongsFragment.kt similarity index 93% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumSongsFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumSongsFragment.kt index c20392b..d69bb10 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumSongsFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumSongsFragment.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.album import android.content.Intent import android.os.Bundle @@ -6,8 +6,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import com.example.umc_6th.databinding.FragmentAlbumBinding +import com.example.umc_6th.R import com.example.umc_6th.databinding.FragmentAlbumSongsBinding +import com.example.umc_6th.ui.song.SongActivity class AlbumSongsFragment : Fragment(R.layout.fragment_album_songs) { private var _binding: FragmentAlbumSongsBinding? = null diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumVideoFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumVideoFragment.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/AlbumVideoFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumVideoFragment.kt index 34d89ec..2aa0a6a 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/AlbumVideoFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/album/AlbumVideoFragment.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.album import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.example.umc_6th.R class AlbumVideoFragment : Fragment() { // 여기에 Fragment의 구현 내용을 작성합니다. diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/FragmentHomeMainBanner.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/FragmentHomeMainBanner.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/FragmentHomeMainBanner.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/FragmentHomeMainBanner.kt index 55fd0d2..793a8fb 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/FragmentHomeMainBanner.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/FragmentHomeMainBanner.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.home import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.example.umc_6th.R class FragmentHomeMainBanner : Fragment() { // 여기에 Fragment의 구현 내용을 작성합니다. diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/FragmentHomeMainBanner2.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/FragmentHomeMainBanner2.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/FragmentHomeMainBanner2.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/FragmentHomeMainBanner2.kt index 10f2b85..b9f6374 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/FragmentHomeMainBanner2.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/FragmentHomeMainBanner2.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.home import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.example.umc_6th.R class FragmentHomeMainBanner2 : Fragment() { // 여기에 Fragment의 구현 내용을 작성합니다. diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/HomeAlbumView.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/HomeAlbumView.kt similarity index 62% rename from UMC_6th/app/src/main/java/com/example/umc_6th/HomeAlbumView.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/HomeAlbumView.kt index f45ad47..5a4e3e3 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/HomeAlbumView.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/HomeAlbumView.kt @@ -1,4 +1,6 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.home + +import com.example.umc_6th.data.remote.album.TodayAlbumResult interface HomeAlbumView { fun onGetAlbumLoading() diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/HomeFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/HomeFragment.kt similarity index 94% rename from UMC_6th/app/src/main/java/com/example/umc_6th/HomeFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/HomeFragment.kt index 1a96c20..fbb6768 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/HomeFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/home/HomeFragment.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.home import android.os.Bundle @@ -7,10 +7,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.widget.ViewPager2 -import com.example.umc_6th.adapter.HomePagerAdapter -import com.example.umc_6th.adapter.ViewPagerAdapter +import com.example.umc_6th.ui.adapter.HomePagerAdapter +import com.example.umc_6th.ui.adapter.ViewPagerAdapter import com.example.umc_6th.databinding.FragmentHomeBinding import me.relex.circleindicator.CircleIndicator3 import android.os.Looper @@ -19,8 +18,12 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager -import com.example.umc_6th.adapter.AlbumRecyclerAdapter -import com.example.umc_6th.adapter.SongRecyclerViewAdapter +import com.example.umc_6th.R +import com.example.umc_6th.ui.adapter.AlbumRecyclerAdapter +import com.example.umc_6th.data.entities.Album +import com.example.umc_6th.data.local.SongDatabase +import com.example.umc_6th.ui.main.MainActivity +import com.example.umc_6th.ui.main.album.AlbumFragment import com.google.gson.Gson diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerFragment.kt similarity index 93% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LockerFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerFragment.kt index d0788d3..1795c2b 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerFragment.kt @@ -1,8 +1,7 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.locker import android.content.Intent import android.os.Bundle -import android.os.Handler import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -13,9 +12,12 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.example.umc_6th.adapter.LockerPagerAdapter -import com.example.umc_6th.databinding.FragmentHomeBinding +import com.example.umc_6th.R +import com.example.umc_6th.ui.adapter.LockerPagerAdapter +import com.example.umc_6th.data.local.SongDatabase import com.example.umc_6th.databinding.FragmentLockerBinding +import com.example.umc_6th.ui.login.LoginActivity +import com.example.umc_6th.ui.main.MainActivity import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.tabs.TabLayoutMediator diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerMusicFileFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerMusicFileFragment.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LockerMusicFileFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerMusicFileFragment.kt index de0319f..7e2c3df 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerMusicFileFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerMusicFileFragment.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.locker import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.example.umc_6th.R class LockerMusicFileFragment : Fragment() { // 여기에 Fragment의 구현 내용을 작성합니다. diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedAlbumFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerSavedAlbumFragment.kt similarity index 92% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedAlbumFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerSavedAlbumFragment.kt index 191ecb7..1922984 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedAlbumFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerSavedAlbumFragment.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.locker import android.os.Bundle import android.util.Log @@ -7,9 +7,10 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment -import com.example.umc_6th.adapter.LockerSavedAlbumRecyclerAdapter +import com.example.umc_6th.ui.adapter.LockerSavedAlbumRecyclerAdapter import com.example.umc_6th.databinding.FragmentLockerSavedAlbumBinding import androidx.recyclerview.widget.LinearLayoutManager +import com.example.umc_6th.data.local.SongDatabase class LockerSavedAlbumFragment : Fragment() { lateinit var binding: FragmentLockerSavedAlbumBinding diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedSongFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerSavedSongFragment.kt similarity index 93% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedSongFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerSavedSongFragment.kt index bc62598..a472665 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedSongFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/locker/LockerSavedSongFragment.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.locker import android.os.Bundle import android.view.LayoutInflater @@ -7,8 +7,13 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager -import com.example.umc_6th.adapter.LockerAlbumRecyclerAdapter +import com.example.umc_6th.R +import com.example.umc_6th.ui.adapter.LockerAlbumRecyclerAdapter +import com.example.umc_6th.data.entities.Song +import com.example.umc_6th.data.local.SongDatabase import com.example.umc_6th.databinding.FragmentLockerSavedSongBinding +import com.example.umc_6th.ui.main.MainActivity +import com.example.umc_6th.ui.main.album.AlbumFragment import com.google.gson.Gson class LockerSavedSongFragment : Fragment(){ diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LookFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/look/LookFragment.kt similarity index 86% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LookFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/look/LookFragment.kt index 133dcc4..4444c99 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LookFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/look/LookFragment.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.look import android.os.Bundle import android.util.Log @@ -6,8 +6,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import com.example.umc_6th.adapter.SongRecyclerViewAdapter -import com.example.umc_6th.databinding.FragmentHomeBinding +import com.example.umc_6th.ui.adapter.SongRecyclerViewAdapter +import com.example.umc_6th.data.local.SongDatabase +import com.example.umc_6th.data.remote.song.FloChartResult +import com.example.umc_6th.data.remote.song.SongService import com.example.umc_6th.databinding.FragmentLookBinding class LookFragment : Fragment(), LookView { diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/LookView.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/look/LookView.kt similarity index 61% rename from UMC_6th/app/src/main/java/com/example/umc_6th/LookView.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/look/LookView.kt index cca1f81..8c13d84 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/LookView.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/look/LookView.kt @@ -1,4 +1,6 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.look + +import com.example.umc_6th.data.remote.song.FloChartResult interface LookView { fun onGetSongLoading() diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SearchFragment.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/search/SearchFragment.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SearchFragment.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/search/SearchFragment.kt index fadadd3..7f8c306 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SearchFragment.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/main/search/SearchFragment.kt @@ -1,10 +1,11 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.main.search import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.example.umc_6th.R class SearchFragment : Fragment() { // 여기에 Fragment의 구현 내용을 작성합니다. diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SignUpActivity.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/signup/SignUpActivity.kt similarity index 90% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SignUpActivity.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/signup/SignUpActivity.kt index d118093..fa3fc24 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SignUpActivity.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/signup/SignUpActivity.kt @@ -1,16 +1,12 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.signup import android.os.Bundle -import android.util.Log import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -import com.example.umc_6th.databinding.ActivityLoginBinding import com.example.umc_6th.databinding.ActivitySignupBinding -import com.example.umc_6th.User -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response +import com.example.umc_6th.data.entities.User +import com.example.umc_6th.data.remote.auth.AuthService class SignUpActivity : AppCompatActivity(), SignUpView { lateinit var binding : ActivitySignupBinding diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SignUpView.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/signup/SignUpView.kt similarity index 70% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SignUpView.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/signup/SignUpView.kt index 1d08efc..8dc422a 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SignUpView.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/signup/SignUpView.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.signup interface SignUpView { fun onSignUpSuccess() diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SongActivity.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/song/SongActivity.kt similarity index 97% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SongActivity.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/song/SongActivity.kt index d0f9346..00dd0fa 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SongActivity.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/song/SongActivity.kt @@ -1,6 +1,5 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.song -import android.app.Activity import android.app.ActivityManager import android.content.Context import android.content.Intent @@ -14,6 +13,10 @@ import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat +import com.example.umc_6th.utils.ForegroundService +import com.example.umc_6th.R +import com.example.umc_6th.data.entities.Song +import com.example.umc_6th.data.local.SongDatabase import com.example.umc_6th.databinding.ActivitySongBinding import com.google.gson.Gson @@ -299,7 +302,8 @@ class SongActivity : AppCompatActivity() { private fun showToast(context: Context, message: String) { val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater - val layout = inflater.inflate(R.layout.custom_like_toast, + val layout = inflater.inflate( + R.layout.custom_like_toast, findViewById(R.id.custom_toast_container)) val text: TextView = layout.findViewById(R.id.toast_text) diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/SplashActivity.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/splash/SplashActivity.kt similarity index 96% rename from UMC_6th/app/src/main/java/com/example/umc_6th/SplashActivity.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/ui/splash/SplashActivity.kt index 996608a..429f60f 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/SplashActivity.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/ui/splash/SplashActivity.kt @@ -1,10 +1,10 @@ -package com.example.umc_6th +package com.example.umc_6th.ui.splash import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.example.umc_6th.databinding.ActivitySplashBinding -import retrofit2.Call +import com.example.umc_6th.ui.main.MainActivity class SplashActivity :AppCompatActivity() { private lateinit var binding : ActivitySplashBinding diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/Constant.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/utils/Constant.kt similarity index 74% rename from UMC_6th/app/src/main/java/com/example/umc_6th/Constant.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/utils/Constant.kt index e163275..4ae82c3 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/Constant.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/utils/Constant.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.utils object Constant { const val CHANNEL_ID = "ch123" diff --git a/UMC_6th/app/src/main/java/com/example/umc_6th/ForegroundService.kt b/UMC_6th/app/src/main/java/com/example/umc_6th/utils/ForegroundService.kt similarity index 94% rename from UMC_6th/app/src/main/java/com/example/umc_6th/ForegroundService.kt rename to UMC_6th/app/src/main/java/com/example/umc_6th/utils/ForegroundService.kt index 6418247..dcb04ab 100644 --- a/UMC_6th/app/src/main/java/com/example/umc_6th/ForegroundService.kt +++ b/UMC_6th/app/src/main/java/com/example/umc_6th/utils/ForegroundService.kt @@ -1,4 +1,4 @@ -package com.example.umc_6th +package com.example.umc_6th.utils import android.app.Notification import android.app.NotificationChannel @@ -9,6 +9,8 @@ import android.content.Intent import android.os.Build import android.os.IBinder import androidx.annotation.RequiresApi +import com.example.umc_6th.R +import com.example.umc_6th.ui.song.SongActivity class ForegroundService : Service() { diff --git a/UMC_6th/app/src/main/res/layout/activity_main.xml b/UMC_6th/app/src/main/res/layout/activity_main.xml index 9316b21..22cb1a5 100644 --- a/UMC_6th/app/src/main/res/layout/activity_main.xml +++ b/UMC_6th/app/src/main/res/layout/activity_main.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity" + tools:context=".ui.main.MainActivity" android:background="#ffffff">