Merge branches 'login' and 'master' of http://nitta-lab-www.is.konan-u.ac.jp/gitbucket/git/nitta-lab-2019/CosmosClient into login
# Conflicts:
#	app/src/main/AndroidManifest.xml
1 parent 7212b6f commit e82383aa32171d6ad035e5339b7c8edd8f866d20
k-morimoto authored on 1 Oct 2019
Showing 21 changed files
View
17
app/src/main/java/com/example/cosmosclient/entities/AddRequestsResponse.java 0 → 100644
package com.example.cosmosclient.entities;
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
public class AddRequestsResponse {
public String rId;
public String uri;
public String product;
public Date date;
public Date deadline;
public int location;
public boolean done;
public String issuerUid;
}
View
7
app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java
package com.example.cosmosclient.entities;
 
import java.util.List;
import java.util.ArrayList;
 
public class JoinGroupResponse {
public String gId;
public String uId;
public String token;
public String uri;
public String name;
public ArrayList<User> members= new ArrayList<>();
public ArrayList<Request> requests = new ArrayList<>();
 
}
View
64
app/src/main/java/com/example/cosmosclient/entities/Request.java
package com.example.cosmosclient.entities;
 
import com.fasterxml.jackson.annotation.JsonIgnore;
 
import java.util.Date;
 
public class Request {
 
private String rId;
private String uri;
// private String IssuerUid;
private UserJsonforRequests issuer;
private String product;
private Date date;
private String IssuerUid;
private String product;
private Date deadline;
// private String location;
// private String location;
private int location;
private String name; //消
private boolean done = false;
private boolean done;
 
public Request(String product, Date deadline, int location, String name) {
public Request() {
}
 
public Request(String rId, String uri/*, UserJsonforRequests issuer*/, String product, Date date, Date deadline, int location, String name, boolean done) {
this.rId = rId;
this.uri = uri;
// this.issuer = issuer;
this.product = product;
this.date = date;
this.deadline = deadline;
this.location = location;
this.name = name;
this.done = done;
}
 
public String getrId() {
return rId;
public void setrId(String rId) {
this.rId = rId;
}
 
public String getUri() {
return uri;
}
 
public void setUri(String uri) {
this.uri = uri;
}
 
public UserJsonforRequests getIssuer() {
return issuer;
}
 
public void setIssuer(UserJsonforRequests issuer) {
this.issuer = issuer;
}
 
public String getProduct() {
return product;
}
 
public void setProduct(String product) {
this.product = product;
}
 
public Date getDate() {
return date;
}
 
public void setDate(Date date) {
this.date = date;
}
 
public Date getDeadline() {
return deadline;
public void setLocation(int location) {
this.location = location;
}
 
public String getName() {
return name;
public boolean isDone() {
return done;
}
 
public void setName(String name) {
this.name = name;
public void setDone(boolean done) {
this.done = done;
}
}
}
View
53
app/src/main/java/com/example/cosmosclient/entities/Requests.java 0 → 100644
package com.example.cosmosclient.entities;
 
import com.fasterxml.jackson.annotation.JsonIgnore;
 
import java.util.ArrayList;
import java.util.List;
 
public class Requests {
private List<Request> requests;
 
public Requests() {
 
}
 
public Requests(List<Request> requests) {
this.requests = requests;
}
 
public List<Request> getRequests() {
return requests;
}
 
public void setRequests(List<Request> requests) {
this.requests = requests;
}
 
public void addRequests(Request r) {
requests.add(r);
}
 
public Request getRequest(int index) {
return requests.get(index);
}
 
public void clearRequest() {
requests.clear();
}
 
public void removeRequest(int index) {
requests.remove(index);
}
 
public int getRequestCount() {
return requests.size();
}
 
// @Override
// public boolean equals(Object other) {
// if (!(other instanceof Container)) return false;
// return components.equals(((Container)other).components);
// }
}
View
81
app/src/main/java/com/example/cosmosclient/entities/UserJsonforRequests.java 0 → 100644
package com.example.cosmosclient.entities;
 
import java.util.HashSet;
import java.util.Set;
 
public class UserJsonforRequests {
 
/**
* USER用のクラス
*
* @param uId string //LONGに変更
* @param uri String
* @param name String
* @param iconUri String iconの保存先
* @param login Boolean トークンが存在するか否か
* @param tokens String userが持トークン一覧
*
*/
 
public String uId, uri, name, iconUri;
//仕様ではStringを返すため
//public Set<Token> tokens = new HashSet<>();
//public Set<String> tokens = new HashSet<>();
 
public UserJsonforRequests() {
 
}
 
public UserJsonforRequests(String name, String uId, String uri, String iconUri) {
setuId(uId);
setUri(uri);
setName(name);
setIconUri(iconUri);
}
 
public String getuId() {
return uId;
}
 
public void setuId(String uId) {
this.uId = uId;
}
 
public String getUri() {
return uri;
}
 
public void setUri(String uri) {
this.uri = uri;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public String getIconUri() {
return iconUri;
}
 
public void setIconUri(String iconUri) {
this.iconUri = iconUri;
}
 
/*
* //仕様ではStringで返すため
* public Set<String> getTokens(){
* return tokens;
* }
* public void setTokens(Set<String> tokens){
* this.tokens=tokens;
* }
* public void addToken (String token){
* tokens.add(token);
* }
*/
}
View
19
app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java
package com.example.cosmosclient.resources;
 
import com.example.cosmosclient.entities.AddRequestsResponse;
import com.example.cosmosclient.entities.CreateGroupResponse;
import com.example.cosmosclient.entities.Group;
import com.example.cosmosclient.entities.MemberListResponse;
import com.example.cosmosclient.entities.Request;
import com.example.cosmosclient.entities.Requests;
import com.example.cosmosclient.entities.User;
 
import java.util.ArrayList;
import java.util.Date;
 
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
 
 
public interface GroupsRest {
@POST("groups")
@FormUrlEncoded
Call<CreateGroupResponse> createGroup(@Field("name") String name, @Field("uId") String uId, @Field("token") String token);
 
// @GET("/{gId}/requests")
// Call<ArrayList<Request>> getRequestsListByGid(@Path("gid") String gid, @Query("token") String token);
//
@GET("groups/{gId}/requests")
Call<Requests> getRequestsListByGid(@Path("gId") String gId, @Query("token") String token, @Query("detail") boolean detail, @Query("quantity") int quantity);
 
@POST("groups/{gId}/requests")
@FormUrlEncoded
Call<AddRequestsResponse> addRequests(@Path("gId") String gId, @Field("uId") String uId, @Field("product") String product, @Field("deadline") String deadline, @Field("location") int location, @Field("token") String token);
 
// @GET("{gId}/requests/{rId}")
// Call<Request> getRequestsDetailByGidAndRid(@Path("gid") String gid, @Path("rid") String rid, @Query("token") String token);
 
@GET("groups/{gId}/members")
View
2
■■■
app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java
 
public interface JoinGroupRest {
@POST("groups/{gId}/members")
@FormUrlEncoded
Call<JoinGroupResponse> JoinGroup(@Path("gId") String gId, @Field("uId ") String uId , @Field("token ") String token);
Call<JoinGroupResponse> JoinGroup(@Path("gId") String gId, @Field("uId") String uId , @Field("token") String token);
 
}
View
10
app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java
 
public class AddMemberActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
 
private static final String[] scenes = {
"QRコードで追加",
"IDで追加",
"QRコードで招待",
"IDで招待",
"LINEで招待"
};
 
// ちょっと冗長的ですが分かり易くするために
String selectedText = scenes[position];
if(selectedText.contains("QR")==true){
intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class);
}else if(selectedText.contains("ID")==true){
intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class);
intent = new Intent(this.getApplicationContext(), DisplayGroupIDActivity.class);
}else{
// intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class);
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("line://msg/text/?GroupID"));
startActivity(i);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("line://msg/text/?GroupID"));
}
 
// Intent intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class);
// SubActivityへ遷移
View
206
app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java
 
import android.app.DatePickerDialog;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.Toast;
 
import com.example.cosmosclient.R;
import com.example.cosmosclient.entities.Request;
import com.example.cosmosclient.app.Cosmos;
import com.example.cosmosclient.entities.AddRequestsResponse;
import com.example.cosmosclient.resources.GroupsRest;
import com.example.cosmosclient.yolp.Yolp;
 
import java.sql.Date;
import java.io.IOException;
import java.util.Calendar;
 
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
 
 
public class AddRequestActivity extends AppCompatActivity {
private InputMethodManager inputMethodManager;
 
private ImageButton calenderButton;
 
private int curYear;
private int curMonth;
private int curDayOfMonth;
private Integer deadlineYear;
private Integer deadlineMonth;
private Integer deadlineDayOfMonth;
 
private EditText editTextProduct;
private EditText editTextDeadline;
 
DatePickerDialog datePickerDialog = new DatePickerDialog(AddRequestActivity.this, new DatePickerDialog.OnDateSetListener() {
 
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
curYear = year;
curMonth = month;
curDayOfMonth = dayOfMonth;
deadlineYear = year;
deadlineMonth = month;
deadlineDayOfMonth = dayOfMonth;
 
//setした日付を取得して表示
editTextDeadline.setText(String.format("%d / %02d / %02d", year, month+1, dayOfMonth));
}
// 追加ボタン
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// //retrofitの処理
// final Retrofit retrofit = new Retrofit.Builder()
// .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
// .addConverterFactory(JacksonConverterFactory.create())
// .build();
//
// //interfaceから実装を取得
// final GroupsRest requestsService = retrofit.create(GroupsRest.class);
//
// Call<Request> call = requestsService.getRequestsListByGid();
// //サーバからのレスポンス
// call.enqueue(new Callback<Request>() {
// //成功時
// @Override
// public void onResponse(Call<Request> call, Response<Request> response) {
// if (response.isSuccessful()) {
// Request result = response.body();
//
// //app/Cosmosに情報保存
// Cosmos app = (Cosmos) getApplication();
//
// Toast.makeText(RequestListActivity.this, "RequestListに追加しました", Toast.LENGTH_SHORT).show();
// } else {
// //onFailureでキャッチできないエラーの処理
// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show();
// }
// }
//
// //失敗時
// @Override
// public void onFailure(Call<Request> call, Throwable t) {
// //t.printStackTrace();
// Toast.makeText(RequestListActivity.this, "RequestListの追加失敗しました", Toast.LENGTH_SHORT).show();
// }
// });
//ボタン連打防止
addButton.setEnabled(false);
new Handler().postDelayed(new Runnable() {
public void run() {
addButton.setEnabled(true);
}
}, 3000L);
 
// エディットテキストのテキストを取得
String inputProduct = editTextProduct.getText().toString();
 
// 取得したテキストを TextView に張り付ける
RequestListActivity.requestlist.add(0, (new Request(inputProduct, new Date(curYear, curMonth, curDayOfMonth), Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), "a-hongo")));
finish();
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
// .baseUrl("http://localhost:8080/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
 
//interfaceから実装を取得
final GroupsRest addRequestsService = retrofit.create(GroupsRest.class);
 
//RequestList取得するための必要な情報
Cosmos app = (Cosmos) getApplication();
final String uId = app.getuId();
final String gId = app.getCurentGroup().getgId();
final String token = app.getToken();
final boolean detail = true;
String deadline = null;
 
if(deadlineYear != null && deadlineMonth != null && deadlineDayOfMonth != null) {
deadline = String.format("%d-%02d-%02d %02d:%02d:%02d", deadlineYear, deadlineMonth +1, deadlineDayOfMonth, 23, 59, 59);
}
Call<AddRequestsResponse> call = addRequestsService.addRequests(gId, uId, inputProduct, deadline, Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), token);
// Call<AddRequestsResponse> call = addRequestsService.addRequests(gId, uId, inputProduct, new Date(deadlineYear, deadlineMonth, deadlineDayOfMonth), Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), token);
// Call<AddRequestsResponse> call = addRequestsService.addRequests(gId, uId, inputProduct, Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), token);
 
//サーバからのレスポンス
call.enqueue(new Callback<AddRequestsResponse>() {
//成功時
@Override
public void onResponse(Call<AddRequestsResponse> call, Response<AddRequestsResponse> response) {
if (response.isSuccessful()) {
AddRequestsResponse result = response.body();
finish();
 
Toast.makeText(AddRequestActivity.this, "RequestListに追加しました", Toast.LENGTH_SHORT).show();
} else {
try {
System.out.println(response.errorBody().string());
} catch (IOException e) {
e.printStackTrace();
}
 
//onFailureでキャッチできないエラーの処理
Toast.makeText(AddRequestActivity.this, "通信エラー", Toast.LENGTH_SHORT).show();
}
}
 
//失敗時
@Override
public void onFailure(Call<AddRequestsResponse> call, Throwable t) {
t.printStackTrace();
Toast.makeText(AddRequestActivity.this, "RequestListの追加失敗しました", Toast.LENGTH_SHORT).show();
}
});
}
});
 
// リスナーを登録
View
51
app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java 0 → 100644
package com.example.cosmosclient.views;
 
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
import com.example.cosmosclient.R;
import com.example.cosmosclient.app.Cosmos;
import com.example.cosmosclient.entities.Group;
 
public class DisplayGroupIDActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_group_id);
 
EditText groupID = (EditText)findViewById(R.id.groupID);
// ボタンを設定
Button copyButton = findViewById(R.id.copy_Button);
//読み取り専用にする設定
groupID.setEnabled(false);
// //現在のグループ情報を格納しているものからgIdを取得
Cosmos app = (Cosmos) getApplication();
Group curentGroup = app.getCurentGroup();
// //元となるgIdを取得完了
final String gId = curentGroup.getgId();
// final String gId = "vrehngortis";
groupID.setText(gId);
 
copyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClipboardManager clipboard
= (ClipboardManager) getSystemService(
Context.CLIPBOARD_SERVICE);
clipboard.setPrimaryClip(ClipData.newPlainText("", gId));
}
});
 
}
 
}
View
12
app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_qr);
// //現在のグループ情報を格納しているものからgIdを取得
// Cosmos app = (Cosmos) getApplication();
// Group curentGroup = app.getCurentGroup();
// //元となるgIdを取得完了
// String data = curentGroup.getgId();
//現在のグループ情報を格納しているものからgIdを取得
Cosmos app = (Cosmos) getApplication();
Group curentGroup = app.getCurentGroup();
//元となるgIdを取得完了
String data = curentGroup.getgId();
 
//テスト値
String data = "http://researchers.adm.konan-u.ac.jp/html/130_ja.html";
// String data = "http://researchers.adm.konan-u.ac.jp/html/130_ja.html";
//QRコード画像の大きさを指定(pixel)
int size = 500;
 
 
View
68
app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java
 
 
//* 必要値取得 *//
//現在のグループ情報を格納しているものからuid,tokenを取得
// Cosmos app = (Cosmos) getApplication();
//元となるgId,uid,tokenを取得完了
// String gId = GroupID;
// String uId=app.getuId();
// String token=app.getToken();
Cosmos app = (Cosmos) getApplication();
//uid,tokenを取得完了
final String uId=app.getuId();
String token=app.getToken();
 
//テスト値
String gId="qwer";
String uId="asdf";
String token="sggh";
String gId=GroupID;
// String uId="asdf";
// String token="sggh";
//API呼び出しのための値入力
Call<JoinGroupResponse> call = joinGroupService.JoinGroup(gId, uId, token);
final Call<JoinGroupResponse> call = joinGroupService.JoinGroup(gId, uId, token);
 
//サーバからデータ受け取り
call.enqueue(new Callback<JoinGroupResponse>() {
//成功時
@Override
public void onResponse(Call<JoinGroupResponse> call, Response<JoinGroupResponse> response) {
if (response.isSuccessful()) {
// JoinGroupResponse result = response.body();
test.setText("成功");
Cosmos app = (Cosmos) getApplication();
// Intent intent = new Intent(getApplication(), GroupListActivity.class);
//成功時
final JoinGroupResponse result = response.body();
//追加ボタンに関する記述
test.setText(result.name);
Button AddBtn = (Button)findViewById(R.id.Addbutton);
AddBtn.setVisibility(View.VISIBLE);
 
//test
// System.out.println(result.gId);
// System.out.println(result.uId);
// System.out.println(result.name);
// System.out.println(result.uri);
// System.out.println(result.token);
// System.out.println(result.iconUri);
// System.out.println(result.pw);
AddBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Group g = new Group(result.gId, result.uri, result.name, uId);
 
//ここで成功の処理を記述
// finish();
//app/CosmosにgIdを保存
Cosmos app = (Cosmos) getApplication();
app.setCurrentGroup(g);
 
} else {
Intent intent = new Intent(getApplication(), RequestListActivity.class);
startActivity(intent);
finish();
 
}
});
 
}else {
//onFailureでキャッチできないエラー用
//ここでエラーの処理を記述
test.setText("失敗");
 
View
62
app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
import com.example.cosmosclient.R;
import com.example.cosmosclient.app.Cosmos;
import com.example.cosmosclient.entities.Group;
import com.example.cosmosclient.entities.JoinGroupResponse;
import com.example.cosmosclient.resources.JoinGroupRest;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
final IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
QRcodeData = (String)result.getContents();
QRcodeResult.setText(QRcodeData);
// QRcodeResult.setText(QRcodeData);
} else {
super.onActivityResult(requestCode, resultCode, data);
}
 
final JoinGroupRest joinGroupService = retrofit.create(JoinGroupRest.class);
 
//* 必要値取得 *//
//現在のグループ情報を格納しているものからuid,tokenを取得
// Cosmos app = (Cosmos) getApplication();
Cosmos app = (Cosmos) getApplication();
//元となるgId,uid,tokenを取得完了
// String gId = (String)result.getContents();
// String uId=app.getuId();
// String token=app.getToken();
String gId = (String)result.getContents();
final String uId=app.getuId();
String token=app.getToken();
 
String gId="dnjewvhoirae";
String uId="dnjewvhfgoirae";
String token="dnjewvhoidgfrae";
// String gId="dnjewvhoirae";
// String uId="dnjewvhfgoirae";
// String token="dnjewvhoidgfrae";
//API呼び出しのための値入力
Call<JoinGroupResponse> call = joinGroupService.JoinGroup(gId, uId, token);
 
//サーバからデータ受け取り
//成功時
@Override
public void onResponse(Call<JoinGroupResponse> call, Response<JoinGroupResponse> response) {
if (response.isSuccessful()) {
JoinGroupResponse result = response.body();
//成功時
final JoinGroupResponse result = response.body();
QRcodeResult.setText(result.name);
Button AddBtn = (Button)findViewById(R.id.Addbutton);
 
Cosmos app = (Cosmos) getApplication();
//test
// System.out.println(result.uId);
// System.out.println(result.name);
// System.out.println(result.uri);
// System.out.println(result.token);
// System.out.println(result.iconUri);
// System.out.println(result.pw);
AddBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Group g = new Group(result.gId, result.uri, result.name, uId);
 
//ここで成功の処理を記述
testtxt.setText("成功");
//app/CosmosにgIdを保存
Cosmos app = (Cosmos) getApplication();
app.setCurrentGroup(g);
 
finish();
Intent intent = new Intent(getApplication(), RequestListActivity.class);
startActivity(intent);
finish();
 
}
});
 
 
} else {
//onFailureでキャッチできないエラー用
//ここでエラーの処理を記述
View
243
app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java
 
import com.example.cosmosclient.R;
import com.example.cosmosclient.app.Cosmos;
import com.example.cosmosclient.entities.Request;
import com.example.cosmosclient.entities.Requests;
import com.example.cosmosclient.resources.GroupsRest;
import com.example.cosmosclient.yolp.Yolp;
 
import java.io.IOException;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
 
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
implements NavigationView.OnNavigationItemSelectedListener {
 
Toast toast; //動作テスト用
 
 
 
//Request List
public static ArrayList<Request> requestlist = new ArrayList<>();
Requests requests;
 
//Color制御
boolean productColorFlag = true; //買うもの (true:白, false:黒)
boolean deadlineColorFlag = true; //購入期限
LinearLayout locationView;
LinearLayout nameView;
 
Collator collator = Collator.getInstance(Locale.JAPANESE);
 
// TableLayout requesttable = (TableLayout)findViewById(R.id.RequestList);
// TableLayout accomplishedRequesttable = (TableLayout)findViewById(R.id.RequestList);
 
//productOnClick
public View.OnClickListener productOnClick = new View.OnClickListener() {
@Override
if (!productColorFlag) {
product.setColorFilter(null);
productColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requestlist);
AddRequestListTable(requests);
} else {
if(deadlineRotationFlag) {
deadlineRotationFlag = false;
} else {
if (!deadlineColorFlag) {
deadline.setColorFilter(null);
deadlineColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requestlist);
AddRequestListTable(requests);
if(!deadlineRotationFlag) {
deadline.setRotation(0);
}
} else {
if (!locationColorFlag) {
location.setColorFilter(null);
locationColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requestlist);
AddRequestListTable(requests);
} else {
if(deadlineRotationFlag) {
deadlineRotationFlag = false;
} else {
if (!nameColorFlag) {
name.setColorFilter(null);
nameColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requestlist);
AddRequestListTable(requests);
} else {
if(deadlineRotationFlag) {
deadlineRotationFlag = false;
} else {
}
}
};
 
//requestListRowOnClick
// public View.OnClickListener requestListRowOnClick = new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// requesttable.removeView(view);
// }
// };
 
//productSortComparator
public Comparator<Request> productSortComparator = new Comparator<Request>() {
@Override
public int compare(Request r1, Request r2) {
return collator.compare(r1.getProduct().toString(), r2.getProduct().toString());
return collator.compare(r1.getProduct(), r2.getProduct());
}
};
 
//deadlineSortComparator
//nameSortComparator
public Comparator<Request> nameSortComparator = new Comparator<Request>() {
@Override
public int compare(Request r1, Request r2) {
return collator.compare(r1.getName().toString(), r2.getName().toString());
return collator.compare(r1.getIssuer().getName(), r2.getIssuer().getName());
}
};
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_request_list);
 
// //retrofitの処理
// final Retrofit retrofit = new Retrofit.Builder()
// .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
// .addConverterFactory(JacksonConverterFactory.create())
// .build();
//
// //interfaceから実装を取得
// final GroupsRest requestsService = retrofit.create(GroupsRest.class);
//
// //RequestList取得するための必要な情報
// Cosmos app = (Cosmos) getApplication();
// final String gid = app.getCurentGroup().getgId();
// final String token = app.getToken();
//
// final Call<ArrayList<Request>> requestsListByGidCall = requestsService.getRequestsListByGid(gid, token);
//
// //サーバからのレスポンス
// requestsListByGidCall.enqueue(new Callback<Request>() {
// //成功時
// @Override
// public void onResponse(Call<Request> call, Response<Request> response) {
// if (response.isSuccessful()) {
// Request result = response.body();
//
// Call<Request> requestsDetailByGidAndRidcall = requestsService.getRequestsDetailByGidAndRid(gid, token, result.getrId());
// //サーバからのレスポンス
// requestsDetailByGidAndRidcall.enqueue(new Callback<Request>() {
// //成功時
// @Override
// public void onResponse(Call<Request> call, Response<Request> response) {
// if (response.isSuccessful()) {
// Request result = response.body();
//
//
// Toast.makeText(RequestListActivity.this, "RequestList詳細を取得しました", Toast.LENGTH_SHORT).show();
// } else {
// //onFailureでキャッチできないエラーの処理
// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show();
// }
// }
// //失敗時
// @Override
// public void onFailure(Call<Request> call, Throwable t) {
// //t.printStackTrace();
// Toast.makeText(RequestListActivity.this, "RequestList詳細の取得失敗しました", Toast.LENGTH_SHORT).show();
// }
// });
// Toast.makeText(RequestListActivity.this, "RequestListを取得しました", Toast.LENGTH_SHORT).show();
// } else {
// //onFailureでキャッチできないエラーの処理
// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show();
// }
// }
//
// //失敗時
// @Override
// public void onFailure(Call<Request> call, Throwable t) {
// //t.printStackTrace();
// Toast.makeText(RequestListActivity.this, "RequestListの取得失敗しました", Toast.LENGTH_SHORT).show();
// }
// });
 
Toolbar toolbar = (Toolbar) findViewById(R.id.requestlist_toolbar);
setSupportActionBar(toolbar);
 
startActivity(new Intent(RequestListActivity.this, AddRequestActivity.class));
}
});
 
requestlist.clear();
 
//Add Request
requestlist.add(new Request("わさび", new Date(2019, 6, 7), 205002, "a-hongo"));
requestlist.add(new Request("ケーキ" , new Date(2019, 6, 6), 205001, "t-sugisawa"));
requestlist.add(new Request("からし", new Date(2018, 6, 4), 205002, "n-kande"));
 
//Add RequestList Table
AddRequestListTable(requestlist);
 
//LEFT hamburger button
DrawerLayout requestlistDrawer = (DrawerLayout) findViewById(R.id.request_list_drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, requestlistDrawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
locationView.setOnClickListener(locationOnClick);
 
nameView = (LinearLayout)findViewById(R.id.name);
nameView.setOnClickListener(nameOnClick);
}
 
@Override
protected void onStart() {
super.onStart();
 
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
// .baseUrl("http://10.0.2.2:8080/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
 
//interfaceから実装を取得
final GroupsRest requestsService = retrofit.create(GroupsRest.class);
 
//RequestList取得するための必要な情報
Cosmos app = (Cosmos) getApplication();
final String gId = app.getCurentGroup().getgId();
final String token = app.getToken();
final boolean detail = true;
int quantity = 20;
 
final Call<Requests> requestsListByGidCall = requestsService.getRequestsListByGid(gId, token, detail, quantity);
 
//サーバからのレスポンス
requestsListByGidCall.enqueue(new Callback<Requests>() {
//成功時
@Override
public void onResponse(Call<Requests> call, Response<Requests> response) {
if (response.isSuccessful()) {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Tokyo"));
requests = response.body();
 
//Add RequestList Table
AddRequestListTable(requests);
 
Toast.makeText(RequestListActivity.this, "RequestListを取得しました", Toast.LENGTH_SHORT).show();
} else {
try {
System.out.println("a" + response.errorBody().string());
} catch (IOException e) {
e.printStackTrace();
}
//onFailureでキャッチできないエラーの処理
Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show();
}
}
 
//失敗時
@Override
public void onFailure(Call<Requests> call, Throwable t) {
t.printStackTrace();
Toast.makeText(RequestListActivity.this, "RequestListの取得失敗しました", Toast.LENGTH_SHORT).show();
}
});
 
}
 
@Override
super.onRestart();
 
ResetRequestListTable();
 
//Add RequestList Table
AddRequestListTable(requestlist);
requests.clearRequest();
 
// //Add RequestList Table
// AddRequestListTable(requests);
}
 
@SuppressWarnings("StatementWithEmptyBody")
@Override
requestlistDrawer.closeDrawer(GravityCompat.START);
return true;
}
 
private int ConvertMonth(int i, ArrayList<Request> requestList) {
return requestList.get(i).getDeadline().getMonth() + 1;
private int ConvertMonth(int i, Requests requests) {
return requests.getRequest(i).getDeadline().getMonth() + 1;
}
 
@TargetApi(Build.VERSION_CODES.O)
private void AddRequestListTable(ArrayList<Request> requestList) {
private void AddRequestListTable(Requests requests) {
Date now = new Date();
TableLayout requesttable = (TableLayout)findViewById(R.id.RequestList);
requesttable.setShrinkAllColumns(true);
 
for (int i = 0; i < requestList.size(); i++) {
for (int i = 0; i < requests.getRequestCount(); i++) {
TableRow tableRow = new TableRow(this);
 
TextView textProduct = new TextView(this);
textProduct.setText(requestList.get(i).getProduct());
textProduct.setText(requests.getRequest(i).getProduct());
textProduct.setTextSize(20);
textProduct.setHeight(150);
textProduct.setGravity(Gravity.CENTER);
tableRow.addView(textProduct, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT));
// }
// if (requestList.get(i).getDeadline().getMonth() == now.getMonth() && requestList.get(i).getDeadline().getDate() - now.getDate() == 1) {
// textDeadline.setText("明日まで");
// }
textDeadline.setText(ConvertMonth(i, requestList) + "/" + requestList.get(i).getDeadline().getDate());
if(requests.getRequest(i).getDeadline() != null) {
textDeadline.setText(ConvertMonth(i, requests) + "/" + requests.getRequest(i).getDeadline().getDate());
}
// textDeadline.setText(now.getMonth() + "/" + now.getDate());
textDeadline.setTextSize(20);
textDeadline.setHeight(150);
textDeadline.setGravity(Gravity.CENTER);
tableRow.addView(textDeadline, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT));
 
TextView textLocation = new TextView(this);
textLocation.setText(Yolp.getInstance().getSubCategoryByCode(requestList.get(i).getLocation()).getSubName());
if(Yolp.getInstance().getSubCategoryByCode(requests.getRequest(i).getLocation()) != null) {
textLocation.setText(Yolp.getInstance().getSubCategoryByCode(requests.getRequest(i).getLocation()).getSubName());
}
 
textLocation.setTextSize(20);
textLocation.setHeight(150);
textLocation.setGravity(Gravity.CENTER);
tableRow.addView(textLocation, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT));
 
TextView textName = new TextView(this);
textName.setText(requestList.get(i).getName());
textName.setText(requests.getRequest(i).getIssuer().getName());
textName.setTextSize(20);
textName.setHeight(150);
textName.setGravity(Gravity.CENTER);
tableRow.addView(textName, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT));
 
// tableRow.setOnClickListener(requestListRowOnClick);
 
requesttable.addView(tableRow);
}
}
 
// Can not to reset!
private void ResetRequestListTable() {
TableLayout requesttable = (TableLayout)findViewById(R.id.RequestList);
int childCount = requesttable.getChildCount();
 
requesttable.removeViews(1, childCount - 1);
}
}
 
private ArrayList<Request> SortProduct() {
ArrayList<Request> productsortRequestlist = (ArrayList<Request>) requestlist.clone();
private Requests SortProduct() {
List<Request> productsortRequestlist = (List<Request>) requests.getRequests();
 
Collections.sort(productsortRequestlist, productSortComparator);
return productsortRequestlist;
}
 
private ArrayList<Request> SortDeadline() {
ArrayList<Request> deadlinesortRequestlist = (ArrayList<Request>) requestlist.clone();
return new Requests(productsortRequestlist);
}
 
private Requests SortDeadline() {
List<Request> deadlinesortRequestlist = (List<Request>) requests.getRequests();
 
Collections.sort(deadlinesortRequestlist, deadlineSortComparator);
return deadlinesortRequestlist;
}
 
private ArrayList<Request> ReverseDeadline() {
ArrayList<Request> deadlinesortRequestlist = (ArrayList<Request>) requestlist.clone();
return new Requests(deadlinesortRequestlist);
}
 
private Requests ReverseDeadline() {
List<Request> deadlinesortRequestlist = (List<Request>) requests.getRequests();
 
Collections.sort(deadlinesortRequestlist, deadlineReverseComparator);
return deadlinesortRequestlist;
}
 
private ArrayList<Request> SortLocation() {
ArrayList<Request> locationsortRequestlist = (ArrayList<Request>) requestlist.clone();
return new Requests(deadlinesortRequestlist);
}
 
private Requests SortLocation() {
List<Request> locationsortRequestlist = (List<Request>) requests.getRequests();
 
Collections.sort(locationsortRequestlist, locationSortComparator);
return locationsortRequestlist;
}
 
private ArrayList<Request> SortName() {
ArrayList<Request> namesortRequestlist = (ArrayList<Request>) requestlist.clone();
return new Requests(locationsortRequestlist);
}
 
private Requests SortName() {
List<Request> namesortRequestlist = (List<Request>) requests.getRequests();
 
Collections.sort(namesortRequestlist, nameSortComparator);
return namesortRequestlist;
return new Requests(namesortRequestlist);
}
}
View
2
■■■
app/src/main/java/com/example/cosmosclient/yolp/Yolp.java
}
return code;
}
 
 
public void setCodeToSubcategory(HashMap<Integer, SubCategory> codeToSubcategory) {
this.codeToSubcategory = codeToSubcategory;
}
 
public void putCodeToSubCategory(int code, SubCategory subCategory) {
codeToSubcategory.put(code, subCategory);
}
 
 
// 業種名2から業種名3
public String[] getCategoryNames() {
return nameToCategory.keySet().toArray(new String[0]);
View
4
app/src/main/res/layout/activity_add_member.xml
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="0dp" />
 
<LinearLayout
android:layout_width="416dp"
android:layout_height="500dp"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
View
app/src/main/res/layout/activity_display_group_id.xml 0 → 100644
View
app/src/main/res/layout/activity_join_group_actions.xml
View
app/src/main/res/layout/activity_join_group_by_id.xml
View
app/src/main/res/layout/activity_qrcode_reading.xml
View
app/src/main/res/layout/content_request_list.xml