diff --git a/app/build.gradle b/app/build.gradle
index dbf7c23..4260cab 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -32,4 +32,7 @@
//QRコードリーダー
implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
implementation 'com.android.support:design:28.0.0'
+ //cropView
+ implementation 'com.oginotihiro:cropview:1.0.0'
+ api 'com.theartofdev.edmodo:android-image-cropper:2.7.+'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 26cd441..694e8e9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,23 +4,26 @@
package="com.example.cosmosclient">
-
-
+
+
+
+
+ android:label="IDでグループに入る" />
@@ -31,9 +34,9 @@
-
-
+
@@ -41,12 +44,16 @@
-
+
+
-
+ android:theme="@style/AppTheme.NoActionBar" />
+
-
+ android:theme="@style/AppTheme.NoActionBar">
\ No newline at end of file
diff --git a/app/src/main/java/com/example/cosmosclient/app/Cosmos.java b/app/src/main/java/com/example/cosmosclient/app/Cosmos.java
index 63fd1cc..632820b 100644
--- a/app/src/main/java/com/example/cosmosclient/app/Cosmos.java
+++ b/app/src/main/java/com/example/cosmosclient/app/Cosmos.java
@@ -4,24 +4,17 @@
import com.example.cosmosclient.entities.Group;
-import java.util.ArrayList;
-import java.util.List;
-
public class Cosmos extends Application {
- //token処理
- private List token;
+ private String token=null;
private Group curGroup=null;
+ private String uId=null;
- public Cosmos(){
- this.token = new ArrayList();
- }
-
- public void setToken(List token){
+ //token処理
+ public void setToken(String token){
this.token = token;
}
-
- public List getToken(){
- return new ArrayList(token);
+ public String getToken(){
+ return token;
}
//Group処理
@@ -32,5 +25,11 @@
return curGroup;
}
-
+ //uId処理
+ public void setuId(String uId){
+ this.uId = uId;
+ }
+ public String getuId(){
+ return uId;
+ }
}
diff --git a/app/src/main/java/com/example/cosmosclient/entities/SigninResponse.java b/app/src/main/java/com/example/cosmosclient/entities/SigninResponse.java
index 269b78a..8600404 100644
--- a/app/src/main/java/com/example/cosmosclient/entities/SigninResponse.java
+++ b/app/src/main/java/com/example/cosmosclient/entities/SigninResponse.java
@@ -1,7 +1,6 @@
package com.example.cosmosclient.entities;
-import java.util.List;
-
public class SigninResponse {
- public List token;
+ public String token;
+ public String uId;
}
diff --git a/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java b/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java
index 4a52150..712e2fd 100644
--- a/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java
+++ b/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java
@@ -1,13 +1,10 @@
package com.example.cosmosclient.entities;
-import java.util.List;
-
public class SignupResponse {
public String uId;
public String name;
- public String pw;
public String uri;
- public List token;
+ public String token;
public String iconUri;
public boolean login;
diff --git a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java
index 6635b43..52bbefd 100644
--- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java
+++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java
@@ -1,4 +1,14 @@
package com.example.cosmosclient.resources;
+import com.example.cosmosclient.entities.Group;
+
+import retrofit2.Call;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.POST;
+
public interface GroupsRest {
+ @POST("groups")
+ @FormUrlEncoded
+ Call createGroup(@Field("name") String name,@Field("uId") String uId,@Field("token") String token);
}
diff --git a/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java b/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java
index d4ddb3e..205b4a2 100644
--- a/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java
+++ b/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java
@@ -12,10 +12,10 @@
public interface UsersRest {
@POST("users/{uId}/login")
- Call loginList(@Path("uId") String uId, @Query("pw") String pw);
+ @FormUrlEncoded
+ Call login(@Path("uId") String uId,@Field("pw") String pw);
@POST("users")
@FormUrlEncoded
Call createUser(@Field("name") String name, @Field("pw") String pw, @Field("icon-image") String icon_image);
-
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java b/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java
new file mode 100644
index 0000000..d83bf9e
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java
@@ -0,0 +1,93 @@
+package com.example.cosmosclient.views;
+
+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.Toast;
+
+import com.example.cosmosclient.R;
+import com.example.cosmosclient.app.Cosmos;
+import com.example.cosmosclient.entities.Group;
+import com.example.cosmosclient.resources.GroupsRest;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
+
+public class CreateGroupActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_make_group);
+
+ //各種IDを取得
+ final EditText groupNameText = findViewById(R.id.groupNameText);
+ Button createGroupButton = findViewById(R.id.createGroupButton);
+ final String uId,token;
+
+ //グループ作成に必要な情報の取得
+ Cosmos app = (Cosmos) getApplication();
+ uId = app.getuId();
+ ////サインアップでトークンが返ってきてないため一時コメントアウト
+ //token = app.getToken();
+ token="abcdef";
+
+ //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 createGroupService = retrofit.create(GroupsRest.class);
+
+ //グループ作成ボタン処理
+ createGroupButton.setOnClickListener(new View.OnClickListener(){
+ @Override
+ public void onClick(View view){
+ try {
+ Call createGroup = createGroupService.createGroup(groupNameText.getText().toString(), uId, token);
+
+ createGroup.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ //成功時
+ Group result = response.body();
+
+// //確認用
+// System.out.println(result.getgId());
+// System.out.println(result.getName());
+// System.out.println(result.getRequests());
+// System.out.println(result.getUri());
+
+ Toast.makeText(CreateGroupActivity.this,
+ "グループを作成しました", Toast.LENGTH_SHORT).show();
+ finish();
+ } else {
+ //onFailureでキャッチできない用のエラー
+ System.out.println("");
+ Toast.makeText(CreateGroupActivity.this,
+ "通信エラー",Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ //失敗時
+ t.printStackTrace();
+ Toast.makeText(CreateGroupActivity.this,
+ "グループ作成失敗",Toast.LENGTH_SHORT);
+ }
+ });
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java
index 2cbe6b6..7214bb7 100644
--- a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java
@@ -58,7 +58,7 @@
@Override
public void onClick(View v) {
//APIに値を送信
- Call call = signinService.loginList(UserIdText.getText().toString(), PasswordText.getText().toString());
+ Call call = signinService.login(UserIdText.getText().toString(), PasswordText.getText().toString());
//サーバからのレスポンス
call.enqueue(new Callback() {
@@ -71,7 +71,9 @@
//app/Cosmosに情報保存
Cosmos app = (Cosmos)getApplication();
app.setToken(result.token);
+ app.setuId(result.uId);
+ //画面遷移
Intent intent = new Intent(getApplication(), GroupListActivity.class);
startActivity(intent);
Toast.makeText(SigninActivity.this,
diff --git a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
index e130633..fe6d66f 100644
--- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
@@ -1,6 +1,8 @@
package com.example.cosmosclient.views;
+
import android.content.Intent;
+import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
@@ -8,12 +10,15 @@
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.ImageView;
import android.widget.Toast;
import com.example.cosmosclient.R;
import com.example.cosmosclient.app.Cosmos;
import com.example.cosmosclient.entities.SignupResponse;
import com.example.cosmosclient.resources.UsersRest;
+import com.theartofdev.edmodo.cropper.CropImage;
+import com.theartofdev.edmodo.cropper.CropImageView;
import retrofit2.Call;
@@ -27,6 +32,7 @@
private boolean pwEnable;
private boolean cpwEnable;
private Button MakeAccountButton;
+ private ImageView iconChoice;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -47,6 +53,8 @@
final EditText NameText = findViewById(R.id.NameText);
final EditText PasswordText = findViewById(R.id.PasswordText);
final EditText ConfirmPasswordText = findViewById(R.id.ConfirmPasswordText);
+ iconChoice = findViewById(R.id.choiceImage);
+
//
// //入力欄監視
// NameText.addTextChangedListener(new GenericTextWatcher(NameText));
@@ -57,14 +65,14 @@
// MakeAccountButton.setEnabled(false);
//Make Accountボタンの処理
- MakeAccountButton.setOnClickListener(new View.OnClickListener(){
+ MakeAccountButton.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View v){
+ public void onClick(View v) {
String pw = PasswordText.getText().toString();
String confirmPw = ConfirmPasswordText.getText().toString();
//パスワードと確認パスワードが一致していない際の処理
- if(!pw.equals(confirmPw)){
+ if (!pw.equals(confirmPw)) {
PasswordText.setError("入力されたパスワードが一致しません");
ConfirmPasswordText.setError("入力されたパスワードが一致しません");
return;
@@ -72,7 +80,7 @@
//API呼び出しのための値入力
Call call = signupService.createUser(NameText.getText().toString(),
- PasswordText.getText().toString(),"https://yumenavi.info/live/2018/photo/k/s015980019.jpg");
+ PasswordText.getText().toString(), "https://yumenavi.info/live/2018/photo/k/s015980019.jpg");
//サーバからデータ受け取り
call.enqueue(new Callback() {
@@ -82,8 +90,10 @@
if (response.isSuccessful()) {
SignupResponse result = response.body();
- Cosmos app = (Cosmos)getApplication();
+ //app/Cosmosに情報保存
+ Cosmos app = (Cosmos) getApplication();
app.setToken(result.token);
+ app.setuId(result.uId);
Intent intent = new Intent(getApplication(), GroupListActivity.class);
@@ -97,13 +107,13 @@
startActivity(intent);
Toast.makeText(SignupActivity.this,
- "アカウントを作成しました",Toast.LENGTH_SHORT);
+ "アカウントを作成しました", Toast.LENGTH_SHORT).show();
finish();
- }else{
+ } else {
//onFailureでキャッチできないエラー用
Toast.makeText(SignupActivity.this,
- "アカウント作成失敗",Toast.LENGTH_SHORT);
+ "通信エラー", Toast.LENGTH_SHORT).show();
}
}
@@ -112,21 +122,46 @@
public void onFailure(Call call, Throwable t) {
t.printStackTrace();
Toast.makeText(SignupActivity.this,
- "アカウント作成失敗",Toast.LENGTH_SHORT);
+ "アカウント作成失敗", Toast.LENGTH_SHORT).show();
}
});
}
});
//サインイン画面への遷移処理
- LoginButton.setOnClickListener(new View.OnClickListener(){
+ LoginButton.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View v){
- Intent intent = new Intent(getApplication(),SigninActivity.class);
+ public void onClick(View v) {
+ Intent intent = new Intent(getApplication(), SigninActivity.class);
startActivity(intent);
finish();
}
});
+
+ //アイコン選択
+ iconChoice.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ CropImage.activity()
+ .setAspectRatio(1,1)
+ .setGuidelines(CropImageView.Guidelines.ON)
+ .start(SignupActivity.this);
+ }
+ });
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ //トリミング後の処理
+ if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
+ CropImage.ActivityResult result = CropImage.getActivityResult(data);
+ if (resultCode == RESULT_OK) {
+ Uri resultUri = result.getUri();
+ iconChoice.setImageURI(resultUri);
+ } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
+ Exception error = result.getError();
+ }
+ }
}
//入力欄監視処理内容
@@ -171,7 +206,7 @@
if(nameEnable && pwEnable && cpwEnable){
MakeAccountButton.setEnabled(true);
}else{
- MakeAccountButton.setEnabled(false);
+ MakeAccountButton.setEnabled(false);
}
}
}
diff --git a/app/src/main/res/drawable/borderless_button.xml b/app/src/main/res/drawable/borderless_button.xml
index 7a4684f..a8b409b 100644
--- a/app/src/main/res/drawable/borderless_button.xml
+++ b/app/src/main/res/drawable/borderless_button.xml
@@ -1,14 +1,4 @@
- -
-
-
-
-
- -
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_make_group.xml b/app/src/main/res/layout/activity_make_group.xml
new file mode 100644
index 0000000..0762055
--- /dev/null
+++ b/app/src/main/res/layout/activity_make_group.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml
index 92cbdbe..bf45ed6 100644
--- a/app/src/main/res/layout/activity_signup.xml
+++ b/app/src/main/res/layout/activity_signup.xml
@@ -157,4 +157,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
\ No newline at end of file