diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0be2f1f..679b1a3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,8 +4,11 @@
package="com.example.cosmosclient">
+
+
-
+ tools:replace="screenOrientation">
+
+
-
-
+
+
+
call = signinService.loginList(NameText.getText().toString(), PasswordText.getText().toString());
+
+ //サーバからのレスポンス
+ call.enqueue(new Callback() {
+ //成功時
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ SigninResponse result = response.body();
+ Intent intent = new Intent(getApplication(), GroupList.class);
+ //intent.putExtra("UserInfomation",result);
+ Toast.makeText(SigninActivity.this,
+ "ログインしました", Toast.LENGTH_SHORT).show();
+
+ startActivity(intent);
+ finish();
+
+ }else{
+ //onFailureでキャッチできないエラーの処理
+ Toast.makeText(SigninActivity.this,
+ "通信エラー",Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ //失敗時
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ //t.printStackTrace();
+ Toast.makeText(SigninActivity.this,
+ "ユーザIDもしくはパスワードが間違っています",Toast.LENGTH_SHORT).show();
+ }
+
+ });
}
});
@@ -42,5 +100,53 @@
finish();
}
});
+
+ //パスワード再登録画面への遷移処理
+ ForgotPasswordButton.setOnClickListener(new View.OnClickListener(){
+ @Override
+ public void onClick(View v){
+ Intent intent = new Intent(getApplication(), ForgotPasswordActivity.class);
+ startActivity(intent);
+ //finish();
+ }
+ });
+ }
+ private class GenericTextWatcher implements TextWatcher{
+ private View view;
+
+ private GenericTextWatcher(View view){
+ this.view = view;
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count,int after){/*記述不要*/};
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count){/*記述不要*/};
+
+ @Override
+ public void afterTextChanged(Editable s){
+ switch(view.getId()) {
+ case R.id.NameText:
+ if (s.length() > 0) {
+ uIdEnable = true;
+ } else {
+ uIdEnable = false;
+ }
+ break;
+ case R.id.PasswordText:
+ if(s.length()>0){
+ pwEnable=true;
+ }else{
+ pwEnable=false;
+ }
+ break;
+ }
+ //ボタン有効&無効
+ if(uIdEnable && pwEnable ){
+ SigninButton.setEnabled(true);
+ }else{
+ SigninButton.setEnabled(false);
+ }
+ }
}
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/SigninResponse.java b/app/src/main/java/com/example/cosmosclient/views/SigninResponse.java
new file mode 100644
index 0000000..c47556d
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/views/SigninResponse.java
@@ -0,0 +1,5 @@
+package com.example.cosmosclient.views;
+
+public class SigninResponse {
+ public String token;
+}
diff --git a/app/src/main/java/com/example/cosmosclient/views/SigninService.java b/app/src/main/java/com/example/cosmosclient/views/SigninService.java
new file mode 100644
index 0000000..84dcb18
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/views/SigninService.java
@@ -0,0 +1,11 @@
+package com.example.cosmosclient.views;
+
+import retrofit2.Call;
+import retrofit2.http.POST;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+
+public interface SigninService {
+ @POST("users/{uId}/login")
+ Call loginList(@Path("uId") String uId, @Query("pw") String pw);
+}
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 c738fa8..b3cffe2 100644
--- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
@@ -3,33 +3,111 @@
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.Toast;
import com.example.cosmosclient.R;
-public class SignupActivity extends AppCompatActivity {
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
+
+public class SignupActivity extends AppCompatActivity{
+// public static final String UserInfomation="com.example.cosmosclient.views";
+ private boolean nameEnable;
+ private boolean pwEnable;
+ private boolean cpwEnable;
+ private Button MakeAccountButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
+ //retrofitの処理
+ final Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+ //interfaceから実装を取得
+ final SignupService signupService = retrofit.create(SignupService.class);
+
//各種idを取得
Button LoginButton = findViewById(R.id.LoginButton);
- Button MakeAccountButton = findViewById(R.id.MakeAccountButton);
- EditText EmailAddressText = findViewById(R.id.EMailAddressText);
- EditText PasswordText = findViewById(R.id.PasswordText);
- EditText ConfirmPasswordText = findViewById(R.id.ConfirmPasswordText);
+ MakeAccountButton = findViewById(R.id.MakeAccountButton);
+ final EditText NameText = findViewById(R.id.NameText);
+ final EditText PasswordText = findViewById(R.id.PasswordText);
+ final EditText ConfirmPasswordText = findViewById(R.id.ConfirmPasswordText);
+
+ //入力欄監視
+ NameText.addTextChangedListener(new GenericTextWatcher(NameText));
+ PasswordText.addTextChangedListener(new GenericTextWatcher(PasswordText));
+ ConfirmPasswordText.addTextChangedListener(new GenericTextWatcher(ConfirmPasswordText));
+
+ //アカウント登録ボタン無効化
+ MakeAccountButton.setEnabled(false);
//Make Accountボタンの処理
MakeAccountButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
- Intent intent = new Intent(getApplication(), GroupList.class);
- startActivity(intent);
- finish();
+ String pw = PasswordText.getText().toString();
+ String confirmPw = ConfirmPasswordText.getText().toString();
+
+ //パスワードと確認パスワードが一致していない際の処理
+ if(!pw.equals(confirmPw)){
+ PasswordText.setError("入力されたパスワードが一致しません");
+ ConfirmPasswordText.setError("入力されたパスワードが一致しません");
+ return;
+ }
+
+ //API呼び出しのための値入力
+ Call call = signupService.createUser(NameText.getText().toString(),
+ PasswordText.getText().toString(),"https://yumenavi.info/live/2018/photo/k/s015980019.jpg");
+
+ //サーバからデータ受け取り
+ call.enqueue(new Callback() {
+ //成功時
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ SignupResponse result = response.body();
+ Intent intent = new Intent(getApplication(), GroupList.class);
+ //intent.putExtra("UserInfomation",result);
+
+ //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);
+
+ startActivity(intent);
+ finish();
+
+ }else{
+ //onFailureでキャッチできないエラー用
+ Toast.makeText(SignupActivity.this,
+ "アカウント作成失敗",Toast.LENGTH_SHORT);
+ }
+ }
+
+ //失敗時
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ t.printStackTrace();
+ Toast.makeText(SignupActivity.this,
+ "アカウント作成失敗",Toast.LENGTH_SHORT);
+ }
+ });
}
});
@@ -42,6 +120,53 @@
finish();
}
});
-
}
+
+ //入力欄監視処理内容
+ private class GenericTextWatcher implements TextWatcher{
+ private View view;
+
+ private GenericTextWatcher(View view){
+ this.view = view;
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count,int after){/*記述不要*/};
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count){/*記述不要*/};
+
+ @Override
+ public void afterTextChanged(Editable s){
+ switch(view.getId()) {
+ case R.id.NameText:
+ if (s.length() > 0) {
+ nameEnable = true;
+ } else {
+ nameEnable = false;
+ }
+ break;
+ case R.id.PasswordText:
+ if(s.length()>0){
+ pwEnable=true;
+ }else{
+ pwEnable=false;
+ }
+ break;
+ case R.id.ConfirmPasswordText:
+ if(s.length()>0){
+ cpwEnable=true;
+ }else{
+ cpwEnable=false;
+ }
+ break;
+ }
+ //ボタン有効&無効
+ if(nameEnable && pwEnable && cpwEnable){
+ MakeAccountButton.setEnabled(true);
+ }else{
+ MakeAccountButton.setEnabled(false);
+ }
+ }
+ }
+
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/SignupResponse.java b/app/src/main/java/com/example/cosmosclient/views/SignupResponse.java
new file mode 100644
index 0000000..963dfce
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/views/SignupResponse.java
@@ -0,0 +1,15 @@
+package com.example.cosmosclient.views;
+
+import java.util.List;
+
+public class SignupResponse {
+ public String uId;
+ public String name;
+ public String pw;
+ public String uri;
+ public List token;
+ public String iconUri;
+ public boolean login;
+
+
+}
diff --git a/app/src/main/java/com/example/cosmosclient/views/SignupService.java b/app/src/main/java/com/example/cosmosclient/views/SignupService.java
new file mode 100644
index 0000000..2ac3075
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/views/SignupService.java
@@ -0,0 +1,12 @@
+package com.example.cosmosclient.views;
+
+import retrofit2.Call;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.POST;
+
+public interface SignupService {
+ @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/res/drawable/white.png b/app/src/main/res/drawable/white.png
deleted file mode 100644
index 15f8d06..0000000
--- a/app/src/main/res/drawable/white.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/layout/activity_forgot_password.xml b/app/src/main/res/layout/activity_forgot_password.xml
new file mode 100644
index 0000000..e5b5ac9
--- /dev/null
+++ b/app/src/main/res/layout/activity_forgot_password.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_signin.xml b/app/src/main/res/layout/activity_signin.xml
index 7416c05..94e7a79 100644
--- a/app/src/main/res/layout/activity_signin.xml
+++ b/app/src/main/res/layout/activity_signin.xml
@@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="#FFFFFF"
tools:context=".views.SigninActivity">
+ app:layout_constraintTop_toBottomOf="@+id/NameText" />
-
+
\ 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 3088668..92cbdbe 100644
--- a/app/src/main/res/layout/activity_signup.xml
+++ b/app/src/main/res/layout/activity_signup.xml
@@ -4,16 +4,17 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="#FFFFFF"
tools:context=".views.SignupActivity">
+ app:layout_constraintTop_toBottomOf="@+id/NameText" />
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6e835f1..7794610 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,17 +1,17 @@
CosmosClient
or
- E-MAIL ADDRESS
- PASSWORD
- CONFIRM PASSWORD
- Sign Up
- Already have a account?
- Login
- Make Account
- Sign in
- Don\'t have an account?
- Forgot Password?
- Sign up Now
+ ユーザー名
+ パスワード
+ パスワードの確認
+ 新規登録
+ アカウントをすでにお持ちですか?
+ ログイン
+ アカウント作成
+ サインイン
+ アカウントをお持ちではない場合
+ パスワードを忘れた場合
+ 新規登録
AddMemberActivity
RequestListActivity
GroupListActivity
diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml
new file mode 100644
index 0000000..e51fa8c
--- /dev/null
+++ b/app/src/main/res/xml/network_security_config.xml
@@ -0,0 +1,6 @@
+
+
+
+ nitta-lab-www.is.konan-u.ac.jp
+
+
\ No newline at end of file