diff --git a/app/src/main/java/com/example/nemophila/PostActivity.java b/app/src/main/java/com/example/nemophila/PostActivity.java index 27dfeb1..e4233bd 100644 --- a/app/src/main/java/com/example/nemophila/PostActivity.java +++ b/app/src/main/java/com/example/nemophila/PostActivity.java @@ -19,6 +19,7 @@ import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; +import android.widget.RatingBar; import android.widget.Spinner; import android.widget.TextView; @@ -165,51 +166,11 @@ } }); - //評価を入力するためのプルダウン - ArrayAdapter rateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item); - rateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - - rateAdapter.add("評価を選択"); - rateAdapter.add("1"); - rateAdapter.add("2"); - rateAdapter.add("3"); - rateAdapter.add("4"); - rateAdapter.add("5"); - Spinner rateSpinner = (Spinner) findViewById(R.id.inputRate); - rateSpinner.setAdapter(rateAdapter); - - //プルダウンが変更されたら実行 - rateSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - - //レートプルダウンで選択が何もなかった時の動作 - @Override - public void onNothingSelected(AdapterView adapterView) {} - - //レートプルダウンで何か選択された時の動作 - @Override - public void onItemSelected(AdapterView adapterView, View view, int i, long l) { - String gettedRate = (String)rateSpinner.getSelectedItem(); - - //プルダウンで取得した評価をintに変換してrateに入れる - if(gettedRate != "評価を選択"){ - rate = Integer.parseInt(gettedRate); - //表示用にStringの星に変換 - String displayRate = ""; - for (int j = 0; j < 5; j++){ - if(rate > j ){ - displayRate += "★"; - }else{ - displayRate += "☆"; - } - } - TextView rateView = (TextView) findViewById(R.id.ratePostAc); - rateView.setText(displayRate); - }else if (gettedRate.equals("評価を選択")){ - rate = 0; - } -// System.out.println(gettedRate); -// System.out.println(rate); - } + //評価を入力するためのレーティングバー + RatingBar ratingBar = findViewById(R.id.ratingBar); + //評価が入力された時の処理 + ratingBar.setOnRatingBarChangeListener((inputRate,gettingrate,fromUser) -> { + rate = (int)gettingrate; }); ArrayAdapter genreAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item); diff --git a/app/src/main/java/com/example/nemophila/ShopActivity.java b/app/src/main/java/com/example/nemophila/ShopActivity.java index d9a9451..b0a0650 100644 --- a/app/src/main/java/com/example/nemophila/ShopActivity.java +++ b/app/src/main/java/com/example/nemophila/ShopActivity.java @@ -42,7 +42,6 @@ private ShopAcAdapter adapter = null; private final ExecutorService executor = Executors.newSingleThreadExecutor(); private final Handler handler = new Handler(); - private String iconUrlString; @Override protected void onCreate(Bundle savedInstanceState) { @@ -53,7 +52,6 @@ String shopName; String sid; String myUid = ((Nemophila)getApplication()).getUid(); - Bitmap iconBitmap; //NemophilaからcurrentShopを取得、店名の表示 shop = ((Nemophila)getApplication()).getCurrentShop(); @@ -80,6 +78,7 @@ } }); + //フレンドを取得 Collection friends = ((Nemophila)getApplication()).getFriends(); @@ -106,6 +105,7 @@ friendView.setText("選択中のフレンド:" + selectingFriendName); } + //RecyclerViewに表示する中身を格納するリストを宣言 List postsDataset = new ArrayList<>(); @@ -137,7 +137,7 @@ //postsDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット(重複しないように) postsDataset.clear(); - int postViewFrag; + boolean postViewFlag; for (Post post: ShopPosts){ //dataを宣言 dataに投稿の必要なデータをpostから受け取ってセットし、それをpostsDatasetに追加してリストを作る @@ -146,72 +146,57 @@ String genre = post.getGenre(); String uid = post.getUid(); - //投稿が自分もしくはフレンドのものかチェック - postViewFrag = 0; - if(uid.equals(myUid)) { - postViewFrag = 1; - }else { - for (AccountNameJson friendNJ : friends) { - if (uid.equals(friendNJ.getUid())) { - postViewFrag = 1; - } - } - } + //表示する投稿のみdataにセット(自分の投稿は必ず表示) + //選択が何もない場合は全ての投稿を、選択がある場合は一致する投稿をdataにセット + if (selectingGenre.isEmpty() || selectingGenre.contains(genre)) { + if (selectingFriend.isEmpty() || selectingFriend.contains(uid) || uid.equals(myUid)) { + data.setName(post.getName()); + data.setDate(post.getDate()); - //表示する投稿のみdataにセット - if(postViewFrag == 1) { - //選択が何もない場合は全ての投稿を、選択がある場合は一致する投稿をdataにセット - if (selectingGenre.isEmpty() || selectingGenre.contains(genre)) { - if (selectingFriend.isEmpty() || selectingFriend.contains(uid)) { - data.setName(post.getName()); - data.setDate(post.getDate()); - //アイコンをURLで取得、セット - - //rateはintで受け取った評価に対応した星の数のStringに変換してセット - int intRate = post.getRate(); - String strRate = ""; - for (int i = 0; i < 5; i++) { - if (intRate > i) { - strRate += "★"; - } else { - strRate += "☆"; - } + //rateはintで受け取った評価に対応した星の数のStringに変換してセット + int intRate = post.getRate(); + String strRate = ""; + for (int i = 0; i < 5; i++) { + if (intRate > i) { + strRate += "★"; + } else { + strRate += "☆"; } - data.setRate(strRate); - data.setGenre(genre); - data.setComment(post.getComment()); + } + data.setRate(strRate); + data.setGenre(genre); + data.setComment(post.getComment()); - //アイコン仮セット - //url作る - iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg"; + //アイコン仮セット + String iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg"; + //本来はuidからurl作る +// String iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/icon" + myUid + ".jpg"; + executor.execute(() -> { + try{ + URL iconUrl = new URL(iconUrlString); + HttpURLConnection con = (HttpURLConnection) iconUrl.openConnection(); + con.connect(); - executor.execute(() -> { - try{ - URL url = new URL(iconUrlString); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); - con.connect(); + InputStream is = con.getInputStream(); - InputStream is = con.getInputStream(); + Bitmap bitmap = BitmapFactory.decodeStream(is); + handler.post(() -> { + data.setIcon(bitmap); + adapter.notifyItemChanged(adapter.getPosition(data)); + }); + is.close(); + con.disconnect(); + }catch (Exception e){ + e.printStackTrace(); + } + }); - Bitmap bitmap = BitmapFactory.decodeStream(is); - handler.post(() -> { - data.setIcon(bitmap); - adapter.notifyItemChanged(adapter.getPosition(data)); - }); - is.close(); - con.disconnect(); - }catch (Exception e){ - e.printStackTrace(); - } - }); - - //画像がなければViewの表示をgoneに、あればvisibleにして画像をセット + //画像がなければViewの表示をgoneに、あればvisibleにして画像をセット // if(post.get) { // } - //投稿一つの情報がdataに全部セットされたらDatasetに追加 - postsDataset.add(0, data); - } + //投稿一つの情報がdataに全部セットされたらDatasetに追加 + postsDataset.add(0, data); } } } @@ -256,26 +241,6 @@ holder.genreView.setText(list.get(position).getGenre()); holder.commentView.setText(list.get(position).getComment()); holder.iconView.setImageBitmap(list.get(position).getIcon()); -// //アイコン仮セット -// executor.execute(() -> { -// try{ -// URL url = new URL(iconUrlString); -// HttpURLConnection con = (HttpURLConnection) url.openConnection(); -// con.connect(); -// -// InputStream is = con.getInputStream(); -// -// Bitmap bitmap = BitmapFactory.decodeStream(is); -// handler.post(() -> { -// ImageView imageView = findViewById(R.id.shopAcIconPic); -// imageView.setImageBitmap(bitmap); -// }); -// is.close(); -// con.disconnect(); -// }catch (Exception e){ -// e.printStackTrace(); -// } -// }); } @Override @@ -304,9 +269,9 @@ genreView = (TextView) itemView.findViewById(R.id.shopAcGenre); commentView = (TextView) itemView.findViewById(R.id.shopAcComment); iconView = (ImageView) itemView.findViewById(R.id.shopAcIconPic); -// image1View = (ImageView) itemView.findViewById(R.id.shopAcImage1); -// image2View = (ImageView) itemView.findViewById(R.id.shopAcImage2); -// image3View = (ImageView) itemView.findViewById(R.id.shopAcImage3); + image1View = (ImageView) itemView.findViewById(R.id.shopAcImage1); + image2View = (ImageView) itemView.findViewById(R.id.shopAcImage2); + image3View = (ImageView) itemView.findViewById(R.id.shopAcImage3); } } @@ -318,9 +283,9 @@ private String genre; private String comment; private Bitmap icon; - private String image1; - private String image2; - private String image3; + private Bitmap image1; + private Bitmap image2; + private Bitmap image3; public String getName() { return name; @@ -362,20 +327,20 @@ this.icon = icon; } -// public String getImage() { return image1; } -// public void setImage1(String image1) { -// this.image1 = image1; -// } -// -// public String getImage2() { return image2; } -// public void setImage2(String image2) { -// this.image2 = image2; -// } -// -// public String getImage3() { return image3; } -// public void setImage3(String image3) { -// this.image3 = image3; -// } + public Bitmap getImage1() { return image1; } + public void setImage1(Bitmap image1) { + this.image1 = image1; + } + + public Bitmap getImage2() { return image2; } + public void setImage2(Bitmap image2) { + this.image2 = image2; + } + + public Bitmap getImage3() { return image3; } + public void setImage3(Bitmap image3) { + this.image3 = image3; + } } diff --git a/app/src/main/res/layout/activity_post.xml b/app/src/main/res/layout/activity_post.xml index 2e6fd2c..339831e 100644 --- a/app/src/main/res/layout/activity_post.xml +++ b/app/src/main/res/layout/activity_post.xml @@ -6,6 +6,20 @@ android:layout_height="match_parent" tools:context=".PostActivity"> +