diff --git a/app/build.gradle b/app/build.gradle index dbf7c23..4260cab 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,4 +32,7 @@ //QRコードリーダー implementation 'com.journeyapps:zxing-android-embedded:3.6.0' implementation 'com.android.support:design:28.0.0' + //cropView + implementation 'com.oginotihiro:cropview:1.0.0' + api 'com.theartofdev.edmodo:android-image-cropper:2.7.+' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9655dc5..344af85 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,7 +4,9 @@ package="com.example.cosmosclient"> - + + + + + + + + + \ No newline at end of file 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 e130633..5e1223a 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java @@ -1,19 +1,27 @@ package com.example.cosmosclient.views; +import android.annotation.SuppressLint; import android.content.Intent; +import android.graphics.Bitmap; +import android.media.Image; +import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; import android.widget.Toast; import com.example.cosmosclient.R; import com.example.cosmosclient.app.Cosmos; import com.example.cosmosclient.entities.SignupResponse; import com.example.cosmosclient.resources.UsersRest; +import com.theartofdev.edmodo.cropper.CropImage; +import com.theartofdev.edmodo.cropper.CropImageView; import retrofit2.Call; @@ -27,6 +35,9 @@ private boolean pwEnable; private boolean cpwEnable; private Button MakeAccountButton; + private ImageView iconChoice; + private static final int REQUEST_GALLERY = 1000; + private static final int REQUEST_CROP = 1001; @Override protected void onCreate(Bundle savedInstanceState) { @@ -47,6 +58,8 @@ final EditText NameText = findViewById(R.id.NameText); final EditText PasswordText = findViewById(R.id.PasswordText); final EditText ConfirmPasswordText = findViewById(R.id.ConfirmPasswordText); + iconChoice = findViewById(R.id.choiceImage); + // // //入力欄監視 // NameText.addTextChangedListener(new GenericTextWatcher(NameText)); @@ -57,14 +70,14 @@ // MakeAccountButton.setEnabled(false); //Make Accountボタンの処理 - MakeAccountButton.setOnClickListener(new View.OnClickListener(){ + MakeAccountButton.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v){ + public void onClick(View v) { String pw = PasswordText.getText().toString(); String confirmPw = ConfirmPasswordText.getText().toString(); //パスワードと確認パスワードが一致していない際の処理 - if(!pw.equals(confirmPw)){ + if (!pw.equals(confirmPw)) { PasswordText.setError("入力されたパスワードが一致しません"); ConfirmPasswordText.setError("入力されたパスワードが一致しません"); return; @@ -72,7 +85,7 @@ //API呼び出しのための値入力 Call call = signupService.createUser(NameText.getText().toString(), - PasswordText.getText().toString(),"https://yumenavi.info/live/2018/photo/k/s015980019.jpg"); + PasswordText.getText().toString(), "https://yumenavi.info/live/2018/photo/k/s015980019.jpg"); //サーバからデータ受け取り call.enqueue(new Callback() { @@ -82,7 +95,7 @@ if (response.isSuccessful()) { SignupResponse result = response.body(); - Cosmos app = (Cosmos)getApplication(); + Cosmos app = (Cosmos) getApplication(); app.setToken(result.token); Intent intent = new Intent(getApplication(), GroupListActivity.class); @@ -97,13 +110,13 @@ startActivity(intent); Toast.makeText(SignupActivity.this, - "アカウントを作成しました",Toast.LENGTH_SHORT); + "アカウントを作成しました", Toast.LENGTH_SHORT); finish(); - }else{ + } else { //onFailureでキャッチできないエラー用 Toast.makeText(SignupActivity.this, - "アカウント作成失敗",Toast.LENGTH_SHORT); + "アカウント作成失敗", Toast.LENGTH_SHORT); } } @@ -112,21 +125,95 @@ public void onFailure(Call call, Throwable t) { t.printStackTrace(); Toast.makeText(SignupActivity.this, - "アカウント作成失敗",Toast.LENGTH_SHORT); + "アカウント作成失敗", Toast.LENGTH_SHORT); } }); } }); //サインイン画面への遷移処理 - LoginButton.setOnClickListener(new View.OnClickListener(){ + LoginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v){ - Intent intent = new Intent(getApplication(),SigninActivity.class); + public void onClick(View v) { + Intent intent = new Intent(getApplication(), SigninActivity.class); startActivity(intent); finish(); } }); + + //アイコン選択 + iconChoice.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +// Intent intent = new Intent(); +// intent.setType("image/*"); +// intent.setAction(Intent.ACTION_GET_CONTENT); +// startActivityForResult(intent, REQUEST_GALLERY); + CropImage.activity() + .setAspectRatio(1,1) + .setGuidelines(CropImageView.Guidelines.ON) + .start(SignupActivity.this); + + + } + }); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// +// //アルバムの結果をここで受け、oginotihiroへ渡します。 +// if (requestCode == REQUEST_GALLERY && resultCode == RESULT_OK) { +// try { +// //アルバムで選ばれたファイル(original_uri)を取得して、oginotihiroへ渡します +// Uri original_uri = data.getData(); +// Intent intent = new Intent(this, oginotihiro.class); +// intent.putExtra("original_uri",original_uri.toString()); +// startActivityForResult(intent, REQUEST_CROP); +// } catch (Exception e) { +// } +// } +// +// //oginotihiroからの結果(saved_uri)をここで受けとります。 +// if (requestCode == REQUEST_CROP && resultCode == RESULT_OK) { +// Bundle bundle = data.getExtras(); +// Uri saved_uri = (Uri)bundle.get("saved_uri"); +// //saved_uriが、クロップされた写真の保存先のパスになります。 +// Log.d("saved_uri",saved_uri+""); +// +// iconChoice.setImageURI(saved_uri); +//// } +// switch (requestCode) { +// case REQUEST_GALLERY: +// if (resultCode != RESULT_OK) return; +// Uri uri = data.getData(); // 選ばれた写真のUri +// Intent intent = new Intent("com.android.camera.action.CROP"); +// intent.setData(uri); +// intent.putExtra("outputX", 200); +// intent.putExtra("outputY", 200); +// intent.putExtra("aspectX", 1); +// intent.putExtra("aspectY", 1); +// intent.putExtra("scale", true); +// intent.putExtra("return-data", true); +// startActivityForResult(intent, REQUEST_CROP); +// break; +// case REQUEST_CROP: +// if (resultCode != RESULT_OK) return; +// Bitmap bitmap = data.getExtras().getParcelable("data"); +// iconChoice.setImageBitmap(bitmap); +// //Bitmap bitmap = data.getExtras().getParcelable("data"); +// } + if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { + CropImage.ActivityResult result = CropImage.getActivityResult(data); + if (resultCode == RESULT_OK) { + Uri resultUri = result.getUri(); + iconChoice.setImageURI(resultUri); + } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { + Exception error = result.getError(); + } + } + + } //入力欄監視処理内容 diff --git a/app/src/main/res/drawable/borderless_button.xml b/app/src/main/res/drawable/borderless_button.xml index 7a4684f..a8b409b 100644 --- a/app/src/main/res/drawable/borderless_button.xml +++ b/app/src/main/res/drawable/borderless_button.xml @@ -1,14 +1,4 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index 92cbdbe..bf45ed6 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -157,4 +157,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file