diff --git a/app/src/main/java/com/example/citrusclient/Citrus.java b/app/src/main/java/com/example/citrusclient/Citrus.java index 07637ce..c9bd0fc 100644 --- a/app/src/main/java/com/example/citrusclient/Citrus.java +++ b/app/src/main/java/com/example/citrusclient/Citrus.java @@ -13,6 +13,7 @@ private Integer curDay; private String curLookingAccountId; private Integer curLookingBookId; + private String accountColor; //getter public String getToken(){ return token; @@ -26,7 +27,7 @@ public Integer getCurDay(){return curDay;} public String getCurLookingAccountId(){return curLookingAccountId;} public Integer getCurLookingBookId(){return curLookingBookId;} - + public String getAccountColor(){return accountColor;} //setter public void setToken(String token){ this.token = token; @@ -40,4 +41,5 @@ public void setCurDay(Integer curDay){this.curDay = curDay;} public void setCurLookingAccountId(String curLookingAccountId){this.curLookingAccountId = curLookingAccountId;} public void setCurLookingBookId(Integer curLookingBookId){this.curLookingBookId = curLookingBookId;} + public void setAccountColor(String accountColor){this.accountColor = accountColor;} } diff --git a/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java b/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java index 0941f37..007d4ea 100644 --- a/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java +++ b/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java @@ -1,10 +1,14 @@ package com.example.citrusclient.rest; +import dalvik.annotation.optimization.FastNative; import retrofit2.Call; +import retrofit2.http.DELETE; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.POST; +import retrofit2.http.PUT; import retrofit2.http.Path; +import retrofit2.http.Query; public interface AccountsRest { @@ -27,4 +31,44 @@ @Path("account_id") String account_id, @Field("password") String password ); + + //仮 + //パスワード変更 + @FormUrlEncoded + @PUT("accounts/{account_id}/password") + Call changePW( + @Path("account_id") String account_id, + @Field("new_password") String new_password, + @Field("old_password") String old_password, + @Field("token") String token + ); + + //仮 + //アカウント削除 + @FormUrlEncoded + @DELETE("accounts/{account_id}") + Call deleteId( + @Path("account_id") String account_id, + @Query("token") String token, + @Query("password") String password + ); + + //仮 + //アカウントカラー変更 + @FormUrlEncoded + @PUT("accounts/{account_id}/accountColor") + Call changeColor( + @Path("account_id") String account_id, + @Field("accountColor") String accountColor, + @Field("token") String token + ); + + @FormUrlEncoded + @PUT("accounts/{account_id") + Call changeAccount( + @Path("account_id") String account_id, + @Field("new_account_id") String new_account_id, + @Field("old_password") String old_password, + @Field("token") String token + ); } diff --git a/app/src/main/java/com/example/citrusclient/viewmodels/SettingsViewModel.java b/app/src/main/java/com/example/citrusclient/viewmodels/SettingsViewModel.java new file mode 100644 index 0000000..022b6ef --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/viewmodels/SettingsViewModel.java @@ -0,0 +1,116 @@ +package com.example.citrusclient.viewmodels; + +import com.example.citrusclient.Citrus; +import com.example.citrusclient.rest.AccountsRest; + +import androidx.lifecycle.ViewModel; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class SettingsViewModel extends ViewModel { + private final Retrofit retrofit; + private final AccountsRest accountsRest; + + private Citrus citrus; + + public SettingsViewModel(){ + retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/citrus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + this.accountsRest = retrofit.create(AccountsRest.class); + } + + //なんちゃって通信ver1 + //PW変更時のサーバ通信プログラム + public void changePW(String accountId, String old_password, String new_password,String token){ + Call call = accountsRest.changePW(accountId,old_password,new_password,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("success"); + //成功処理 + } else { + System.out.println("fail"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("NetWorkError"+t); + } + }); + } + //通信ver2 + //アカウント削除 + public void deleteId(String accountId, String token, String password){ + Call call =accountsRest.deleteId(accountId,token,password); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if(response.isSuccessful()){ + System.out.println("success"); + //成功処理 + }else{ + System.out.println("fail"); + //もしコンソール表記をするならこの下に処理を記載 + } + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("NetWorkError"+t); + //もしコンソール表記をするならこの下に処理を記載 + } + }); + } + + //通信Ver3 + //色変更 + public void changeColor(String accountId,String accountColor, String token){ + Call call =accountsRest.changeColor(accountId,accountColor,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if(response.isSuccessful()){ + System.out.println("success"); + citrus.setAccountColor(accountColor); + }else{ + System.out.println("fail"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("NetWorkError"+t); + } + }); + } + + //通信Ver4 + //アカウント名変更 + public void changeAccount(String accountId,String accountColor, String token){ + Call call =accountsRest.changeColor(accountId,accountColor,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if(response.isSuccessful()){ + System.out.println("success"); + citrus.setAccountId(accountColor); + }else{ + System.out.println("fail"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + System.out.println("NetWorkError"+t); + } + }); + } + +} diff --git a/app/src/main/java/com/example/citrusclient/views/SignUpActivity.java b/app/src/main/java/com/example/citrusclient/views/SignUpActivity.java index 4b492b3..926957b 100644 --- a/app/src/main/java/com/example/citrusclient/views/SignUpActivity.java +++ b/app/src/main/java/com/example/citrusclient/views/SignUpActivity.java @@ -66,7 +66,6 @@ this.accountsRest = retrofit.create(AccountsRest.class); - findViewById(R.id.button_signup).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -103,6 +102,7 @@ String token = response.body(); citrus.setToken(token); citrus.setAccountId(id); + citrus.setAccountColor("#D5D5D5"); //画面遷移 handler.post(new Runnable() {