Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

혼자보기 카메라 기능 추가 & S3 Bucket으로 Upload #14

Merged
merged 3 commits into from
Mar 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .gradle/7.2/executionHistory/executionHistory.bin
Binary file not shown.
Binary file modified .gradle/7.2/executionHistory/executionHistory.lock
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/fileHashes.bin
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/fileHashes.lock
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/resourceHashesCache.bin
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/outputFiles.bin
Binary file not shown.
Binary file modified .gradle/checksums/checksums.lock
Binary file not shown.
Binary file modified .gradle/checksums/md5-checksums.bin
Binary file not shown.
Binary file modified .gradle/checksums/sha1-checksums.bin
Binary file not shown.

This file was deleted.

This file was deleted.

29 changes: 20 additions & 9 deletions .idea/modules/app/harumub_front.app.iml

Large diffs are not rendered by default.

17 changes: 16 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,25 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation("androidx.fragment:fragment-ktx:1.3.6")

// 그래프
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//retrofit

//retrofit
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

// CameraX
def camerax_version = "1.1.0-beta02"
// CameraX core library using camera2 implementation
implementation "androidx.camera:camera-camera2:${camerax_version}"
// CameraX Lifecycle Library
implementation "androidx.camera:camera-lifecycle:${camerax_version}"
// CameraX View class
implementation "androidx.camera:camera-view:${camerax_version}"

// S3 Bucket
implementation 'com.amazonaws:aws-android-sdk-mobile-client:2.13.5'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.13.5'
implementation 'com.amazonaws:aws-android-sdk-s3:2.13.5'
}
13 changes: 13 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- CameraX -->
<uses-feature android:name="android.hardware.camera.any" />
<uses-permission android:name="android.permission.CAMERA" />

<!-- S3 Bucket -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Expand All @@ -30,6 +40,9 @@
<activity android:name=".TogetherActivity" />
<activity android:name=".EnterActivity" />
<activity android:name=".HelpActivity" />

<!-- S3 Bucket -->
<service android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService" android:enabled="true"/>
</application>

</manifest>
12 changes: 8 additions & 4 deletions app/src/main/java/com/example/harumub_front/EnterActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ class EnterActivity: AppCompatActivity(), NavigationView.OnNavigationItemSelecte
}

// 방 생성 버튼
createNewroom.setOnClickListener{
createNewroom.setOnClickListener{ // 새로운 방 생성 버튼 클릭 시 같이보기 페이지로 이동
val intent = Intent(applicationContext, TogetherActivity::class.java)
startActivityForResult(intent, 0) // deprecated in Java
}


// 초대 코드 입력 버튼
writeCode.setOnClickListener() {
writeCode.setOnClickListener() { // 초대코드 입장 버튼 클릭 시 다이얼로그 띄워 줌
val dig = AlertDialog.Builder(this)

val dialogView = View.inflate(this, R.layout.dialog_entercode, null)
Expand Down Expand Up @@ -98,10 +98,14 @@ class EnterActivity: AppCompatActivity(), NavigationView.OnNavigationItemSelecte
Toast.LENGTH_LONG).show()
}
})
}
/*
val intent = Intent(applicationContext, TogetherActivity::class.java)
startActivityForResult(intent, 0)
*/
} // 확인 버튼 클릭 시 같이보기 페이지로 이동
dig.setNegativeButton("취소") { dialog, which ->
Toast.makeText(this, "취소되었습니다.", Toast.LENGTH_LONG).show()
}
} // 취소 버튼 클릭 시 취소되었다는 토스트 메세지를 보여 줌
dig.show()
}
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/example/harumub_front/LogAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class LogAdapter : RecyclerView.Adapter<LogAdapter.ViewHolder>(){

inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){

fun setItem(item : LogData){
fun setItem(item : LogData){ // 데이터 설정
itemView.findViewById<TextView>(R.id.log_time).text = item.logData_time
itemView.findViewById<TextView>(R.id.log_emotion).text = item.logData_emotion
}
Expand All @@ -21,7 +21,7 @@ class LogAdapter : RecyclerView.Adapter<LogAdapter.ViewHolder>(){
parent: ViewGroup,
viewType: Int
): LogAdapter.ViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_log, parent, false)
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_log, parent, false) // // RecyclerView에 들어갈 아이템의 레이아웃 설정

return ViewHolder(itemView)
}
Expand Down
7 changes: 4 additions & 3 deletions app/src/main/java/com/example/harumub_front/MainActivity1.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ class MainActivity1 : AppCompatActivity() ,NavigationView.OnNavigationItemSelect
val intent = Intent(this, WatchListActivity::class.java)
startActivity(intent)
}

// 감상하기 버튼
btnRecord = findViewById(R.id.btnRecord)
btnRecord.setOnClickListener { // 감상하기 버튼 클릭 시 메인2 페이지로 이동
val intent = Intent(this, SearchActivity::class.java)
btnRecord.setOnClickListener { // 감상하기 버튼 클릭 시 영화 검색 페이지로 이동
//val intent = Intent(this, SearchActivity::class.java) // 영화 검색 페이지
val intent = Intent(this, MainActivity2::class.java) // 메인 2 페이지
startActivity(intent)
}
}
Expand Down
20 changes: 11 additions & 9 deletions app/src/main/java/com/example/harumub_front/MainActivity2.kt
Original file line number Diff line number Diff line change
Expand Up @@ -98,26 +98,28 @@ class MainActivity2 : AppCompatActivity(), NavigationView.OnNavigationItemSelect
startActivity(intent)
}

var text = findViewById<TextView>(R.id.textView3)
var text = findViewById<TextView>(R.id.textView3) // '다른 사용자가 좋아하는' 텍스트

// '내가 좋아하는' 영화 목록 RecyclerView와 RecommendAdapter1 연결
layoutManager = GridLayoutManager(this, 2, GridLayoutManager.HORIZONTAL, false)
recyclerView.layoutManager = layoutManager
adapter = RecommendAdapter1()
recyclerView.adapter = adapter

// '다른 사용자가 좋아하는' 영화 목록 RecyclerView와 RecommendAdapter2 연결
layoutManager2 = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
recyclerView2.layoutManager = layoutManager2
adapter2 = RecommendAdapter2()
recyclerView2.adapter = adapter2

// var recent = findViewById<ImageButton>(R.id.recent)
// recent.setOnClickListener { // recent 이미지 버튼 클릭 시 나의 감상기록 페이지로 이동
// val intent = Intent(this, MyMovieListActivity::class.java) // 메인2
// startActivity(intent)
// }

/*
var recent = findViewById<ImageButton>(R.id.recent) // 나의 감상기록 이미지 버튼
recent.setOnClickListener { // recent(나의 감상기록) 이미지 버튼 클릭 시 나의 감상기록 페이지로 이동
val intent = Intent(this, WatchListActivity::class.java) // 나의 감상기록 페이지
startActivity(intent)
}
*/
// 원래는 이미지에서 넘어가야 함
text.setOnClickListener { // textView3 클릭 시 다른 사용자 감상기록 페이지로 이동
text.setOnClickListener { // '다른 사용자가 좋아하는' 텍스트 클릭 시 다른 사용자 감상기록 페이지로 이동. 수정 필요
supportFragmentManager.beginTransaction()
.replace(R.id.main2, UserMovieListFragment())
.commit()
Expand Down
10 changes: 5 additions & 5 deletions app/src/main/java/com/example/harumub_front/RecommendAdapter1.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,28 @@ class RecommendAdapter1: RecyclerView.Adapter<RecommendAdapter1.ViewHolder>() {
parent: ViewGroup,
viewType: Int
): RecommendAdapter1.ViewHolder {
// 리사이클러뷰에 들어갈 아이템 레이아웃 설정
// RecyclerView에 들어갈 아이템의 레이아웃 설정
val v = LayoutInflater.from(parent.context).inflate(R.layout.movie_layout, parent, false)
return ViewHolder(v)
}

// 순서에 따라 배열에 데이터 삽입
override fun onBindViewHolder(holder: RecommendAdapter1.ViewHolder, position: Int) {
holder.movieImage.setImageResource(movie_images[position])
holder.movieTitle.text = movie_titles[position]
}

override fun getItemCount(): Int {
return movie_images.size // 영화의 개수
return movie_images.size // 영화 개수
}

inner class ViewHolder(movieView: View): RecyclerView.ViewHolder(movieView) {
var movieImage: ImageButton
var movieTitle: TextView

init {
movieImage = movieView.findViewById(R.id.movie_image)
movieTitle = movieView.findViewById(R.id.movie_title)
movieImage = movieView.findViewById(R.id.movie_image) // 영화 이미지 버튼
movieTitle = movieView.findViewById(R.id.movie_title) // 영화 제목
}
}
}
11 changes: 6 additions & 5 deletions app/src/main/java/com/example/harumub_front/RecommendAdapter2.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,32 @@ import androidx.recyclerview.widget.RecyclerView

class RecommendAdapter2: RecyclerView.Adapter<RecommendAdapter2.ViewHolder>() {

// 데이터
private var movie_images = intArrayOf(R.drawable.spider, R.drawable.gucci, R.drawable.about, R.drawable.ic_launcher_foreground, R.drawable.spider, R.drawable.gucci, R.drawable.about)

override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): RecommendAdapter2.ViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.movie_collection_layout, parent, false)
val v = LayoutInflater.from(parent.context).inflate(R.layout.movie_collection_layout, parent, false) // RecyclerView에 들어갈 아이템의 레이아웃 설정
return ViewHolder(v)
}

override fun onBindViewHolder(holder: RecommendAdapter2.ViewHolder, position: Int) {
override fun onBindViewHolder(holder: RecommendAdapter2.ViewHolder, position: Int) { // 데이터 설정
holder.movieImage.setImageResource(movie_images[position])
}

override fun getItemCount(): Int {
return movie_images.size
return movie_images.size // 영화 개수
}

inner class ViewHolder(movieCollectionView: View): RecyclerView.ViewHolder(movieCollectionView) {
var movieImage: ImageButton

init {
movieImage = movieCollectionView.findViewById(R.id.movie_collection_image)
movieImage = movieCollectionView.findViewById(R.id.movie_collection_image) // 영화 이미지 버튼

movieCollectionView.setOnClickListener {
movieCollectionView.setOnClickListener { // 영화 이미지 버튼 클릭 시
// val position: Int = adapterPosition

// Toast.makeText(movieCollectionView.context, "영화 선택", Toast.LENGTH_LONG).show()
Expand Down
10 changes: 9 additions & 1 deletion app/src/main/java/com/example/harumub_front/SearchActivity.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.harumub_front

import android.content.Intent
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
Expand All @@ -8,6 +9,7 @@ import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.activity_search.*

class SearchActivity : AppCompatActivity() , TextWatcher {
var recyclerView: RecyclerView? = null
Expand All @@ -27,14 +29,20 @@ class SearchActivity : AppCompatActivity() , TextWatcher {

// items 배열에 영화 제목 넣기
for(i: Int in 0..poster.size-1) {
items.add(title[i])
items.add(title[i]) // item 배열에 영화 제목 추가
}

//
adapter = SearchAdapter(applicationContext, items)
recyclerView!!.layoutManager =
LinearLayoutManager(applicationContext, LinearLayoutManager.VERTICAL, false)
recyclerView!!.adapter = adapter

// 혼자보기 입장 버튼 클릭 시 혼자보기 페이지로 이동
watch_alone_enter_button.setOnClickListener {
var intent = Intent(applicationContext, WatchAloneActivity::class.java)
startActivity(intent)
}
}

override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
Expand Down
10 changes: 5 additions & 5 deletions app/src/main/java/com/example/harumub_front/SearchAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class SearchAdapter(var context: Context, var unFilteredlist: ArrayList<String>)
RecyclerView.Adapter<SearchAdapter.MyViewHolder>(), Filterable {
var filteredList: ArrayList<String>
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view = LayoutInflater.from(context).inflate(R.layout.recyclerview_row, parent, false)
val view = LayoutInflater.from(context).inflate(R.layout.recyclerview_row, parent, false) // RecyclerView에 들어갈 아이템의 레이아웃 설정
return MyViewHolder(view)
}

Expand All @@ -29,7 +29,7 @@ class SearchAdapter(var context: Context, var unFilteredlist: ArrayList<String>)
}

override fun getItemCount(): Int {
return filteredList.size
return filteredList.size // 검색된 영화 개수
}

inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
Expand All @@ -52,13 +52,13 @@ class SearchAdapter(var context: Context, var unFilteredlist: ArrayList<String>)
itemView.textview.text ="Spider Man3"
}

itemView.setOnClickListener {
itemView.setOnClickListener { // 영화 클릭 시 토스트 메세지
Toast.makeText(itemView.context,itemView.textview.text,Toast.LENGTH_LONG).show()
}
}
}

override fun getFilter(): Filter {
override fun getFilter(): Filter { // 검색
return object : Filter() {
override fun performFiltering(constraint: CharSequence): FilterResults {
val charString = constraint.toString()
Expand All @@ -78,7 +78,7 @@ class SearchAdapter(var context: Context, var unFilteredlist: ArrayList<String>)
return filterResults
}

override fun publishResults(constraint: CharSequence, results: FilterResults) {
override fun publishResults(constraint: CharSequence, results: FilterResults) { // 검색 결과
filteredList = results.values as ArrayList<String>
notifyDataSetChanged()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class UserMovieListFragment : Fragment() {
var view = inflater.inflate(R.layout.fragment_user_movie_list, container, false)
var recyclerView = view.findViewById<RecyclerView>(R.id.recyclerView)

// 다른 사용자의 감상기록 RecyclerView와 RecommendAdapter1 연결
layoutManager = GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, false)
recyclerView.layoutManager = layoutManager
adapter = RecommendAdapter1()
Expand Down
Loading