ログイン時のonResponseの部分のみVとCで分けた。
Signed-off-by: n-konishi <n.konishi18@gmail.com>
1 parent 28c685d commit d015ce21bc77b468a17c0c0d557ffdbce335b9dd
n-konishi authored on 11 Jan 2019
Showing 2 changed files
View
100
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/UserLoginController.java
package org.ntlab.radishforandroidstudio.cactusClient.controller;
 
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.widget.EditText;
 
import net.arnx.jsonic.JSON;
import net.arnx.jsonic.TypeReference;
 
import org.ntlab.radishforandroidstudio.R;
import org.ntlab.radishforandroidstudio.cactusClient.Cactus;
import org.ntlab.radishforandroidstudio.cactusClient.connections.LoginFragmentConnection;
import org.ntlab.radishforandroidstudio.cactusClient.models.account.Account;
import org.ntlab.radishforandroidstudio.cactusClient.models.account.URIAddressedAccount;
import org.ntlab.radishforandroidstudio.cactusClient.views.InstancesFragment;
import org.ntlab.radishforandroidstudio.framework.network.CallBack;
 
public class UserLoginController {
private LoginFragmentConnection connection;
private Cactus userCactus;
private String userID;
private String userPass;
private FragmentManager manager;
 
private String userId;
private String userPass;
private Cactus cactus;
private LoginFragmentConnection loginFragmentConnection;
public UserLoginController(Cactus cactus, EditText userName, EditText passWord, FragmentManager fragmentManager) {
connection = new LoginFragmentConnection();
this.userID = userName.getText().toString();
this.userPass = passWord.getText().toString();
this.userCactus = cactus;
this.manager = fragmentManager;
}
 
Account account;
private boolean isLogin=false;
 
public UserLoginController(Cactus cactus, EditText userName, EditText passWord) {
loginFragmentConnection = new LoginFragmentConnection();
this.userId = userName.getText().toString();
this.userPass = passWord.getText().toString();
this.cactus = cactus;
public void addFormParam() {
connection.addFormParam("userID", userID);
connection.addFormParam("userPass", userPass);
connection.doPut();
 
}
 
private void changeJson(String response) {
URIAddressedAccount lac = JSON.decode(response, new TypeReference<URIAddressedAccount>() {
});
// System.out.println(response);
Account user = lac.getAccount();
if (user.isLogin()) {
System.out.println("成功");
userCactus.setMyAccount(user);
userCactus.setAddressedAccount(lac);
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.fragment_place, new InstancesFragment());
transaction.commit();
} else {
System.out.println("失敗");
}
}
 
public void loginResponse() {
connection.setCallBack(new CallBack() {
@Override
public void onResponse(String response) {
changeJson(response);
 
}
});
}
}
 
 
public boolean login() {
// loginFragmentConnection = new LoginFragmentConnection();
loginFragmentConnection.setCallBack(new CallBack() {
@Override
public void onResponse(String response) {
//通信した時の処理を書くのだよ
URIAddressedAccount uriAddressedAccount = JSON.decode(response, new TypeReference<URIAddressedAccount>() {
});
account = uriAddressedAccount.getAccount();
 
if (account.isLogin()) {
cactus.setMyAccount(account);//Cactusにアカウントセット
cactus.setAddressedAccount(uriAddressedAccount);//Jsonから
System.out.println("ログインに成功しました。");
isLogin = true;
} else {
System.out.println("ログインに失敗しました。");
isLogin = false;
 
}
}
});
 
return isLogin;
}
 
public void addUserFormParam(){
loginFragmentConnection.addFormParam("userID", userId);
loginFragmentConnection.addFormParam("userPass", userPass);
loginFragmentConnection.doPut();
 
}
 
 
}
 
 
 
 
 
View
115
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/LoginFragment.java
import org.ntlab.radishforandroidstudio.cactusClient.controller.UserLoginController;
 
 
public class LoginFragment extends Fragment {
private Cactus cactus;
private UserLoginController userLoginController;
private EditText userName;
private EditText passWord;
private boolean isLogin = false;
 
// private LoginFragmentConnection connection;
// private Boolean testFlag = false; //trueにすると、通信せずにインスタンス画面へ遷移します。つまり、通信なしでテストするなら"true"にせい
 
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login_fragment, container, false);
// Inflate the layout for this fragment
FragmentManager manager = getFragmentManager();
 
//サインアップ画面に移動
Button button = (Button) view.findViewById(R.id.signUP1);
return inflater.inflate(R.layout.login_fragment, container, false);
}
 
 
public void changeFragment() {
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.fragment_place, new InstancesFragment());
transaction.commit();
 
}
 
@Override
public void onStart() {
super.onStart();
 
Button button = (Button) getActivity().findViewById(R.id.signUP1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//サインアップ画面に移動
//Toast.makeText(getActivity(), "hoge!", Toast.LENGTH_SHORT).show();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.addToBackStack(null);
transaction.replace(R.id.fragment_place, new SignUpFragment());
transaction.commit();
}
});
 
//ログイン処理
Button loginButton = (Button) view.findViewById(R.id.login);
Button loginButton = (Button) getActivity().findViewById(R.id.login);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userName = (EditText) getActivity().findViewById(R.id.inputUserName);
passWord = (EditText) getActivity().findViewById(R.id.checkPassword);
EditText userName = (EditText) getActivity().findViewById(R.id.inputUserName);
EditText passWord = (EditText) getActivity().findViewById(R.id.checkPassword);
 
// /****************************************************************
// if (testFlag) {
// FragmentManager manager = getFragmentManager();
// FragmentTransaction transaction = manager.beginTransaction();
// transaction.replace(R.id.fragment_place, new InstancesFragment());
// transaction.commit();
// return;
// }
// **********************************************************************/
 
 
if (userName.getText().toString().isEmpty()) {
Toast.makeText(getActivity(), "ユーザー名が未記入です", Toast.LENGTH_SHORT).show();
return;
Toast.makeText(getActivity(), "パスワードが未記入です", Toast.LENGTH_SHORT).show();
return;
}
 
 
//通信処理
cactus = (Cactus) getActivity().getApplication();
userLoginController = new UserLoginController(cactus, userName, passWord);
Cactus c = (Cactus) getActivity().getApplication();
FragmentManager manager = getFragmentManager();
UserLoginController userLoginController = new UserLoginController(c, userName, passWord, manager);
userLoginController.addFormParam();
userLoginController.loginResponse();
 
 
// userLoginController.login();
isLogin = userLoginController.login();
 
if (isLogin){
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.fragment_place, new InstancesFragment());
transaction.commit();
System.out.println("成功");
 
userLoginController.addUserFormParam();
 
}else{
System.out.println("失敗");
 
}
}
});
 
return view;
}
 
 
 
}