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">