diff --git a/app/src/main/java/com/example/nemophila/PostActivity.java b/app/src/main/java/com/example/nemophila/PostActivity.java index 8c6f58d..27dfeb1 100644 --- a/app/src/main/java/com/example/nemophila/PostActivity.java +++ b/app/src/main/java/com/example/nemophila/PostActivity.java @@ -8,6 +8,8 @@ import androidx.lifecycle.ViewModelProvider; import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.view.View; @@ -27,7 +29,17 @@ import com.example.nemophila.viewmodels.ShopsViewModel; import com.google.android.material.snackbar.Snackbar; +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.Base64; import java.util.List; @@ -63,14 +75,26 @@ postImages[1] = findViewById(R.id.imageView2); postImages[2] = findViewById(R.id.imageView3); - System.out.println(uriLists.get(0)); - for(int i = 0; i < 3 && i < uriLists.size(); i++){ postImages[i].setImageURI(uriLists.get(i)); deleteButtons[i].setVisibility(View.VISIBLE); - String s = new String(Base64.getEncoder().encode(uriLists.get(i).toString().getBytes())); - img[i] = s; +// System.out.println(uriLists.get(i)); + + try { + InputStream inputStream = getApplicationContext().getContentResolver().openInputStream(uriLists.get(i)); + Bitmap bitmap = BitmapFactory.decodeStream(new BufferedInputStream(inputStream)); + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); + byte[] byteArray = stream.toByteArray(); + String encoded = Base64.getEncoder().encodeToString(byteArray); +// System.out.println(encoded); +// System.out.println(encoded.length()); + img[i] = encoded; + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } } } @@ -229,11 +253,6 @@ }); - - - - //製作途中 - Button selectPictureButton = (Button)findViewById(R.id.selectpicturebutton); selectPictureButton.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { @@ -242,7 +261,7 @@ } }); -// 写真の削除ボタン +// 写真の削除ボタン 製作途中 deleteButtons[0]= (ImageButton) findViewById(R.id.deleteButton1); @@ -260,6 +279,7 @@ uriLists.set(0, null); // uriLists.remove(1); System.out.println("削除ボタン1"); +// if (postImages.length) for (int i = 0; i < postImages.length-1; i++){ postImages[i].setImageURI(uriLists.get(i+1)); // postImages[i].setImageURI(uriList.get(i)); @@ -268,6 +288,8 @@ uriLists.set(i+1, null); // postImages[i+1] = null; System.out.println(uriLists.get(i)); + } + for (int i = 0; i < postImages.length; i++){ if (uriLists.get(i) == null){ deleteButtons[i].setVisibility(View.INVISIBLE); } @@ -286,7 +308,9 @@ postImages[i].setImageURI(uriLists.get(i+1)); postImages[i+1].setImageURI(null); // postImages[i+1] = null; - if (uriLists.get(i)==null){ + } + for (int i = 0; i < postImages.length; i++){ + if (uriLists.get(i) == null){ deleteButtons[i].setVisibility(View.INVISIBLE); } } @@ -297,7 +321,6 @@ @Override public void onClick(View view) { postImages[2].setImageURI(null); - System.out.println("削除ボタン3"); deleteButtons[2].setVisibility(View.INVISIBLE); } @@ -317,8 +340,8 @@ //評価が未入力の時 - if(rate != 0 && genre != null) { - //評価とジャンル入力済の時 + if(rate != 0 && genre != null) { + //評価とジャンル入力済の時 if (shop == null) { shopsViewModel.createShop(shopName, nemophila.getCurrentLongitude(), nemophila.getCurrentLatitude()); } else { @@ -334,15 +357,15 @@ startActivity(intent); } }else if(rate == 0) { - //評価未入力 + //評価未入力 System.out.println("評価未設定クリック"); Snackbar.make(v, "評価を選択してください", Snackbar.LENGTH_SHORT).show(); // Intent intent = new Intent(getApplication(), ShopActivity.class); // startActivity(intent); }else if (genre == null){ - System.out.println("ジャンル未設定クリック"); - Snackbar.make(v, "ジャンルを選択してください", Snackbar.LENGTH_SHORT).show(); - } + System.out.println("ジャンル未設定クリック"); + Snackbar.make(v, "ジャンルを選択してください", Snackbar.LENGTH_SHORT).show(); + } } });