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 592ecd2..7f52b2b 100644 --- a/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java +++ b/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java @@ -55,7 +55,6 @@ ); //仮 //アカウントの色を返す - @FormUrlEncoded @GET("accounts/{account_id}/accountColor") Call getAccountColor( @Path("account_id") String account_id diff --git a/app/src/main/java/com/example/citrusclient/viewmodels/FavoritesViewModel.java b/app/src/main/java/com/example/citrusclient/viewmodels/FavoritesViewModel.java index 0ba119b..2812549 100644 --- a/app/src/main/java/com/example/citrusclient/viewmodels/FavoritesViewModel.java +++ b/app/src/main/java/com/example/citrusclient/viewmodels/FavoritesViewModel.java @@ -36,6 +36,7 @@ public MutableLiveData> getFavoritesBookIdLiveData(){return favoritesBookIdLiveData;} public MutableLiveData> getFavoritedAccountsLiveData(){return favoritedAccountsLiveData;} + //対応型変更 public void loadFavoritesBooks(String accountId, String token){ Call>> call = favoritesRest.getFavoritesBooks(accountId,token); call.enqueue(new Callback>>() { diff --git a/app/src/main/java/com/example/citrusclient/views/SettingsFragment.java b/app/src/main/java/com/example/citrusclient/views/SettingsFragment.java index d9d5500..901211e 100644 --- a/app/src/main/java/com/example/citrusclient/views/SettingsFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/SettingsFragment.java @@ -1,5 +1,6 @@ package com.example.citrusclient.views; +import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.Color; import android.os.Bundle; @@ -18,14 +19,18 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.CompoundButton; import android.widget.EditText; +import android.widget.Switch; import android.widget.TextView; import com.example.citrusclient.Citrus; import com.example.citrusclient.R; import com.example.citrusclient.models.Book; +import com.example.citrusclient.rest.AccountsRest; import com.example.citrusclient.viewmodels.SettingsViewModel; import com.example.citrusclient.viewmodels.TodosViewModel; +import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.util.ArrayList; import java.util.HashMap; @@ -71,6 +76,9 @@ SettingsViewModel settingsViewModel; + private String strAccountColor; //色 + + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -78,6 +86,7 @@ mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } + settingsViewModel = new ViewModelProvider(this).get(SettingsViewModel.class); } @Override @@ -87,72 +96,97 @@ return inflater.inflate(R.layout.fragment_settings, container, false); } - private String accountColor; //色 + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + Citrus citrus = (Citrus) (getActivity().getApplication()); String token = citrus.getToken(); String accountId = citrus.getAccountId(); - SettingsViewModel settingsViewModel = new ViewModelProvider(this).get(SettingsViewModel.class); + MutableLiveData accountColor = settingsViewModel.getAccountColorLiveData(); MutableLiveData error_changePw_LiveData = settingsViewModel.getError_changePw_LiveData(); MutableLiveData error_changeAccount_LiveData = settingsViewModel.getError_changeAccount_LiveData(); + MutableLiveData error_deleteAccount_LiveData = settingsViewModel.getError_deleteAccount_LiveData(); - //いいねした本の一覧を返すのに必要 -// -// RecyclerView recyclerView = view.findViewById(R.id.my_favorites_list); //いいねした本の一覧 -// recyclerView.setHasFixedSize(true); -// RecyclerView.LayoutManager layoutManager = new GridLayoutManager(view.getContext(), 2); //何列にするか -// recyclerView.setLayoutManager(layoutManager); -// SettingsAdapter settingsAdapter = new SettingsAdapter(, getActivity()); -// recyclerView.setAdapter(settingsAdapter); - error_changePw_LiveData.observe(getViewLifecycleOwner(), new Observer() { + //いいね一覧へ変異 + Button FavoriteButton = view.findViewById((R.id.goFavoriteList)); + FavoriteButton.setOnClickListener(v -> { + ((MainActivity) getActivity()).showFragment(new FavoritesBooksFragment()); + }); + + //観察部 + //色 + accountColor.observe(getViewLifecycleOwner(), new Observer() { @Override - public void onChanged(Integer error_changePw_LiveData) { - if (error_changePw_LiveData == 204) { - System.out.println("成功"); - } else if (error_changePw_LiveData == 404) { - System.out.println("失敗"); + public void onChanged(String strAccountcolor) { + if (strAccountcolor!=null){ + returnAccountColor(strAccountColor); } } }); + settingsViewModel.loadAccountColor(accountId); + //アカウント error_changeAccount_LiveData.observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(Integer error_changeAccount_LiveData) { if (error_changeAccount_LiveData == 204) { System.out.println("成功"); + TextView textNotes1 = (TextView) view.findViewById(R.id.textNotes1); + textNotes1.setText("アカウント名が変更されました"); + } else if (error_changeAccount_LiveData == 404) { System.out.println("失敗"); + TextView textNotes1 = (TextView) view.findViewById(R.id.textNotes1); + textNotes1.setText("アカウント名が変更されませんでした"); + } } }); - accountColor.observe(getViewLifecycleOwner(), new Observer() { + //パスワード変更 + error_changePw_LiveData.observe(getViewLifecycleOwner(), new Observer() { @Override - public void onChanged(String accountColor) { - if (accountColor != null) { - settingsViewModel.loadAccountColor(accountId); //accountの色を追加 + public void onChanged(Integer error_changePw_LiveData) { + if (error_changePw_LiveData == 204) { + System.out.println("成功"); + TextView textNotes2 = (TextView) view.findViewById(R.id.textNotes2); + textNotes2.setText("パスワードが変更されました"); + + } else if (error_changePw_LiveData == 404) { + System.out.println("失敗"); + TextView textNotes2 = (TextView) view.findViewById(R.id.textNotes2); + textNotes2.setText("パスワードが変更されました"); } } }); - //accountの色の変更 - - view.findViewById(R.id.icon).setOnClickListener(new View.OnClickListener() { + //アカウント削除 + error_deleteAccount_LiveData.observe(getViewLifecycleOwner(), new Observer() { @Override - public void onClick(View view) { - AccountColorDialogFragment accountColorDialogFragment = new AccountColorDialogFragment(SettingsFragment.this); - accountColorDialogFragment.show(getActivity().getSupportFragmentManager(), "simple2"); + public void onChanged(Integer integer) { + if (integer == 204){ + TextView textNotes3 = (TextView) view.findViewById(R.id.textNotes3); + textNotes3.setText("アカウントが削除されました"); + //画面遷移処理 + }else if(integer == 404){ + TextView textNotes3 = (TextView) view.findViewById(R.id.textNotes3); + textNotes3.setText("アカウントが削除されませんでした"); + } } }); + + + + //ユーザネーム変更 view.findViewById(R.id.UpdateName).setOnClickListener(new View.OnClickListener() { @Override @@ -166,11 +200,11 @@ TextView textNote1 = (TextView) view.findViewById(R.id.textNotes1); //ユーザネーム変更でパスワードやユーザーネームなどの入力が無かったら入力してと表示する - if (NowPassEditable == null) { //現在のパスワードの入力がなかったら + if (NowPassEditable.length() == 0) { //現在のパスワードの入力がなかったら System.out.println("現在のパスワードを正しく入力してください"); textNote1.setText("現在のパスワードを正しく入力してください!");//画面に表示 - } else if (NewIdEditable == null) { //新しいユーザーネームの入力が無かったら + } else if (NewIdEditable.length() == 0) { //新しいユーザーネームの入力が無かったら System.out.println("新しいユーザネームを正しく入力してください"); textNote1.setText("新しいユーザネームを正しく入力してください!"); //画面に表示 @@ -179,23 +213,25 @@ System.out.println(NewUsername); String nowpass = NowPassEditable.toString().trim(); + String newUsername = NewIdEditable.toString().trim(); //String nowpass = NowPass.getText().toString().trim(); //こっちでもよき - if (nowpass == null || nowpass.length() == 0) { //現在のパスワードの入力がなかったら + /* if (nowpass == null || nowpass.length() == 0) { //現在のパスワードの入力がなかったら System.out.println("現在のパスワードを正しく入力してください"); + textNote1.setText("現在のパスワードを正しく入力してください!"); } - String newUsername = NewIdEditable.toString().trim(); + // String newUsername = newUsername.getText().toString().trim(); //こっちでもよき if (newUsername == null || newUsername.length() == 0) { //新しいユーザネームの入力がなかったら System.out.println("新しいユーザネームを正しく入力してください"); + textNote1.setText("新しいユーザネームを正しく入力してください"); } - String accountId = ((Citrus) getActivity().getApplication()).getAccountId(); - String token = ((Citrus) getActivity().getApplication()).getToken(); + //String accountId = ((Citrus) getActivity().getApplication()).getAccountId(); + //String token = ((Citrus) getActivity().getApplication()).getToken(); + */ settingsViewModel.changeAccount(accountId, newUsername, nowpass, token); //SettingsViewModelを呼ぶ - - textNote1.setText("ユーザーネームの変更完了!"); } } }); @@ -214,11 +250,11 @@ TextView textNote2 = (TextView) view.findViewById(R.id.textNotes2); //パスワード変更で入力が足りないとき - if (NowPassEditable == null) { //現在のパスワードの入力がなかったら + if (NowPassEditable.length() == 0) { //現在のパスワードの入力がなかったら System.out.println("現在のパスワードを正しく入力してください"); textNote2.setText("現在のパスワードを正しく入力してください!");//画面に表示 - } else if (NewPassEditable == null) { //新しいパスワードの入力が無かったら + } else if (NewPassEditable.length() == 0) { //新しいパスワードの入力が無かったら System.out.println("新しいパスワードを正しく入力してください"); textNote2.setText("新しいパスワードを正しく入力してください!"); //画面に表示 @@ -227,8 +263,10 @@ System.out.println(NewPass); String nowpass = NowPassEditable.toString().trim(); + String newPassword = NewPassEditable.toString().trim(); + //String nowpass = NowPass.getText().toString().trim(); //こっちでもよき - if (nowpass == null || nowpass.length() == 0) { //現在のパスワードの入力がなかったら + /*if (nowpass == null || nowpass.length() == 0) { //現在のパスワードの入力がなかったら System.out.println("現在のパスワードを正しく入力してください"); return; } @@ -238,33 +276,67 @@ if (newPassword == null || newPassword.length() == 0) { //新しいユーザネームの入力がなかったら System.out.println("新しいパスワードを正しく入力してください"); return; - } + }*/ - String accountId = ((Citrus) getActivity().getApplication()).getAccountId(); - String token = ((Citrus) getActivity().getApplication()).getToken(); + //String accountId = ((Citrus) getActivity().getApplication()).getAccountId(); + //String token = ((Citrus) getActivity().getApplication()).getToken(); settingsViewModel.changePW(accountId, newPassword, nowpass, token); //SettingsViewModelを呼ぶ - - textNote2.setText("パスワードの変更完了!"); //画面に表示 } } }); + + + //アカウント削除 + view.findViewById(R.id.UpdatePass3).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + EditText enter_nowPassword = (EditText) view.findViewById(R.id.EnterNowPassword3); + Editable editable_nowPasswrd = enter_nowPassword.getText(); + + + TextView textNotes3 = (TextView) view.findViewById(R.id.textNotes3); + + if (editable_nowPasswrd.length() == 0){ + textNotes3.setText("現在のパスワードを入力してください"); + }else{ + String nowPassword = editable_nowPasswrd.toString().trim(); + settingsViewModel.deleteId(accountId, token, nowPassword); + } + } + }); // + //textLikes.setText(); + + //アイコンボタンが押されたら + view.findViewById(R.id.icon).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //フラグメント表示 + AccountColorDialogFragment accountColorDialogFragment = new AccountColorDialogFragment(SettingsFragment.this); + accountColorDialogFragment.show(getActivity().getSupportFragmentManager(), "simple2"); + + } + }); + + + } //accountの色を持ってくる public void returnAccountColor(String iconColor) { - accountColor = iconColor;//SettingsFragmentの変数accountColorに入る + strAccountColor = iconColor;//SettingsFragmentの変数accountColorに入る View view = getView(); // FragmentのView if (view != null) { Button iconButton = view.findViewById(R.id.icon); - int parsedColor = Color.parseColor(accountColor); + int parsedColor = Color.parseColor(strAccountColor); iconButton.setBackgroundTintList(ColorStateList.valueOf(parsedColor)); } + } }