diff --git a/app/src/main/java/com/example/cosmosclient/entities/RequestList.java b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java index 5175c2f..3a5b319 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/RequestList.java +++ b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java @@ -40,6 +40,10 @@ requests.remove(index); } +// public void removeRequests(List requests) { +// requests.removeAll(requests); +// } + public int getRequestCount() { return requests.size(); } diff --git a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java index 34394ac..e92a1fd 100644 --- a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java @@ -5,6 +5,7 @@ import android.graphics.Color; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.view.Gravity; @@ -56,8 +57,8 @@ //retrofitの処理 final Retrofit retrofit = new Retrofit.Builder() - .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/") -// .baseUrl("http://10.0.2.2:8080/") + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/") + // .baseUrl("http://10.0.2.2:8080/rest/") .addConverterFactory(JacksonConverterFactory.create()) .build(); @@ -88,7 +89,8 @@ TableLayout requesttable; // TableLayout accomplishedRequesttable = (TableLayout)findViewById(R.id.RequestList); - HashMap selectedRequestList = new HashMap<>(); + HashMap selectedRequestMap = new HashMap<>(); + Button deleteButton; Button accomplishButton; @@ -252,15 +254,15 @@ } // requesttable.removeView(view); - for(View selectedRow : selectedRequestList.values()) { + for(View selectedRow : selectedRequestMap.values()) { if(view.equals(selectedRow)) { - selectedRequestList.remove(selectedRow); + selectedRequestMap.remove(selectedRow); view.setBackgroundColor(Color.rgb(255, 255, 255)); Toast.makeText(RequestListActivity.this, view + " Reset Clicked!", Toast.LENGTH_SHORT).show(); return false; } } - selectedRequestList.put(requesttable.indexOfChild(view), view); + selectedRequestMap.put(requesttable.indexOfChild(view), view); view.setBackgroundColor(Color.rgb(200, 200, 200)); Toast.makeText(RequestListActivity.this, requesttable.indexOfChild(view) + "row Clicked!", Toast.LENGTH_SHORT).show(); return false; @@ -275,7 +277,10 @@ }; //nameOnClick - public View.OnClickListener accomplishOnClick = new View.OnClickListener() { + public final View.OnClickListener accomplishOnClick = new View.OnClickListener() { + Handler handler = new Handler(); +// List selectedRequestList = new ArrayList<>(); + @Override public void onClick(View view) { @@ -285,46 +290,50 @@ final String uId = app.getuId(); final String token = app.getToken(); - for(Integer i : selectedRequestList.keySet()) { - Request request = requestList.getRequest(i - 1); - String deadline = null; - if(request.getDeadline() != null) { - deadline = String.format("%d-%02d-%02d %02d:%02d:%02d", request.getDeadline().getYear(), request.getDeadline().getMonth() + 1, request.getDeadline().getDate() + 1, 23, 59, 59); - } - final Call updateReqestCall = requestsService.updateRequest(gId, request.getrId(), uId, request.getProduct(), deadline, request.getLocation(), true, token); - requestList.removeRequest(i - 1); - - //サーバからのレスポンス - updateReqestCall.enqueue(new Callback() { - //成功時 - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - AddRequestsResponse result = response.body(); - Toast.makeText(RequestListActivity.this, "RequestListを達成しました", Toast.LENGTH_SHORT).show(); - - ResetRequestListTable(); - AddRequestListTable(requestList); - } else { - try { - System.out.println(response.errorBody().string()); - } catch (IOException e) { - e.printStackTrace(); - } - - //onFailureでキャッチできないエラーの処理 - Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); + new Thread(new Runnable() { + public void run() { + for (Integer i : selectedRequestMap.keySet()) { + Request request = requestList.getRequest(i - 1); +// selectedRequestList.add(request); + String deadline = null; + if (request.getDeadline() != null) { + deadline = String.format("%d-%02d-%02d %02d:%02d:%02d", request.getDeadline().getYear(), request.getDeadline().getMonth() + 1, request.getDeadline().getDate() + 1, 23, 59, 59); } - } + final Call updateReqestCall = requestsService.updateRequest(gId, request.getrId(), uId, request.getProduct(), deadline, request.getLocation(), true, token); + Response response; + try { + response = updateReqestCall.execute(); + if (response.isSuccessful()) { + AddRequestsResponse result = response.body(); +// Toast.makeText(RequestListActivity.this, "RequestListを達成しました", Toast.LENGTH_SHORT).show(); +// requestList.removeRequests(selectedRequestList); + handler.post(new Runnable() { + @Override + public void run() { + ResetRequestListTable(); + AddRequestListTable(requestList); + } + }); + } else { + // onFailure + try { + System.out.println(response.errorBody().string()); + } catch (IOException e) { + e.printStackTrace(); + } - //失敗時 - @Override - public void onFailure(Call call, Throwable t) { - t.printStackTrace(); - Toast.makeText(RequestListActivity.this, "RequestListの達成失敗しました", Toast.LENGTH_SHORT).show(); + //onFailureでキャッチできないエラーの処理 +// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); + } + } catch (IOException e) { + e.printStackTrace(); +// Toast.makeText(RequestListActivity.this, "RequestListの達成失敗しました", Toast.LENGTH_SHORT).show(); + + } + } - }); - } + } + }).start(); deleteButton.setVisibility(View.INVISIBLE); accomplishButton.setVisibility(View.INVISIBLE); }