選ばれたインスタンスに対応するキャラクターを表示するのを頑張る人のためのブランチ #24

Merged n-konishi merged 2 commits into nitta-lab-2018:master from nitta-lab-2018:選ばれたインスタンスに対応するキャラクターを表示するのを頑張る人のためのブランチ on 3 Jul 2018
Showing 13 changed files
View
.idea/caches/build_file_checksums.ser
Not supported
View
4
app/build.gradle
 
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'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
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'
 
}
View
62
app/src/main/AndroidManifest.xml
android:supportsRtl="true"
android:theme="@style/AppTheme">
 
<!--フラグメント画面遷移のやつ-->
<!--<activity android:name=".cactusClient.MainActivity"-->
<activity android:name=".cactusClient.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--end-->
 
<!--<activity android:name=".cactusClient.tests.SampleActivity"-->
<!--android:label="@string/app_name"-->
<!--android:screenOrientation="landscape">-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->
<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
<!--</activity>-->
 
<!--<activity-->
<!--android:name=".cactusClient.PlayerActivity"-->
<!--android:label="@string/app_name"-->
<!--android:screenOrientation="landscape">-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->
<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
<!--</activity>-->
<!--end-->
 
<activity android:name=".cactusClient.tests.SampleActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
 
<activity
android:name=".cactusClient.PlayerActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
 
</manifest>
View
69
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Account.java 0 → 100644
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;
}
}
View
28
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/AddressedEntity.java 100644 → 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;
}
}
View
12
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Entity.java 100644 → 0
package org.ntlab.radishforandroidstudio.cactusClient.models;
 
/**
* AddressedEntityクラスにて扱う実体を表す抽象クラス
* @author r-isitani
*
*/
 
public abstract class Entity {
 
}
View
29
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/RandomStringGenerator.java 0 → 100644
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<String> set) {
return set.contains(str);
}
 
static public String generateUniqueString(int num, String seed, Set<String> set) {
String str;
do {
str = generateRandomString(num, seed);
} while (checkString(str, set));
return str;
}
}
View
39
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedAccount.java 0 → 100644
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;
}
 
}
View
31
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/URIAddressedEntity.java 100644 → 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;
}
 
}
View
7
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/InstancesFragment.java
 
@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);
}
@Override
View
84
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/LoginFragment.java
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;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.ntlab.radishforandroidstudio.R;
import org.ntlab.radishforandroidstudio.cactusClient.connections.LoginFragmentConnection;
 
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;
 
public void onClick(View view) {
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();
// }
}
});
 
 
View
4
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/SignUpFragment.java
import android.widget.Toast;
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 {
private SignUpFragmentConnection connection;
connection.setCallBack(new CallBack() {
@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();
}
View
23
app/src/main/res/layout/instances_fragment.xml
android:layout_width="0dp"
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"></ListView>
app:layout_constraintTop_toBottomOf="@+id/instances"
app:layout_constraintVertical_bias="1.0"></ListView>
 
<TextView
android:id="@+id/instances"
android:layout_width="330dp"
android:layout_height="25dp"
android:text="インスタンス一覧"
app:layout_constraintBottom_toTopOf="@+id/list_view"
app:layout_constraintStart_toStartOf="@+id/list_view"
app:layout_constraintTop_toTopOf="parent" />
 
</android.support.constraint.ConstraintLayout>