-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* [Nunu/#38] feat: 8주차 구현1 - 로그인 및 로그아웃 구현 - 로그인 상태에 따른 로그인/로그아웃 처리 - 로그인, 회원가입 Acticity 연결 - 회원 가입 구현 - binding null 처리 추가 * [Nunu/#38] feat: 8주차 구현2 - AlbumFragment에 하트 누르면 User 구분하여 Like Table 업데이트 기능 구현 - 저장앨범 탭에 띄우기 기능 구현 - 앨범 리사이클러뷰 구현 - 기존 item_locker_album.xml -> item_locker_song.xml로 변경 - fragment에 onResume, onStart에 설정하여 바로바로 업데이트 되게 보여줌. * [Nunu/#38] feat: 8주차 구현3 - look Fragment 구현
- Loading branch information
1 parent
95d668e
commit fd4ed78
Showing
23 changed files
with
1,268 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.example.umc_6th | ||
|
||
import androidx.room.Entity | ||
import androidx.room.PrimaryKey | ||
|
||
@Entity(tableName = "LikeTable") | ||
data class Like(var userId: Int, var albumId: Int) { | ||
@PrimaryKey(autoGenerate = true) var id: Int = 0 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
UMC_6th/app/src/main/java/com/example/umc_6th/LockerSavedAlbumFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package com.example.umc_6th | ||
|
||
import android.os.Bundle | ||
import android.util.Log | ||
import android.view.LayoutInflater | ||
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.databinding.FragmentLockerSavedAlbumBinding | ||
import androidx.recyclerview.widget.LinearLayoutManager | ||
|
||
class LockerSavedAlbumFragment : Fragment() { | ||
lateinit var binding: FragmentLockerSavedAlbumBinding | ||
lateinit var albumDB: SongDatabase | ||
|
||
override fun onCreateView( | ||
inflater: LayoutInflater, | ||
container: ViewGroup?, | ||
savedInstanceState: Bundle? | ||
): View? { | ||
binding = FragmentLockerSavedAlbumBinding.inflate(inflater, container, false) | ||
|
||
albumDB = SongDatabase.getInstance(requireContext())!! | ||
|
||
return binding.root | ||
} | ||
override fun onStart() { | ||
super.onStart() | ||
initRecyclerview() | ||
} | ||
|
||
private fun initRecyclerview(){ | ||
binding.lockerSavedSongRecyclerView.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) | ||
|
||
val lockerSavedAlbumRecyclerAdapter = LockerSavedAlbumRecyclerAdapter() | ||
//리스너 객체 생성 및 전달 | ||
|
||
lockerSavedAlbumRecyclerAdapter.setMyItemClickListener(object : LockerSavedAlbumRecyclerAdapter.MyItemClickListener{ | ||
override fun onRemoveSong(songId: Int) { | ||
albumDB.albumDao().getLikedAlbums(getJwt()) | ||
} | ||
}) | ||
|
||
binding.lockerSavedSongRecyclerView.adapter = lockerSavedAlbumRecyclerAdapter | ||
|
||
lockerSavedAlbumRecyclerAdapter.addAlbums(albumDB.albumDao().getLikedAlbums(getJwt()) as ArrayList) | ||
} | ||
|
||
private fun getJwt() : Int { | ||
val spf = activity?.getSharedPreferences("auth" , AppCompatActivity.MODE_PRIVATE) | ||
val jwt = spf!!.getInt("jwt", 0) | ||
Log.d("MAIN_ACT/GET_JWT", "jwt_token: $jwt") | ||
|
||
return jwt | ||
} | ||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75 changes: 75 additions & 0 deletions
75
UMC_6th/app/src/main/java/com/example/umc_6th/LoginActivity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
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() { | ||
|
||
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) | ||
startMainActivity() | ||
} else { | ||
Toast.makeText(this, "회원 정보가 존재하지 않습니다", Toast.LENGTH_SHORT).show() | ||
} | ||
} | ||
|
||
private fun startMainActivity() { | ||
val intent = Intent(this, MainActivity::class.java) | ||
startActivity(intent) | ||
} | ||
|
||
private fun saveJwt(jwt: Int) { | ||
val spf = getSharedPreferences("auth" , MODE_PRIVATE) | ||
val editor = spf.edit() | ||
|
||
editor.putInt("jwt", jwt) | ||
editor.apply() | ||
} | ||
|
||
override fun onDestroy() { | ||
super.onDestroy() | ||
_binding = null | ||
} | ||
} |
Oops, something went wrong.