diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/UserLoginController.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/UserLoginController.java index 7c9cb3f..e0a1d9a 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/UserLoginController.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/UserLoginController.java @@ -1,68 +1,76 @@ 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 String userId; + private LoginFragmentConnection connection; + private Cactus userCactus; + private String userID; private String userPass; - private Cactus cactus; - private LoginFragmentConnection loginFragmentConnection; + private FragmentManager manager; - Account account; - private boolean isLogin=false; - - public UserLoginController(Cactus cactus, EditText userName, EditText passWord) { - loginFragmentConnection = new LoginFragmentConnection(); - this.userId = userName.getText().toString(); + public UserLoginController(Cactus cactus, EditText userName, EditText passWord, FragmentManager fragmentManager) { + connection = new LoginFragmentConnection(); + this.userID = userName.getText().toString(); this.userPass = passWord.getText().toString(); - this.cactus = cactus; - + this.userCactus = cactus; + this.manager = fragmentManager; } + public void addFormParam() { + connection.addFormParam("userID", userID); + connection.addFormParam("userPass", userPass); + connection.doPut(); - public boolean login() { -// loginFragmentConnection = new LoginFragmentConnection(); - loginFragmentConnection.setCallBack(new CallBack() { + } + + private void changeJson(String response) { + URIAddressedAccount lac = JSON.decode(response, new TypeReference() { + }); +// 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) { - //通信した時の処理を書くのだよ - URIAddressedAccount uriAddressedAccount = JSON.decode(response, new TypeReference() { - }); - account = uriAddressedAccount.getAccount(); + changeJson(response); - 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(); - - } - - } + + + + + + + + + diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/LoginFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/LoginFragment.java index 28e30c2..db4df6b 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/LoginFragment.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/LoginFragment.java @@ -17,23 +17,35 @@ 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); @@ -41,14 +53,23 @@ 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(); @@ -58,34 +79,14 @@ 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; } - - - }