sunnnl

삭제 시 리스트 갱신 구현, 동작 확인 필요

1 +package com.sunnni.smartdoorlock.api;
2 +
3 +public interface OnItemClick {
4 + void onItemClick();
5 +}
...@@ -17,6 +17,7 @@ import android.widget.Toast; ...@@ -17,6 +17,7 @@ import android.widget.Toast;
17 17
18 import com.sunnni.smartdoorlock.R; 18 import com.sunnni.smartdoorlock.R;
19 import com.sunnni.smartdoorlock.api.Api; 19 import com.sunnni.smartdoorlock.api.Api;
20 +import com.sunnni.smartdoorlock.api.OnItemClick;
20 import com.sunnni.smartdoorlock.data.Device; 21 import com.sunnni.smartdoorlock.data.Device;
21 import com.sunnni.smartdoorlock.data.RemoteRecord; 22 import com.sunnni.smartdoorlock.data.RemoteRecord;
22 23
...@@ -25,7 +26,7 @@ import java.util.Objects; ...@@ -25,7 +26,7 @@ import java.util.Objects;
25 26
26 import static android.view.InputDevice.getDevice; 27 import static android.view.InputDevice.getDevice;
27 28
28 -public class DeviceManagerActivity extends AppCompatActivity { 29 +public class DeviceManagerActivity extends AppCompatActivity implements OnItemClick {
29 30
30 ArrayList<Device> mList = new ArrayList<Device>(); 31 ArrayList<Device> mList = new ArrayList<Device>();
31 RecyclerView mRecyclerView; 32 RecyclerView mRecyclerView;
...@@ -78,7 +79,7 @@ public class DeviceManagerActivity extends AppCompatActivity { ...@@ -78,7 +79,7 @@ public class DeviceManagerActivity extends AppCompatActivity {
78 private void setRecyclerView(){ 79 private void setRecyclerView(){
79 mRecyclerView = findViewById(R.id.rv_device_list); 80 mRecyclerView = findViewById(R.id.rv_device_list);
80 LinearLayoutManager manager = new LinearLayoutManager(this); 81 LinearLayoutManager manager = new LinearLayoutManager(this);
81 - mAdapter = new DeviceRecyclerViewAdapter(mList); 82 + mAdapter = new DeviceRecyclerViewAdapter(mList, this);
82 mRecyclerView.setLayoutManager(manager); 83 mRecyclerView.setLayoutManager(manager);
83 mRecyclerView.setAdapter(mAdapter); 84 mRecyclerView.setAdapter(mAdapter);
84 } 85 }
...@@ -130,4 +131,10 @@ public class DeviceManagerActivity extends AppCompatActivity { ...@@ -130,4 +131,10 @@ public class DeviceManagerActivity extends AppCompatActivity {
130 alertDialog = builder.create(); 131 alertDialog = builder.create();
131 alertDialog.show(); 132 alertDialog.show();
132 } 133 }
134 +
135 + @Override
136 + public void onItemClick() {
137 + getDevice();
138 + Toast.makeText(this, "호출 테스트", Toast.LENGTH_LONG).show();
139 + }
133 } 140 }
......
...@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView;
16 16
17 import com.sunnni.smartdoorlock.R; 17 import com.sunnni.smartdoorlock.R;
18 import com.sunnni.smartdoorlock.api.Api; 18 import com.sunnni.smartdoorlock.api.Api;
19 +import com.sunnni.smartdoorlock.api.OnItemClick;
19 import com.sunnni.smartdoorlock.data.Device; 20 import com.sunnni.smartdoorlock.data.Device;
20 21
21 import java.util.ArrayList; 22 import java.util.ArrayList;
...@@ -23,6 +24,7 @@ import java.util.ArrayList; ...@@ -23,6 +24,7 @@ import java.util.ArrayList;
23 public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecyclerViewAdapter.DeviceViewHolder> { 24 public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecyclerViewAdapter.DeviceViewHolder> {
24 25
25 ArrayList<Device> mList; 26 ArrayList<Device> mList;
27 + OnItemClick mCallback;
26 28
27 static class DeviceViewHolder extends RecyclerView.ViewHolder { 29 static class DeviceViewHolder extends RecyclerView.ViewHolder {
28 TextView mTvDeviceNum, mTvRegisterDate; 30 TextView mTvDeviceNum, mTvRegisterDate;
...@@ -58,6 +60,7 @@ public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecycl ...@@ -58,6 +60,7 @@ public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecycl
58 Toast.makeText(itemView.getContext(), "삭제되었습니다.", Toast.LENGTH_LONG).show(); 60 Toast.makeText(itemView.getContext(), "삭제되었습니다.", Toast.LENGTH_LONG).show();
59 // TODO : 목록 refresh 61 // TODO : 목록 refresh
60 // DeviceManagerActivity.getDevices 를 호출하거나 DeviceManagerActivity.mList에서 device 제거 62 // DeviceManagerActivity.getDevices 를 호출하거나 DeviceManagerActivity.mList에서 device 제거
63 + this.notifyAll();
61 } 64 }
62 } 65 }
63 }); 66 });
...@@ -76,8 +79,9 @@ public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecycl ...@@ -76,8 +79,9 @@ public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecycl
76 } 79 }
77 } 80 }
78 81
79 - public DeviceRecyclerViewAdapter(ArrayList<Device> list) { 82 + public DeviceRecyclerViewAdapter(ArrayList<Device> list, OnItemClick listener) {
80 this.mList = list; 83 this.mList = list;
84 + this.mCallback = listener;
81 } 85 }
82 86
83 @NonNull 87 @NonNull
...@@ -91,6 +95,12 @@ public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecycl ...@@ -91,6 +95,12 @@ public class DeviceRecyclerViewAdapter extends RecyclerView.Adapter<DeviceRecycl
91 @Override 95 @Override
92 public void onBindViewHolder(@NonNull DeviceViewHolder holder, int position) { 96 public void onBindViewHolder(@NonNull DeviceViewHolder holder, int position) {
93 holder.bind(mList.get(position)); 97 holder.bind(mList.get(position));
98 + holder.mTrashcan.setOnClickListener(new View.OnClickListener() {
99 + @Override
100 + public void onClick(View v) {
101 + mCallback.onItemClick();
102 + }
103 + });
94 } 104 }
95 105
96 @Override 106 @Override
......
...@@ -82,8 +82,4 @@ public class RemoteControlRecordActivity extends AppCompatActivity { ...@@ -82,8 +82,4 @@ public class RemoteControlRecordActivity extends AppCompatActivity {
82 mRecyclerView.setLayoutManager(manager); 82 mRecyclerView.setLayoutManager(manager);
83 mRecyclerView.setAdapter(mAdapter); 83 mRecyclerView.setAdapter(mAdapter);
84 } 84 }
85 -
86 - private void dummy(){
87 -
88 - }
89 } 85 }
......
...@@ -15,13 +15,14 @@ import android.widget.Toast; ...@@ -15,13 +15,14 @@ import android.widget.Toast;
15 15
16 import com.sunnni.smartdoorlock.R; 16 import com.sunnni.smartdoorlock.R;
17 import com.sunnni.smartdoorlock.api.Api; 17 import com.sunnni.smartdoorlock.api.Api;
18 +import com.sunnni.smartdoorlock.api.OnItemClick;
18 import com.sunnni.smartdoorlock.data.RemoteRecord; 19 import com.sunnni.smartdoorlock.data.RemoteRecord;
19 import com.sunnni.smartdoorlock.data.Video; 20 import com.sunnni.smartdoorlock.data.Video;
20 21
21 import java.util.ArrayList; 22 import java.util.ArrayList;
22 import java.util.Objects; 23 import java.util.Objects;
23 24
24 -public class VideoCheckActivity extends AppCompatActivity { 25 +public class VideoCheckActivity extends AppCompatActivity implements OnItemClick {
25 26
26 ArrayList<Video> mVideoList = new ArrayList<Video>(); 27 ArrayList<Video> mVideoList = new ArrayList<Video>();
27 RecyclerView mRecyclerView; 28 RecyclerView mRecyclerView;
...@@ -137,8 +138,15 @@ public class VideoCheckActivity extends AppCompatActivity { ...@@ -137,8 +138,15 @@ public class VideoCheckActivity extends AppCompatActivity {
137 private void setRecyclerView() { 138 private void setRecyclerView() {
138 mRecyclerView = findViewById(R.id.rv_video_list); 139 mRecyclerView = findViewById(R.id.rv_video_list);
139 GridLayoutManager manager = new GridLayoutManager(this, 2); 140 GridLayoutManager manager = new GridLayoutManager(this, 2);
140 - mAdapter = new VideoRvAdapter(mVideoList); 141 + mAdapter = new VideoRvAdapter(mVideoList, this);
141 mRecyclerView.setLayoutManager(manager); 142 mRecyclerView.setLayoutManager(manager);
142 mRecyclerView.setAdapter(mAdapter); 143 mRecyclerView.setAdapter(mAdapter);
143 } 144 }
145 +
146 + @Override
147 + public void onItemClick() {
148 + // 삭제했을 때 여기서 다시 비디오 리스트 불러오기
149 + getVideos();
150 + Toast.makeText(this, "호출 테스트", Toast.LENGTH_LONG).show();
151 + }
144 } 152 }
......
...@@ -10,6 +10,7 @@ import android.widget.Toast; ...@@ -10,6 +10,7 @@ import android.widget.Toast;
10 import android.widget.VideoView; 10 import android.widget.VideoView;
11 11
12 import com.sunnni.smartdoorlock.R; 12 import com.sunnni.smartdoorlock.R;
13 +import com.sunnni.smartdoorlock.api.OnItemClick;
13 14
14 public class VideoPlayerActivity extends AppCompatActivity { 15 public class VideoPlayerActivity extends AppCompatActivity {
15 16
......
...@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView;
17 import com.bumptech.glide.Glide; 17 import com.bumptech.glide.Glide;
18 import com.sunnni.smartdoorlock.R; 18 import com.sunnni.smartdoorlock.R;
19 import com.sunnni.smartdoorlock.api.Api; 19 import com.sunnni.smartdoorlock.api.Api;
20 +import com.sunnni.smartdoorlock.api.OnItemClick;
20 import com.sunnni.smartdoorlock.data.RemoteRecord; 21 import com.sunnni.smartdoorlock.data.RemoteRecord;
21 import com.sunnni.smartdoorlock.data.Video; 22 import com.sunnni.smartdoorlock.data.Video;
22 23
...@@ -25,6 +26,7 @@ import java.util.ArrayList; ...@@ -25,6 +26,7 @@ import java.util.ArrayList;
25 public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoViewHolder> { 26 public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoViewHolder> {
26 27
27 ArrayList<Video> videoList; 28 ArrayList<Video> videoList;
29 + OnItemClick mCallback;
28 30
29 static class VideoViewHolder extends RecyclerView.ViewHolder { 31 static class VideoViewHolder extends RecyclerView.ViewHolder {
30 TextView mTvDate, mTvPlayTime; 32 TextView mTvDate, mTvPlayTime;
...@@ -62,13 +64,11 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie ...@@ -62,13 +64,11 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie
62 public void callbackMethod(Object obj) { 64 public void callbackMethod(Object obj) {
63 if(obj==null){ 65 if(obj==null){
64 Toast.makeText(itemView.getContext(), "연결 상태가 불안정합니다.", Toast.LENGTH_SHORT).show(); 66 Toast.makeText(itemView.getContext(), "연결 상태가 불안정합니다.", Toast.LENGTH_SHORT).show();
65 - itemView.getContext().startActivity(new Intent(itemView.getContext(), MainActivity.class)); 67 + // itemView.getContext().startActivity(new Intent(itemView.getContext(), MainActivity.class));
66 - // TODO: finish 하거나 or intent flag 설정하기
67 return; 68 return;
68 69
69 } else { 70 } else {
70 - Toast.makeText(itemView.getContext(), "삭제되었습니다.", Toast.LENGTH_LONG).show(); 71 + // Toast.makeText(itemView.getContext(), "삭제되었습니다.", Toast.LENGTH_LONG).show();
71 - // 삭제 구현
72 } 72 }
73 } 73 }
74 }); 74 });
...@@ -94,7 +94,7 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie ...@@ -94,7 +94,7 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie
94 public void callbackMethod(Object obj) { 94 public void callbackMethod(Object obj) {
95 if (obj == null) { 95 if (obj == null) {
96 Toast.makeText(itemView.getContext(), "연결 상태가 불안정합니다.", Toast.LENGTH_SHORT).show(); 96 Toast.makeText(itemView.getContext(), "연결 상태가 불안정합니다.", Toast.LENGTH_SHORT).show();
97 - itemView.getContext().startActivity(new Intent(itemView.getContext(), MainActivity.class)); 97 + // itemView.getContext().startActivity(new Intent(itemView.getContext(), MainActivity.class));
98 return; 98 return;
99 } else { 99 } else {
100 String s3link = (String) obj; 100 String s3link = (String) obj;
...@@ -112,8 +112,9 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie ...@@ -112,8 +112,9 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie
112 } 112 }
113 } 113 }
114 114
115 - public VideoRvAdapter(ArrayList<Video> list) { 115 + public VideoRvAdapter(ArrayList<Video> list, OnItemClick listener) {
116 this.videoList = list; 116 this.videoList = list;
117 + this.mCallback = listener;
117 } 118 }
118 119
119 @NonNull 120 @NonNull
...@@ -126,6 +127,12 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie ...@@ -126,6 +127,12 @@ public class VideoRvAdapter extends RecyclerView.Adapter<VideoRvAdapter.VideoVie
126 @Override 127 @Override
127 public void onBindViewHolder(@NonNull VideoViewHolder holder, int position) { 128 public void onBindViewHolder(@NonNull VideoViewHolder holder, int position) {
128 holder.bind(videoList.get(position)); 129 holder.bind(videoList.get(position));
130 + holder.mImgDelete.setOnClickListener(new View.OnClickListener() {
131 + @Override
132 + public void onClick(View v) {
133 + mCallback.onItemClick();
134 + }
135 + });
129 } 136 }
130 137
131 @Override 138 @Override
......