From 669694f0bee36cab861a1e225192f1388bede4fa Mon Sep 17 00:00:00 2001 From: HongJungKim-dev Date: Wed, 26 May 2021 16:15:15 +0900 Subject: [PATCH 1/9] Post user's name and room code to server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용자의 이름과 방코드를 서버에 보냅니다 --- .../com/andkjyk/wetube_v0/RoomActivity.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java index 77b407c..9a61239 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java @@ -4,16 +4,24 @@ import android.os.Bundle; import android.view.View; import android.widget.ImageView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.Volley; import com.google.android.material.tabs.TabLayout; import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.YouTubePlayer; import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.AbstractYouTubePlayerListener; import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView; +import org.json.JSONException; +import org.json.JSONObject; + public class RoomActivity extends AppCompatActivity { private ImageView left_icon; @@ -43,6 +51,7 @@ protected void onCreate(Bundle savedInstanceState) { user_name = intent.getStringExtra("userName"); host_name = intent.getStringExtra("hostName"); room_code = intent.getStringExtra("roomCode"); + postUser(); } else if(SenderActivity.equals("AddPlaylist")) { // AddPlaylist에서 뒤로가기 했을 때 // 백엔드 작업 후 수정 } else { @@ -121,4 +130,28 @@ public void onTabReselected(TabLayout.Tab tab) { } }); } + + private void postUser() { + String url = "http://3.37.36.38:3000/user"; + RequestQueue requestQueue = Volley.newRequestQueue(this); + requestQueue.start(); + + JSONObject params = new JSONObject(); + + try { + params.put("userName", user_name); + params.put("roomCode", room_code); + } catch (JSONException e){ + e.printStackTrace(); + } + + JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, url, params, + response -> { + Toast.makeText(getApplicationContext(), "msg from server : " + response, Toast.LENGTH_LONG).show(); + }, error -> { + Toast.makeText(getApplicationContext(), "fail : msg from server", Toast.LENGTH_LONG).show(); + }); + + requestQueue.add(jsonObjReq); + } } \ No newline at end of file From 7cc2fc33fb9949242e6fb50d33c32e9a067802fc Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Wed, 26 May 2021 19:50:09 +0900 Subject: [PATCH 2/9] get roomCode from RoomActivity to AddPlaylistActivity --- .../java/com/andkjyk/wetube_v0/AddPlaylistActivity.java | 6 ++++++ .../java/com/andkjyk/wetube_v0/Model/PlaylistItem.java | 9 +++++++-- .../com/andkjyk/wetube_v0/Model/SearchedVideoItem.java | 5 +++++ .../java/com/andkjyk/wetube_v0/PlaylistFragment.java | 9 ++++++++- .../main/java/com/andkjyk/wetube_v0/RoomActivity.java | 1 + 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/AddPlaylistActivity.java b/app/src/main/java/com/andkjyk/wetube_v0/AddPlaylistActivity.java index 67402d6..a6f2284 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/AddPlaylistActivity.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/AddPlaylistActivity.java @@ -41,6 +41,7 @@ public class AddPlaylistActivity extends AppCompatActivity { private AddPlaylistAdapter adapter; private ImageView left_icon; private SearchView searchView; + private String roomCode; private ArrayList searchedItemList = new ArrayList<>(); @@ -52,6 +53,10 @@ protected void onCreate(Bundle savedInstanceState) { left_icon = findViewById(R.id.left_icon); searchView = findViewById(R.id.searchView); + Intent intent = getIntent(); + roomCode = intent.getExtras().getString("roomCode"); + System.out.println("룸코드: " + roomCode); + left_icon.setOnClickListener(new View.OnClickListener() { @Override @@ -197,6 +202,7 @@ public void prettyPrint(Iterator iteratorSearchResults, String que data.setPublisher(listPublisher.get(i)); data.setThumbnailURL(listThumbnail.get(i)); data.setId(listId.get(i)); + data.setRoomCode(roomCode); searchedItemList.add(data); } diff --git a/app/src/main/java/com/andkjyk/wetube_v0/Model/PlaylistItem.java b/app/src/main/java/com/andkjyk/wetube_v0/Model/PlaylistItem.java index 597801f..df0ece2 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/Model/PlaylistItem.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/Model/PlaylistItem.java @@ -2,15 +2,16 @@ public class PlaylistItem { - private String plVideoName, plPublisher, plVideoId, plThumbnailURL; + private String plVideoName, plPublisher, plVideoId, plThumbnailURL, plRoomCode; public PlaylistItem(){}; - public PlaylistItem(String videoName, String publisher, String videoId, String thumbnailURL){ + public PlaylistItem(String videoName, String publisher, String videoId, String thumbnailURL, String roomCode){ this.plVideoName = videoName; this.plPublisher = publisher; this.plVideoId = videoId; this.plThumbnailURL = thumbnailURL; + this.plRoomCode = roomCode; } public String getPlVideoName(){ @@ -25,6 +26,8 @@ public String getPlPublisher(){ public String getPlThumbnailURL() { return plThumbnailURL; } + public String getPlRoomCode() { return plRoomCode; } + public void setPlVideoName(String plVideoName){ this.plVideoName = plVideoName; } @@ -36,4 +39,6 @@ public void setPlPublisher(String plPublisher){ public void setPlVideoId(String plVideoName) { this.plVideoId = plVideoName; } public void setPlThumbnailURL(String plThumbnailURL) { this.plThumbnailURL = plThumbnailURL; } + + public void setPlRoomCode(String plRoomCode) { this.plRoomCode = plRoomCode; } } diff --git a/app/src/main/java/com/andkjyk/wetube_v0/Model/SearchedVideoItem.java b/app/src/main/java/com/andkjyk/wetube_v0/Model/SearchedVideoItem.java index 35a143c..0ae61f7 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/Model/SearchedVideoItem.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/Model/SearchedVideoItem.java @@ -5,6 +5,7 @@ public class SearchedVideoItem { private String publisher; private String thumbnailURL; private String id; + private String roomCode; public String getId() { return id; @@ -18,6 +19,8 @@ public String getTitle() { return title; } + public String getRoomCode() { return roomCode; } + public void setTitle(String title) { this.title = title; } @@ -37,4 +40,6 @@ public String getThumbnailURL() { public void setThumbnailURL(String thumbnail) { this.thumbnailURL = thumbnail; } + + public void setRoomCode(String roomCode) { this.roomCode = roomCode; } } diff --git a/app/src/main/java/com/andkjyk/wetube_v0/PlaylistFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/PlaylistFragment.java index eff9298..8d31dc4 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/PlaylistFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/PlaylistFragment.java @@ -31,6 +31,7 @@ public class PlaylistFragment extends Fragment { private int ADDPLAYLIST_REQUEST_CODE = 208; private ArrayList plItemList = new ArrayList<>(); + String roomCode; public PlaylistFragment() { // Required empty public constructor @@ -45,7 +46,8 @@ public void onActivityResult(int requestCode, int resultCode, @Nullable Intent d String publisher = data.getStringExtra("s_publisher"); String thumbnailUrl = data.getStringExtra("s_thumbnailUrl"); String title = data.getStringExtra("s_title"); - plAdapter.addItem(new PlaylistItem(title, publisher, videoId, thumbnailUrl)); + + plAdapter.addItem(new PlaylistItem(title, publisher, videoId, thumbnailUrl, roomCode)); plAdapter.notifyDataSetChanged(); } } @@ -65,7 +67,11 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + Bundle bundle = getArguments(); + roomCode = bundle.getString("roomCode"); + Intent intent = new Intent(getActivity(), AddPlaylistActivity.class); + intent.putExtra("roomCode", roomCode); startActivityForResult(intent, ADDPLAYLIST_REQUEST_CODE); //startActivity(intent); } @@ -124,6 +130,7 @@ private void getData(){ data.setPlPublisher(listPlPublisher.get(i)); data.setPlVideoId(listPlVideoId.get(i)); data.setPlThumbnailURL(listPlThumbnailURL.get(i)); + data.setPlRoomCode(roomCode); plItemList.add(data); } diff --git a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java index 9a61239..f39febe 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java @@ -109,6 +109,7 @@ public void onTabSelected(TabLayout.Tab tab) { Bundle bundle = new Bundle(); bundle.putBoolean("isHost", isHost); + bundle.putString("roomCode", room_code); if(isHost == true){ bundle.putString("host_name", host_name); }else{ From b23280e3e9681c27946523db9171ced24d5911d1 Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Wed, 26 May 2021 21:27:24 +0900 Subject: [PATCH 3/9] =?UTF-8?q?=EC=9E=85=EC=9E=A5/=ED=87=B4=EC=9E=A5?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/andkjyk/wetube_v0/ChatFragment.java | 29 ++----- .../com/andkjyk/wetube_v0/RoomActivity.java | 76 ++++++++++++++++++- 2 files changed, 80 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java index dfb5d54..cd662b1 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java @@ -31,13 +31,11 @@ public class ChatFragment extends Fragment { - private Socket mSocket; private Gson gson = new Gson(); private RecyclerView chatRecyclerView; private RecyclerView.LayoutManager layoutManager; private ChatAdapter chatAdapter; String room_code, host_name, user_name; - int room_pos; public ChatFragment() { // Required empty public constructor @@ -58,12 +56,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, } private void init(View view){ - try { - mSocket = IO.socket("http://3.37.36.38:3000/"); - Log.d("SOCKET", "Connection success : " + mSocket.id()); - } catch (URISyntaxException e) { - e.printStackTrace(); - } chatRecyclerView = (RecyclerView) view.findViewById(R.id.rv_chat); chatRecyclerView.setHasFixedSize(true); @@ -104,25 +96,16 @@ public void onClick(View v) { } }); - mSocket.connect(); + // socket.io 연결 + ((RoomActivity) getActivity()).mSocket.connect(); - mSocket.on(Socket.EVENT_CONNECT, args -> { - mSocket.emit("enter", gson.toJson(new RoomData(user_name, room_code))); //room_code, room_pos 어떻게 처리할지 생각하기 - }); - mSocket.on("update", args -> { + // socket.io 메세지 받아오기 + ((RoomActivity) getActivity()).mSocket.on("update", args -> { MessageData data = gson.fromJson(args[0].toString(), MessageData.class); addChat(data); }); } - @Override - public void onDestroy() { - super.onDestroy(); - // 액티비티가 소멸될 때 연결을 해제, 검색액티비티에서 돌아왔을 때 채팅이 남는지 확인하고, 안남으면 수정 필요할듯? - mSocket.emit("exit", gson.toJson(new RoomData(user_name, room_code))); - mSocket.disconnect(); - } - // 리사이클러뷰에 채팅 추가 private void addChat(MessageData data) { getActivity().runOnUiThread(() -> { @@ -141,9 +124,10 @@ private void addChat(MessageData data) { }); } + private void sendMessage(View view) { EditText msg = view.findViewById(R.id.editText); - mSocket.emit("newMessage", gson.toJson(new MessageData("MESSAGE", + ((RoomActivity) getActivity()).mSocket.emit("newMessage", gson.toJson(new MessageData("MESSAGE", user_name, room_code, msg.getText().toString(), System.currentTimeMillis()))); Log.d("MESSAGE", new MessageData("MESSAGE", user_name, room_code+"", msg.getText().toString(), System.currentTimeMillis()).toString()); @@ -156,4 +140,5 @@ private void sendMessage(View view) { private String toDate(long currentMiliis) { return new SimpleDateFormat("a hh:mm").format(new Date(currentMiliis)); } + } \ No newline at end of file diff --git a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java index f39febe..f95ebb8 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java @@ -9,12 +9,21 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; - +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.andkjyk.wetube_v0.Adapter.ChatAdapter; +import com.andkjyk.wetube_v0.Model.ChatItem; +import com.andkjyk.wetube_v0.Model.ChatType; +import com.andkjyk.wetube_v0.Model.MessageData; +import com.andkjyk.wetube_v0.Model.RoomData; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import com.google.android.material.tabs.TabLayout; +import com.google.gson.Gson; import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.YouTubePlayer; import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.AbstractYouTubePlayerListener; import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView; @@ -22,13 +31,27 @@ import org.json.JSONException; import org.json.JSONObject; +import java.net.URISyntaxException; +import java.text.SimpleDateFormat; +import java.util.Date; + +import io.socket.client.IO; +import io.socket.client.Socket; + public class RoomActivity extends AppCompatActivity { + public Socket mSocket; + private Gson gson = new Gson(); + private ImageView left_icon; Fragment frag_playlist, frag_users, frag_chat; String room_title, room_code, host_name, user_name; boolean isHost; + private RecyclerView chatRecyclerView; + private RecyclerView.LayoutManager layoutManager; + private ChatAdapter chatAdapter; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -46,6 +69,7 @@ protected void onCreate(Bundle savedInstanceState) { room_title = intent.getStringExtra("roomTitle"); room_code = intent.getStringExtra("roomCode"); host_name = intent.getStringExtra("hostName"); + user_name = host_name; isHost = true; } else if(SenderActivity.equals("Main")){ user_name = intent.getStringExtra("userName"); @@ -58,7 +82,6 @@ protected void onCreate(Bundle savedInstanceState) { System.out.println("RoomActivity가 intent를 제대로 받아오지 못함"); } - left_icon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -67,6 +90,20 @@ public void onClick(View v) { } }); + // socket.io 서버 연결 + try { + mSocket = IO.socket("http://3.37.36.38:3000/"); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + + mSocket.connect(); + + // 입장메세지 띄우기 위해 방 정보 서버에 보냄 + mSocket.on(Socket.EVENT_CONNECT, args -> { + //System.out.println("아아아아아아ㅏ아아아 enter"); + mSocket.emit("enter", gson.toJson(new RoomData(user_name, room_code))); + }); // YouTube Video 띄우는 부분 YouTubePlayerView youTubePlayerView = findViewById(R.id.video); @@ -81,7 +118,6 @@ public void onReady(@NonNull YouTubePlayer youTubePlayer) { }); - frag_chat = new ChatFragment(); frag_users = new UsersFragment(); frag_playlist = new PlaylistFragment(); @@ -132,6 +168,29 @@ public void onTabReselected(TabLayout.Tab tab) { }); } + // 리사이클러뷰에 채팅 추가 + void addChat(MessageData data) { + this.runOnUiThread(() -> { + if (data.getType().equals("ENTER") || data.getType().equals("EXIT")) { + chatAdapter.addItem(new ChatItem(data.getFrom(), data.getContent(), toDate(data.getSendTime()), ChatType.CENTER_MESSAGE)); + chatRecyclerView.scrollToPosition(chatAdapter.getItemCount() - 1); + } else { + if (user_name.equals(data.getFrom())) { + chatAdapter.addItem(new ChatItem(data.getFrom(), data.getContent(), toDate(data.getSendTime()), ChatType.RIGHT_MESSAGE)); + chatRecyclerView.scrollToPosition(chatAdapter.getItemCount() - 1); + } else { + chatAdapter.addItem(new ChatItem(data.getFrom(), data.getContent(), toDate(data.getSendTime()), ChatType.LEFT_MESSAGE)); + chatRecyclerView.scrollToPosition(chatAdapter.getItemCount() - 1); + } + } + }); + } + + // System.currentTimeMillis를 몇시:몇분 am/pm 형태의 문자열로 반환 + private String toDate(long currentMiliis) { + return new SimpleDateFormat("a hh:mm").format(new Date(currentMiliis)); + } + private void postUser() { String url = "http://3.37.36.38:3000/user"; RequestQueue requestQueue = Volley.newRequestQueue(this); @@ -155,4 +214,15 @@ private void postUser() { requestQueue.add(jsonObjReq); } + + @Override + protected void onStop() { + super.onStop(); + //퇴장(뒤로가기 혹은 앱 종료) 시 퇴장메세지 띄움 + mSocket.emit("exit", gson.toJson(new RoomData(user_name, room_code))); + mSocket.disconnect(); + + Intent intent = new Intent(RoomActivity.this, MainActivity.class); + startActivity(intent); + } } \ No newline at end of file From d8e4ef01246bd4324cb38bc4caf12b1dd0906d3e Mon Sep 17 00:00:00 2001 From: HongJungKim-dev Date: Fri, 4 Jun 2021 20:24:41 +0900 Subject: [PATCH 4/9] =?UTF-8?q?feature:=20=EC=84=9C=EB=B2=84=EB=A1=9C?= =?UTF-8?q?=EB=B6=80=ED=84=B0=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=96=BB=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 서버로부터 사용자 정보를 받아옵니다. --- .../java/com/andkjyk/wetube_v0/UsersFragment.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java index 5d090a7..4da819a 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java @@ -21,7 +21,9 @@ import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; +import org.json.JSONArray; import org.json.JSONException; +import org.json.JSONObject; import java.util.ArrayList; @@ -108,20 +110,23 @@ private void getData(){ private void getUser() { String url = "http://3.37.36.38:3000/user"; RequestQueue requestQueue = Volley.newRequestQueue(getContext()); - requestQueue.start(); JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, url, null, response -> { try { - user = (ArrayList) response.get("user"); + JSONArray users = response.getJSONArray("users"); + int user_size = response.getInt("userSize"); + for(int i = 0; i < user_size; i++) { + user.add(users.getJSONObject(i).getString("userName")); + } + Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); } catch (JSONException e) { + Toast.makeText(getContext(), "get user fail" , Toast.LENGTH_LONG).show(); e.printStackTrace(); } - Toast.makeText(getContext(), "msg from server => user: " + user , Toast.LENGTH_LONG).show(); }, error -> { Toast.makeText(getContext(), "fail : msg from server", Toast.LENGTH_LONG).show(); }); - requestQueue.add(jsonObjReq); } } From 0cf1e92c9a17361a7d692069c494c7b47292a207 Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Fri, 4 Jun 2021 21:34:10 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=EC=9E=84=EC=8B=9C=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/andkjyk/wetube_v0/RoomActivity.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java index f95ebb8..688a57e 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java @@ -1,5 +1,8 @@ package com.andkjyk.wetube_v0; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; @@ -75,6 +78,7 @@ protected void onCreate(Bundle savedInstanceState) { user_name = intent.getStringExtra("userName"); host_name = intent.getStringExtra("hostName"); room_code = intent.getStringExtra("roomCode"); + isHost = false; postUser(); } else if(SenderActivity.equals("AddPlaylist")) { // AddPlaylist에서 뒤로가기 했을 때 // 백엔드 작업 후 수정 @@ -218,11 +222,40 @@ private void postUser() { @Override protected void onStop() { super.onStop(); + //퇴장(뒤로가기 혹은 앱 종료) 시 퇴장메세지 띄움 mSocket.emit("exit", gson.toJson(new RoomData(user_name, room_code))); mSocket.disconnect(); Intent intent = new Intent(RoomActivity.this, MainActivity.class); startActivity(intent); + + + + } + + /* + @Override + protected void onDestroy() { + super.onDestroy(); + + AlertDialog.Builder alt_bld = new AlertDialog.Builder(RoomActivity.this, R.style.AlertDialogStyle); + alt_bld.setMessage("퇴장하시겠습니까?").setCancelable(false).setPositiveButton("확인", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + if(!isHost){ + // 호스트가 퇴장할 때 + System.out.println("호스트다아아아"); + + } else{ + // 게스트가 퇴장할 때 + System.out.println("게스트다아아아"); + } + } + }).setNegativeButton("취소", null); + AlertDialog alert = alt_bld.create(); + alert.show(); } + + */ } \ No newline at end of file From 365bcef1940f8b7ccd2112265140b54f6eb09d98 Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Sat, 5 Jun 2021 01:02:03 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=ED=95=B4=EC=84=9C=20=EB=8B=B4=EA=B8=B0?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=EA=B0=80=20=EC=9E=88=EC=9D=8C=20?= =?UTF-8?q?=EC=9D=BC=EB=8B=A8=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/andkjyk/wetube_v0/ChatFragment.java | 4 +- .../com/andkjyk/wetube_v0/UsersFragment.java | 63 +++++++++++++++++-- 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java index cd662b1..3b746c1 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/ChatFragment.java @@ -102,7 +102,9 @@ public void onClick(View v) { // socket.io 메세지 받아오기 ((RoomActivity) getActivity()).mSocket.on("update", args -> { MessageData data = gson.fromJson(args[0].toString(), MessageData.class); - addChat(data); + if(getActivity() != null){ + addChat(data); + } }); } diff --git a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java index 4da819a..19aa627 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java @@ -39,6 +39,7 @@ public class UsersFragment extends Fragment { private String host_name, user_name; private ArrayList user = new ArrayList<>(); private boolean isHost; + private int user_size = 0; public UsersFragment() { // Required empty public constructor @@ -54,7 +55,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_users, container, false); - getUser(); + //getUser(); getData(); Bundle bundle = getArguments(); @@ -92,6 +93,48 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, } private void getData(){ + String url = "http://3.37.36.38:3000/user"; + RequestQueue requestQueue = Volley.newRequestQueue(getContext()); + + JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, url, null, + response -> { + try { + JSONArray users = response.getJSONArray("users"); + System.out.println("user_size = " + user_size + "userSize = " + response.getInt("userSize")); + if(user_size == response.getInt("userSize")){ + System.out.println("user_size: "+user_size); + user_size = response.getInt("userSize"); + for(int i = 0; i < user_size; i++) { + user.add(users.getJSONObject(i).getString("userName")); + } + Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); + userItems.clear(); + ArrayList list = new ArrayList<>(); + int len = user.size(); + + for(int i = 0; i < len; i++){ + list.add(user.get(i)); + System.out.println("user list ["+i+"] : "+user.get(i)); + } + + for(int i = 0; i < len; i++){ + UserItem data = new UserItem(); + data.setUserName(list.get(i)); + userItems.add(data); + usersAdapter.addItems(userItems); + usersAdapter.notifyDataSetChanged(); + } + } + } catch (JSONException e) { + Toast.makeText(getContext(), "get user fail" , Toast.LENGTH_LONG).show(); + e.printStackTrace(); + } + }, error -> { + Toast.makeText(getContext(), "fail : msg from server", Toast.LENGTH_LONG).show(); + }); + requestQueue.add(jsonObjReq); + + /* userItems.clear(); ArrayList list = new ArrayList<>(); int len = user.size(); @@ -104,9 +147,14 @@ private void getData(){ UserItem data = new UserItem(); data.setUserName(list.get(i)); userItems.add(data); + usersAdapter.addItems(userItems); + usersAdapter.notifyDataSetChanged(); } + + */ } + /* private void getUser() { String url = "http://3.37.36.38:3000/user"; RequestQueue requestQueue = Volley.newRequestQueue(getContext()); @@ -115,11 +163,14 @@ private void getUser() { response -> { try { JSONArray users = response.getJSONArray("users"); - int user_size = response.getInt("userSize"); - for(int i = 0; i < user_size; i++) { - user.add(users.getJSONObject(i).getString("userName")); + if(user_size != response.getInt("userSize")){ + System.out.println("user_size: "+user_size); + user_size = response.getInt("userSize"); + for(int i = 0; i < user_size; i++) { + user.add(users.getJSONObject(i).getString("userName")); + } + Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); } - Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); } catch (JSONException e) { Toast.makeText(getContext(), "get user fail" , Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -129,4 +180,6 @@ private void getUser() { }); requestQueue.add(jsonObjReq); } + + */ } From 1604b65a363e04ab8240edae14550be206140d27 Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Sat, 5 Jun 2021 03:01:11 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=ED=95=B4=EC=84=9C=20=EB=8B=B4=EA=B8=B0?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0=20=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=EB=A1=A4=20=EC=8B=9C=EC=97=90=20=ED=98=B8=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EB=9E=91=20=EA=B7=B8=20=EC=95=84=EB=9E=98=EB=9E=91=20?= =?UTF-8?q?=EA=B0=84=EA=B2=A9=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0=20?= =?UTF-8?q?=ED=95=84=EC=9A=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/andkjyk/wetube_v0/UsersFragment.java | 93 ++++++------------- app/src/main/res/layout/fragment_users.xml | 7 +- 2 files changed, 30 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java index 19aa627..2f71ca9 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java @@ -55,7 +55,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_users, container, false); - //getUser(); getData(); Bundle bundle = getArguments(); @@ -100,77 +99,38 @@ private void getData(){ response -> { try { JSONArray users = response.getJSONArray("users"); - System.out.println("user_size = " + user_size + "userSize = " + response.getInt("userSize")); - if(user_size == response.getInt("userSize")){ - System.out.println("user_size: "+user_size); - user_size = response.getInt("userSize"); - for(int i = 0; i < user_size; i++) { - user.add(users.getJSONObject(i).getString("userName")); - } - Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); - userItems.clear(); - ArrayList list = new ArrayList<>(); - int len = user.size(); - - for(int i = 0; i < len; i++){ - list.add(user.get(i)); - System.out.println("user list ["+i+"] : "+user.get(i)); - } - - for(int i = 0; i < len; i++){ - UserItem data = new UserItem(); - data.setUserName(list.get(i)); - userItems.add(data); - usersAdapter.addItems(userItems); - usersAdapter.notifyDataSetChanged(); - } + System.out.println("user_size = " + user_size + " userSize = " + response.getInt("userSize")); + user_size = response.getInt("userSize"); + user.clear(); + for(int i = 0; i < user_size; i++) { + user.add(users.getJSONObject(i).getString("userName")); } - } catch (JSONException e) { - Toast.makeText(getContext(), "get user fail" , Toast.LENGTH_LONG).show(); - e.printStackTrace(); - } - }, error -> { - Toast.makeText(getContext(), "fail : msg from server", Toast.LENGTH_LONG).show(); - }); - requestQueue.add(jsonObjReq); + Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); - /* - userItems.clear(); - ArrayList list = new ArrayList<>(); - int len = user.size(); + ArrayList list = new ArrayList<>(); + int len = user.size(); + System.out.println("length: "+user.size()); - for(int i = 0; i < len; i++){ - list.add(user.get(i)); - } + userItems.clear(); + list.clear(); - for(int i = 0; i < len; i++){ - UserItem data = new UserItem(); - data.setUserName(list.get(i)); - userItems.add(data); - usersAdapter.addItems(userItems); - usersAdapter.notifyDataSetChanged(); - } - - */ - } - - /* - private void getUser() { - String url = "http://3.37.36.38:3000/user"; - RequestQueue requestQueue = Volley.newRequestQueue(getContext()); + for(int i = 0; i < len; i++){ + list.add(user.get(i)); + System.out.println("user list ["+i+"] : "+user.get(i)+"/"+user.get(i)); + } - JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, url, null, - response -> { - try { - JSONArray users = response.getJSONArray("users"); - if(user_size != response.getInt("userSize")){ - System.out.println("user_size: "+user_size); - user_size = response.getInt("userSize"); - for(int i = 0; i < user_size; i++) { - user.add(users.getJSONObject(i).getString("userName")); + for(int i = 0; i < len; i++){ + //System.out.println("user list ["+i+"] : "+user.get(i)); + if(!user_name.equals(list.get(i))){ + UserItem data = new UserItem(); + data.setUserName(list.get(i)); + userItems.add(data); + System.out.println("userItems: "+userItems.get(i).getUserName()); } - Toast.makeText(getContext(), "user: " + user , Toast.LENGTH_LONG).show(); } + usersAdapter.addItems(userItems); + usersAdapter.notifyDataSetChanged(); + } catch (JSONException e) { Toast.makeText(getContext(), "get user fail" , Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -179,7 +139,6 @@ private void getUser() { Toast.makeText(getContext(), "fail : msg from server", Toast.LENGTH_LONG).show(); }); requestQueue.add(jsonObjReq); - } - */ + } } diff --git a/app/src/main/res/layout/fragment_users.xml b/app/src/main/res/layout/fragment_users.xml index 80a0043..10a50db 100644 --- a/app/src/main/res/layout/fragment_users.xml +++ b/app/src/main/res/layout/fragment_users.xml @@ -9,7 +9,7 @@ + android:scrollbars="vertical" /> From 2cab883b1757b22ce808f4f8f8cfef7bbc04cfa0 Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Sun, 6 Jun 2021 01:09:50 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=A0=84=EB=B6=80=20=EB=9D=84=EC=9A=B0=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95=20-=20xml=20=EC=B6=94=ED=9B=84?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20=ED=95=84=EC=9A=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/andkjyk/wetube_v0/Adapter/AddPlaylistAdapter.java | 1 - app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java | 3 --- .../main/java/com/andkjyk/wetube_v0/UsersFragment.java | 8 ++++---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/Adapter/AddPlaylistAdapter.java b/app/src/main/java/com/andkjyk/wetube_v0/Adapter/AddPlaylistAdapter.java index e1fa08b..dd89a96 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/Adapter/AddPlaylistAdapter.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/Adapter/AddPlaylistAdapter.java @@ -85,7 +85,6 @@ public void onClick(DialogInterface dialogInterface, int i) { }).setNegativeButton("취소", null); AlertDialog alert = alt_bld.create(); alert.show(); - } } }); diff --git a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java index 688a57e..9adcb5a 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/RoomActivity.java @@ -229,9 +229,6 @@ protected void onStop() { Intent intent = new Intent(RoomActivity.this, MainActivity.class); startActivity(intent); - - - } /* diff --git a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java index 2f71ca9..44a52af 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java @@ -99,7 +99,7 @@ private void getData(){ response -> { try { JSONArray users = response.getJSONArray("users"); - System.out.println("user_size = " + user_size + " userSize = " + response.getInt("userSize")); + //System.out.println("user_size = " + user_size + " userSize = " + response.getInt("userSize")); user_size = response.getInt("userSize"); user.clear(); for(int i = 0; i < user_size; i++) { @@ -109,14 +109,14 @@ private void getData(){ ArrayList list = new ArrayList<>(); int len = user.size(); - System.out.println("length: "+user.size()); + //System.out.println("length: "+user.size()); userItems.clear(); list.clear(); for(int i = 0; i < len; i++){ list.add(user.get(i)); - System.out.println("user list ["+i+"] : "+user.get(i)+"/"+user.get(i)); + //System.out.println("user list ["+i+"] : "+user.get(i)+"/"+user.get(i)); } for(int i = 0; i < len; i++){ @@ -125,7 +125,7 @@ private void getData(){ UserItem data = new UserItem(); data.setUserName(list.get(i)); userItems.add(data); - System.out.println("userItems: "+userItems.get(i).getUserName()); + //System.out.println("userItems: "+userItems.get(i).getUserName()); } } usersAdapter.addItems(userItems); From 4630bc5a30279efb365f4e32020a457404735ed6 Mon Sep 17 00:00:00 2001 From: heejoo chung Date: Sun, 6 Jun 2021 02:01:23 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=EB=B0=A9=EA=B0=9C=EC=84=A4=ED=96=88?= =?UTF-8?q?=EC=9D=84=EA=B2=BD=EC=9A=B0=20users=ED=83=AD=20=EA=B0=80?= =?UTF-8?q?=EB=A9=B4=20=EC=A2=85=EB=A3=8C=EB=90=98=EB=8A=94=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java index 44a52af..dc4d383 100644 --- a/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java +++ b/app/src/main/java/com/andkjyk/wetube_v0/UsersFragment.java @@ -66,6 +66,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, host_name = bundle.getString("host_name"); tv_my_name.setText(host_name); host_icon = view.findViewById(R.id.host_icon); + user_name = host_name; }else{ host_name = bundle.getString("host_name"); user_name = bundle.getString("user_name");