diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 7d8e794..0e9093e 100644 --- a/.idea/caches/build_file_checksums.ser +++ b/.idea/caches/build_file_checksums.ser Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 8d58ebc..e97b488 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,7 +30,7 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support.constraint:constraint-layout:1.1.1' + implementation 'com.android.support.constraint:constraint-layout:1.1.0' implementation 'com.android.support:support-v4:27.1.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' @@ -38,4 +38,6 @@ implementation group: 'net.arnx', name: 'jsonic', version: '1.3.10' implementation 'com.android.support:cardview-v7:27.1.1' implementation 'com.google.android.gms:play-services-maps:15.0.1' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' + } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e9f8039..698b143 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,17 +22,7 @@ android:theme="@style/AppTheme"> - - - - - - - - - - - @@ -40,16 +30,26 @@ + - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Account.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Account.java new file mode 100644 index 0000000..8fe2513 --- /dev/null +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Account.java @@ -0,0 +1,68 @@ +package org.ntlab.radishforandroidstudio.cactusClient.models; + +import net.arnx.jsonic.JSONHint; + +public class Account { + private String id, name, token, pass, uniqueID; + private boolean login = false; + + public Account(String userID, String userName, String userPass, String uniqueID) { + setId(userID); + setName(userName); + setPass(userPass); + setUniqueID(uniqueID); + formToken(); + login = true; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @JSONHint(ignore=true) + public String getPass() { + return pass; + } + + public void setPass(String pass) { + this.pass = pass; + } + + public boolean isLogin() { + return login; + } + + public void setLogin(boolean login) { + this.login = login; + } + + public String getToken() { + return token; + } + + public String formToken() { + token = RandomStringGenerator.generateRandomString(64, RandomStringGenerator.ALPHA_NUMERIC); + return token; + } + + @JSONHint(ignore=true) + public String getUniqueID() { + return uniqueID; + } + + public void setUniqueID(String uniqueID) { + this.uniqueID = uniqueID; + } +} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/AddressedEntity.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/AddressedEntity.java deleted file mode 100644 index 15154d7..0000000 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/AddressedEntity.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.ntlab.radishforandroidstudio.cactusClient.models; - -/** - * 各リソースをPOSTで作成した際に, 当該リソースの実体とURIを呼び出し元に返すときに用いるクラス - * @author r-isitani - * - */ - -public abstract class AddressedEntity { - private Entity body; - - protected AddressedEntity() { - // JSONDecode時の呼び出し用 - } - - public AddressedEntity(Entity body) { - setBody(body); - } - - public Entity getBody() { - return body; - } - - public void setBody(Entity body) { - this.body = body; - } -} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Entity.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Entity.java deleted file mode 100644 index f0997b9..0000000 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Entity.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.ntlab.radishforandroidstudio.cactusClient.models; - -/** - * AddressedEntityクラスにて扱う実体を表す抽象クラス - * @author r-isitani - * - */ - -public abstract class Entity { - -} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/RandomStringGenerator.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/RandomStringGenerator.java new file mode 100644 index 0000000..6796d1d --- /dev/null +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/RandomStringGenerator.java @@ -0,0 +1,29 @@ +package org.ntlab.radishforandroidstudio.cactusClient.models; + +import java.util.Set; + +import org.apache.commons.lang3.RandomStringUtils; + +public class RandomStringGenerator { + public static final String ALPHA_NUMERIC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + + private RandomStringGenerator() { + + } + + static public String generateRandomString(int num, String seed) { + return RandomStringUtils.random(num, seed); + } + + static public boolean checkString(String str, Set set) { + return set.contains(str); + } + + static public String generateUniqueString(int num, String seed, Set set) { + String str; + do { + str = generateRandomString(num, seed); + } while (checkString(str, set)); + return str; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedAccount.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedAccount.java new file mode 100644 index 0000000..634ccaf --- /dev/null +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedAccount.java @@ -0,0 +1,39 @@ +package org.ntlab.radishforandroidstudio.cactusClient.models; + +import java.net.URI; + +public class URIAddressedAccount{ + private URI uri; + private Account account; + + private URIAddressedAccount() { + // JSONDecode時の呼び出し用 + } + + public URIAddressedAccount(URI uri, Account body) { + setAccount(body); + setUri(uri); + } + + public URIAddressedAccount(String str, Account body) { + setAccount(body); + setUri(URI.create(str)); + } + + public URI getUri() { + return uri; + } + + public void setUri(URI uri) { + this.uri = uri; + } + + public Account getAccount() { + return account; + } + + public void setAccount(Account account) { + this.account = account; + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedEntity.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedEntity.java deleted file mode 100644 index fddd54d..0000000 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ntlab.radishforandroidstudio.cactusClient.models; - -import java.net.URI; - -public class URIAddressedEntity extends AddressedEntity { - private URI uri; - - private URIAddressedEntity() { - // JSONDecode時の呼び出し用 - } - - public URIAddressedEntity(URI uri, Entity body) { - super(body); - setUri(uri); - } - - public URIAddressedEntity(String str, Entity body) { - super(body); - setUri(URI.create(str)); - } - - public URI getUri() { - return uri; - } - - public void setUri(URI uri) { - this.uri = uri; - } - -} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/InstancesFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/InstancesFragment.java index 30dd729..9aabc51 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/InstancesFragment.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/InstancesFragment.java @@ -25,6 +25,13 @@ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + + + //このあたりで、サーバーと通信して、インスタンスの情報をとってくる + //............................................................... + // + + // Inflate the layout for this fragment return inflater.inflate(R.layout.instances_fragment, container, false); } 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 ab3373a..93f93d4 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 @@ -1,7 +1,5 @@ package org.ntlab.radishforandroidstudio.cactusClient.views; - -import android.accounts.Account; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; @@ -11,16 +9,9 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; -import android.widget.Toast; - -import net.arnx.jsonic.JSON; - import org.ntlab.radishforandroidstudio.R; -import org.ntlab.radishforandroidstudio.cactusClient.Cactus; import org.ntlab.radishforandroidstudio.cactusClient.connections.LoginFragmentConnection; -import org.ntlab.radishforandroidstudio.cactusClient.views.InstancesFragment; -import org.ntlab.radishforandroidstudio.cactusClient.models.URIAddressedEntity; -import org.ntlab.radishforandroidstudio.framework.network.CallBack; + public class LoginFragment extends Fragment { private LoginFragmentConnection connection; @@ -60,48 +51,48 @@ EditText userName = (EditText)getActivity().findViewById(R.id.inputUserName); EditText passWord = (EditText)getActivity().findViewById(R.id.checkPassword); - /**************************************************************** - テストするなら以下を実行するとパスの入力をしなくても画面遷移します +// /**************************************************************** +// テストするなら以下を実行するとパスの入力をしなくても画面遷移します FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.fragment_place, new InstancesFragment()); transaction.commit(); - **********************************************************************/ +// **********************************************************************/ - - if (userName.getText().toString().isEmpty()) { - Toast.makeText(getActivity(), "ユーザー名が未記入です", Toast.LENGTH_SHORT).show(); - } else if(passWord.getText().toString().isEmpty()){ - Toast.makeText(getActivity(), "パスワードが未記入です", Toast.LENGTH_SHORT).show(); - } else { - - connection = new LoginFragmentConnection(); - connection.setCallBack(new CallBack() { - @Override - public void onResponse(String response) { - //通信した時の処理を書くのだよ - URIAddressedEntity lac = JSON.decode(response, URIAddressedEntity.class); - System.out.println("///////////////////////////////////////////////"); - System.out.println(response); - - if(response.contains("\"login\":true,")){ - Toast.makeText(getActivity(),"ログインに成功しました。", Toast.LENGTH_SHORT).show(); - FragmentManager manager = getFragmentManager(); - FragmentTransaction transaction = manager.beginTransaction(); - transaction.replace(R.id.fragment_place, new InstancesFragment()); - transaction.commit(); - }else { - Toast.makeText(getActivity(),"ログインに失敗しました。", Toast.LENGTH_SHORT).show(); - } - - } - }); - connection.addFormParam("userID", userName.getText().toString()); - connection.addFormParam("userPass", passWord.getText().toString()); - connection.doPut(); - } +// +// if (userName.getText().toString().isEmpty()) { +// Toast.makeText(getActivity(), "ユーザー名が未記入です", Toast.LENGTH_SHORT).show(); +// } else if(passWord.getText().toString().isEmpty()){ +// Toast.makeText(getActivity(), "パスワードが未記入です", Toast.LENGTH_SHORT).show(); +// } else { +// +// connection = new LoginFragmentConnection(); +// connection.setCallBack(new CallBack() { +// @Override +// public void onResponse(String response) { +// //通信した時の処理を書くのだよ +// URIAddressedEntity lac = JSON.decode(response, URIAddressedEntity.class); +// System.out.println("///////////////////////////////////////////////"); +// System.out.println(response); +// +// if(response.contains("\"login\":true,")){ +// Toast.makeText(getActivity(),"ログインに成功しました。", Toast.LENGTH_SHORT).show(); +// FragmentManager manager = getFragmentManager(); +// FragmentTransaction transaction = manager.beginTransaction(); +// transaction.replace(R.id.fragment_place, new InstancesFragment()); +// transaction.commit(); +// }else { +// Toast.makeText(getActivity(),"ログインに失敗しました。", Toast.LENGTH_SHORT).show(); +// } +// +// } +// }); +// connection.addFormParam("userID", userName.getText().toString()); +// connection.addFormParam("userPass", passWord.getText().toString()); +// connection.doPut(); +// } } }); diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/SignUpFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/SignUpFragment.java index 4506291..57064dc 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/SignUpFragment.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/SignUpFragment.java @@ -13,7 +13,7 @@ import net.arnx.jsonic.JSON; import org.ntlab.radishforandroidstudio.R; import org.ntlab.radishforandroidstudio.cactusClient.connections.SignUpFragmentConnection; -import org.ntlab.radishforandroidstudio.cactusClient.models.URIAddressedEntity; +import org.ntlab.radishforandroidstudio.cactusClient.models.URIAddressedAccount; import org.ntlab.radishforandroidstudio.framework.network.CallBack; public class SignUpFragment extends Fragment { @@ -78,7 +78,7 @@ @Override public void onResponse(String response) { //通信した時の処理を書くのだよ - URIAddressedEntity ac = JSON.decode(response, URIAddressedEntity.class); + URIAddressedAccount ac = JSON.decode(response, URIAddressedAccount.class); System.out.println(ac.getUri()); System.out.println(response); Toast.makeText(getActivity(),response, Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/res/layout/instances_fragment.xml b/app/src/main/res/layout/instances_fragment.xml index bc2ac30..633c39a 100644 --- a/app/src/main/res/layout/instances_fragment.xml +++ b/app/src/main/res/layout/instances_fragment.xml @@ -12,7 +12,18 @@ android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toBottomOf="@+id/instances" + app:layout_constraintVertical_bias="1.0"> + + \ No newline at end of file