diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b5ad990..e83b75f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,7 +16,9 @@ - + diff --git a/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java b/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java index ad97c66..242c8f4 100644 --- a/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java @@ -5,6 +5,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; +import android.os.Handler; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; @@ -48,10 +49,18 @@ TextView groupName = findViewById(R.id.groupName); //メンバー追加ボタン処理 - FloatingActionButton fab = findViewById(R.id.addrequest_button); + final FloatingActionButton fab = findViewById(R.id.addrequest_button); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + //ボタン連打防止 + fab.setEnabled(false); + new Handler().postDelayed(new Runnable() { + public void run() { + fab.setEnabled(true); + } + }, 1000L); + startActivity(new Intent(MemberListActivity.this, AddMemberActivity.class)); finish(); diff --git a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java index 2a70436..b5b78ae 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java @@ -89,19 +89,25 @@ @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { - SigninResponse result = response.body(); + if(response.body() == null){ + //パスワードが違う際、アプリが落ちてしまうため + Toast.makeText(SigninActivity.this, + "パスワードが違います",Toast.LENGTH_LONG).show(); + }else{ + SigninResponse result = response.body(); - //app/Cosmosに情報保存 - Cosmos app = (Cosmos)getApplication(); - app.setToken(result.token); - app.setuId(UserIdText.getText().toString()); + //app/Cosmosに情報保存 + Cosmos app = (Cosmos) getApplication(); + app.setToken(result.token); + app.setuId(UserIdText.getText().toString()); - //画面遷移 - Intent intent = new Intent(getApplication(), GroupListActivity.class); - startActivity(intent); - Toast.makeText(SigninActivity.this, - "ログインしました", Toast.LENGTH_SHORT).show(); - finish(); + //画面遷移 + Intent intent = new Intent(getApplication(), GroupListActivity.class); + startActivity(intent); + Toast.makeText(SigninActivity.this, + "ログインしました", Toast.LENGTH_SHORT).show(); + finish(); + } }else{ //onFailureでキャッチできないエラーの処理 @@ -113,7 +119,7 @@ //失敗時 @Override public void onFailure(Call call, Throwable t) { - //t.printStackTrace(); + t.printStackTrace(); Toast.makeText(SigninActivity.this, "ユーザIDもしくはパスワードが間違っています",Toast.LENGTH_SHORT).show(); } diff --git a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java index 5770dcc..f6f3965 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java @@ -41,6 +41,7 @@ private Button MakeAccountButton; private ImageView iconChoice; private String iconImageBase64; + private int quality = 70; @Override protected void onCreate(Bundle savedInstanceState) { @@ -185,18 +186,21 @@ //画像をBase64に変換 ByteArrayOutputStream baos = new ByteArrayOutputStream(); Bitmap afterResizeBitmap = Bitmap.createScaledBitmap(image,50,50,true); - afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,70, baos); + afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,quality, baos); byte[] b = baos.toByteArray(); String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); - if(imageEncoded.length() <= 2000){ - iconChoice.setImageBitmap(image); - iconImageBase64 = imageEncoded; - }else{ - Toast.makeText(SignupActivity.this, - "この画像は使用できません。\n別の画像を選択してください。",Toast.LENGTH_LONG).show(); + while (imageEncoded.length() >2000){ + //文字数の2000文字以下になるまで圧縮率を上げて再度変換 + baos = new ByteArrayOutputStream(); + quality -=5; + afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,quality, baos); + b = baos.toByteArray(); + imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); } + iconChoice.setImageBitmap(image); + iconImageBase64 = imageEncoded; }catch(IOException e){ e.printStackTrace(); } diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index c0b617e..ea37005 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -44,7 +44,7 @@ android:layout_height="1dp" android:layout_marginStart="8dp" android:layout_marginLeft="50dp" - android:layout_marginTop="32dp" + android:layout_marginTop="24dp" android:layout_marginEnd="8dp" android:layout_marginRight="50dp" android:background="@android:color/darker_gray" @@ -59,7 +59,7 @@ android:layout_height="28dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" - android:layout_marginTop="18dp" + android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:background="#FFFFFF" @@ -77,15 +77,15 @@ android:layout_height="66dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" - android:layout_marginTop="16dp" + android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" - android:textAllCaps="false" android:text="@string/make_account" + android:textAllCaps="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.445" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/ConfirmPasswordText" /> + app:layout_constraintTop_toBottomOf="@+id/choiceImage" /> + + \ No newline at end of file