diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 63e623f..91e56cf 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 1adffca..f0ab070 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -50,11 +50,14 @@
+
+
+
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b682eed..b7692a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,8 +39,7 @@
-
+ android:label="@string/app_name">
@@ -51,8 +50,7 @@
-
+ android:label="@string/app_name">
@@ -63,7 +61,7 @@
+ android:label="@string/app_name">
@@ -75,8 +73,7 @@
-
+ android:label="@string/app_name">
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..2468795
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java
index 13ca487..ffd1b1c 100644
--- a/app/src/main/java/com/example/nemophila/FriendActivity.java
+++ b/app/src/main/java/com/example/nemophila/FriendActivity.java
@@ -13,9 +13,12 @@
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.os.Bundle;
+import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
@@ -34,18 +37,28 @@
import com.example.nemophila.viewmodels.AccountViewModel;
import com.example.nemophila.viewmodels.FriendViewModel;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
public class FriendActivity extends AppCompatActivity {
private Nemophila nemophila;
- FriendViewModel friendViewModel;
- String uid;
- String token;
- String requestingId;
- String requestingName;
- String searchingId;
+ private FriendViewModel friendViewModel;
+ private String uid;
+ private String token;
+ private String requestingId;
+ private String requestingName;
+ private String searchingId;
+ private final ExecutorService executor = Executors.newSingleThreadExecutor();
+ private final Handler handler = new Handler();
+ private String friendIconUrlString;
+ private String requestingIconUrlString;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -56,11 +69,11 @@
RecyclerView friendRecyclerView = findViewById(R.id.friendsList);
LinearLayout requestingConstraintLayout = findViewById(R.id.requestingLayout);
+ // フレンド一覧と申請先一覧の画面切り替え
showFriend.setOnClickListener(v2 -> {
friendRecyclerView.setVisibility(View.VISIBLE);
requestingConstraintLayout.setVisibility(View.INVISIBLE);
});
-
showRequesting.setOnClickListener(v3 -> {
friendRecyclerView.setVisibility(View.INVISIBLE);
requestingConstraintLayout.setVisibility(View.VISIBLE);
@@ -71,7 +84,8 @@
RecyclerView rv = findViewById(R.id.friendsList); // recyclerViewを取得
friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); // ViewModelを取得
nemophila = (Nemophila) this.getApplication();
-
+ uid = nemophila.getUid(); // 自身のidを取得
+ token = nemophila.getToken(); // 自身のtokenを取得
//一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言
LinearLayoutManager llm = new LinearLayoutManager(this);
@@ -83,8 +97,6 @@
rv.setHasFixedSize(true);
rv.setLayoutManager(llm);
- uid = nemophila.getUid(); // 自身のidを取得
- token = nemophila.getToken(); // 自身のtokenを取得
// getFriendsの通信が呼び出されて、フレンドの一覧をfriendsDatasetに格納し、Adapterにセットする
FriendActivityAdapter adapter = new FriendActivityAdapter(friendsDataset) {
@Override
@@ -126,6 +138,28 @@
FriendDataModel data = new FriendDataModel();
data.setName(friend.getName());
data.setId(friend.getUid());
+
+ //url作る
+ friendIconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ executor.execute(() -> {
+ try{
+ URL url = new URL(friendIconUrlString);
+ HttpURLConnection con = (HttpURLConnection) url.openConnection();
+ con.connect();
+
+ 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();
+ }
+ });
friendsDataset.add(data);
}
@@ -181,7 +215,6 @@
}
});
-
//RecyclerView(表示の設定、直接表示するところはLivedataを購読しているonChanged内に)
List requestingDataList = new ArrayList<>();
@@ -236,6 +269,28 @@
data.setName(user.getName());
data.setId(user.getUid());
+ //url作る
+ requestingIconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ executor.execute(() -> {
+ try{
+ URL url = new URL(requestingIconUrlString);
+ HttpURLConnection con = (HttpURLConnection) url.openConnection();
+ con.connect();
+
+ InputStream is = con.getInputStream();
+
+ Bitmap bitmap = BitmapFactory.decodeStream(is);
+ handler.post(() -> {
+ data.setIcon(bitmap);
+ adapter_r.notifyItemChanged(adapter_r.getPosition(data));
+ });
+ is.close();
+ con.disconnect();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ });
+
//投稿一つの情報がdataに全部セットされたらDatasetに追加
requestingDataList.add(0, data);
}
@@ -260,6 +315,10 @@
this.friendData = friendData;
}
+ public int getPosition(FriendDataModel d) {
+ return friendData.indexOf(d);
+ }
+
public void setList(List friendData) {
this.friendData = friendData;
}
@@ -298,6 +357,7 @@
public void onBindViewHolder(@NonNull FriendsViewHolder holder, int position) {
// 後からアイコンの登録をできるようにする
holder.nameView.setText(friendData.get(position).getName());
+ holder.iconView.setImageBitmap(friendData.get(position).getIcon());
if (nemophila.getFavoriteFriends().contains(friendData.get(position).getId())) {
holder.favorite.setVisibility(View.VISIBLE);
}
@@ -333,6 +393,7 @@
public static class FriendDataModel {
private String name;
private String id;
+ private Bitmap icon;
public String getName() {
return name;
@@ -340,11 +401,13 @@
public String getId() {
return id;
}
+ public Bitmap getIcon() { return icon; }
public void setName(String name) {
this.name = name;
}
public void setId(String id) { this.id = id;}
+ public void setIcon(Bitmap icon){ this.icon = icon; }
}
// ----------- RequestingのRecyclerView用の内部クラス ------------//
@@ -357,6 +420,8 @@
this.list =list;
}
+ public int getPosition(RequestingDataModel d) { return list.indexOf(d); }
+
public void setList(List list) {
this.list = list;
}
@@ -384,6 +449,7 @@
@Override
public void onBindViewHolder(@NonNull FriendActivity.RequestingViewHolder holder, int position) {
holder.nameView.setText(list.get(position).getName());
+ holder.iconView.setImageBitmap(list.get(position).getIcon());
}
@Override
@@ -414,6 +480,7 @@
public static class RequestingDataModel {
private String name;
private String id;
+ private Bitmap icon;
public String getName() {
return name;
@@ -421,6 +488,7 @@
public String getId() {
return id;
}
+ public Bitmap getIcon() { return icon; }
public void setName(String name) {
this.name = name;
@@ -428,6 +496,7 @@
public void setId(String id){
this.id = id;
}
+ public void setIcon(Bitmap icon) { this.icon = icon; }
}
//ダイアログでOKを押した時に呼び出される フレンド申請を送るメソッド
diff --git a/app/src/main/java/com/example/nemophila/LoginActivity.java b/app/src/main/java/com/example/nemophila/LoginActivity.java
index 2366fbf..c724040 100644
--- a/app/src/main/java/com/example/nemophila/LoginActivity.java
+++ b/app/src/main/java/com/example/nemophila/LoginActivity.java
@@ -40,10 +40,6 @@
nemophila = (Nemophila) this.getApplication();
//Nemophilaにtokenとuidがある場合ログイン画面をスキップ
if ((nemophila.getUid() != null) && (nemophila.getToken() != null)){
- //座標指定(仮)
- nemophila.setCameraLatitude(defaultLat);
- nemophila.setCameraLongitude(defaultLong);
- nemophila.setZoom(defaultZoom);
Intent intent = new Intent(LoginActivity.this,MapsActivity.class);
startActivity(intent);
diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java
index ce1422c..7376a4d 100644
--- a/app/src/main/java/com/example/nemophila/MapsFragment.java
+++ b/app/src/main/java/com/example/nemophila/MapsFragment.java
@@ -204,20 +204,20 @@
nemophila.setCameraLongitude(mMap.getCameraPosition().target.longitude);
nemophila.setZoom(mMap.getCameraPosition().zoom);
//Shopの描画範囲を指定
- shopsViewModel.setViewArea(nemophila.getCameraLongitude() + 1, nemophila.getCameraLatitude() + 1, nemophila.getCameraLongitude() - 1, nemophila.getCameraLatitude() - 1);
+ shopsViewModel.setViewArea(nemophila.getCameraLongitude() + 7.5, nemophila.getCameraLatitude() + 7.5, nemophila.getCameraLongitude() - 7.5, nemophila.getCameraLatitude() - 7.5);
});
// test用 座標を確認するため
// タップした時のリスナーをセット
-// mMap.setOnMapClickListener(tapLocation -> {
-// // map(ピン以外)をtapされた位置の緯度経度を取得
-// tapLatlng = new LatLng(tapLocation.latitude, tapLocation.longitude);
-// Toast.makeText(getActivity(),
-// String.format("%s", tapLatlng),
-// Toast.LENGTH_SHORT)
-// .show();
-// });
+ mMap.setOnMapClickListener(tapLocation -> {
+ // map(ピン以外)をtapされた位置の緯度経度を取得
+ tapLatlng = new LatLng(tapLocation.latitude, tapLocation.longitude);
+ Toast.makeText(getActivity(),
+ String.format("%s", tapLatlng),
+ Toast.LENGTH_SHORT)
+ .show();
+ });
//長押し時に店を作成し、その座標にピンを立てる
diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java
index c6ef3de..acfdcd4 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java
@@ -1,5 +1,8 @@
package com.example.nemophila;
+import androidx.activity.result.ActivityResultCallback;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
@@ -10,23 +13,44 @@
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.nemophila.entities.Post;
import com.example.nemophila.viewmodels.AccountViewModel;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import static android.os.AsyncTask.execute;
public class MyPageActivity extends AppCompatActivity {
+ private final ExecutorService executor = Executors.newSingleThreadExecutor();
+ private final Handler handler = new Handler();
+ private String iconUrlString;
+ private ImageView icon;
+
//MyPageActivity画面の作成
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -43,6 +67,11 @@
TextView id = (TextView) findViewById(R.id.id);
id.setText(uid);
+ //アイコンを表示する
+ icon = findViewById(R.id.icon);
+ iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/icon"+uid+".jpg";;
+ setIcon(icon);
+
// 「閉じる」ボタンを押したときにメイン画面へ遷移する
Button closeButton = (Button) findViewById(R.id.close);
closeButton.setOnClickListener(new View.OnClickListener() {
@@ -154,6 +183,28 @@
});
}
+ // アイコンに画像を設定
+ private void setIcon(ImageView iv) {
+ 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(() -> iv.setImageBitmap(bitmap));
+ is.close();
+ con.disconnect();
+ }catch (Exception e){
+ e.printStackTrace();
+ iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ setIcon(iv);
+ }
+ });
+ }
+
/* ここからMyPageActivityの内部クラス */
// Adapter
diff --git a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
index 458568c..cf6713f 100644
--- a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
@@ -27,6 +27,9 @@
import com.example.nemophila.entities.Account;
import com.example.nemophila.viewmodels.AccountViewModel;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
@@ -45,15 +48,25 @@
private ExecutorService executor;
private Handler handler;
private String iconUrlString;
-
+ private boolean iconFlag;
//マイページ編集画面の作成
private ActivityResultLauncher launcher = registerForActivityResult(new ActivityResultContracts.OpenDocument(), new ActivityResultCallback() {
@Override
public void onActivityResult(Uri uri) {
if(uri == null)return;
- icon = new String(Base64.getEncoder().encode(uri.toString().getBytes()));
ImageButton changeIconButton = findViewById(R.id.changeIconButton);
changeIconButton.setImageURI(uri);
+ try {
+ InputStream inputStream = getApplicationContext().getContentResolver().openInputStream(uri);
+ Bitmap bitmap = BitmapFactory.decodeStream(new BufferedInputStream(inputStream));
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
+ byte[] byteArray = stream.toByteArray();
+ icon = Base64.getEncoder().encodeToString(byteArray);
+ iconFlag = true;
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
}
});
@@ -70,7 +83,8 @@
iconButton = findViewById(R.id.changeIconButton);
executor = Executors.newSingleThreadExecutor();
handler = new Handler();
- iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/icon"+uid+".jpg";
+ iconFlag = false;
// アカウントのアイコンを表示
setIcon(iconButton);
@@ -84,7 +98,16 @@
launcher.launch(new String[] {"image/*"});
}
});
-
+ Button changeDefaultButton = findViewById(R.id.changeDefaultButton);
+ changeDefaultButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ icon = null;
+ iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ setIcon(iconButton);
+ iconFlag = true;
+ }
+ });
//変更確定ボタンを押した場合の動き
Button changeDecisionButton = findViewById(R.id.changeConfirm);
changeDecisionButton.setOnClickListener(new View.OnClickListener() {
@@ -107,8 +130,8 @@
accountViewModel.changePw(uid, oldPw, newPw, token);
}
// アイコンが入力されているとき通信を行う
- if(icon != null){
- accountViewModel.changeIcon(uid, icon, token);
+ if(iconFlag){
+ accountViewModel.changeIcon(uid, icon, token);
}
}
@@ -214,6 +237,8 @@
con.disconnect();
}catch (Exception e){
e.printStackTrace();
+ iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ setIcon(iv);
}
});
}
diff --git a/app/src/main/java/com/example/nemophila/PostActivity.java b/app/src/main/java/com/example/nemophila/PostActivity.java
index 5289c59..7155c23 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;
@@ -144,49 +145,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;
- }
- }
+ //評価を入力するためのレーティングバー
+ 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/RequestedActivity.java b/app/src/main/java/com/example/nemophila/RequestedActivity.java
index 6a1ef91..1ef29da 100644
--- a/app/src/main/java/com/example/nemophila/RequestedActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestedActivity.java
@@ -11,11 +11,15 @@
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.os.Bundle;
+import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -23,11 +27,21 @@
import com.example.nemophila.entities.AccountNameJson;
import com.example.nemophila.viewmodels.FriendViewModel;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
public class RequestedActivity extends AppCompatActivity {
+
+ private final ExecutorService executor = Executors.newSingleThreadExecutor();
+ private final Handler handler = new Handler();
+ private String IconUrlString;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -105,10 +119,33 @@
data.setId(acj.getUid());
data.setName(acj.getName());
requestedDataSet.add(data);
+
+ IconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
+ 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(() -> {
+ data.setIcon(bitmap);
+ adapter.notifyItemChanged(adapter.getPosition(data));
+ });
+ is.close();
+ con.disconnect();
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ });
}
adapter.setList(requestedDataSet);
rv.setAdapter(adapter);
}
+
+
});
}
@@ -121,6 +158,7 @@
public void setList(List list) {
this.list = list;
}
+ public int getPosition(RequestedActivity.RequestedUserModel d) { return list.indexOf(d); }
@NonNull
@Override
@@ -150,6 +188,7 @@
@Override
public void onBindViewHolder(@NonNull RequestedViewHolder holder, int position) {
holder.nameView.setText(list.get(position).getName());
+ holder.iconView.setImageBitmap(list.get(position).getIcon());
}
@Override
@@ -166,12 +205,14 @@
public TextView nameView;
public Button okButton;
public Button noButton;
+ public ImageView iconView;
public RequestedViewHolder(@NonNull View view) {
super(view);
nameView = (TextView) view.findViewById(R.id.textView3);
okButton = view.findViewById(R.id.okButton);
noButton = view.findViewById(R.id.noButton);
+ iconView = view.findViewById(R.id.imageView);
}
}
@@ -179,6 +220,7 @@
public static class RequestedUserModel {
private String name;
private String id;
+ private Bitmap icon;
public String getName() {
return name;
@@ -186,10 +228,16 @@
public String getId() {
return id;
}
+ public Bitmap getIcon() {
+ return icon;
+ }
public void setName(String name) {
this.name = name;
}
public void setId(String id) { this.id = id;}
+ public void setIcon(Bitmap icon) {
+ this.icon = icon;
+ }
}
}
\ No newline at end of file
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/java/com/example/nemophila/SignUpActivity.java b/app/src/main/java/com/example/nemophila/SignUpActivity.java
index 4296898..0cba923 100644
--- a/app/src/main/java/com/example/nemophila/SignUpActivity.java
+++ b/app/src/main/java/com/example/nemophila/SignUpActivity.java
@@ -27,9 +27,9 @@
private Nemophila nemophila;
//座標指定
- private double defaultLat = 34.74;
- private double defaultLong = 135.26;
- private float defaultZoom = 15f;
+ private double defaultLat = 38.74;
+ private double defaultLong = 137.26;
+ private float defaultZoom = 5f;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -41,10 +41,6 @@
//Nemophilaにtokenとuidがある場合サインアップ画面をスキップ
if ((nemophila.getUid() != null) && (nemophila.getToken() != null)){
- //座標指定(仮)
- nemophila.setCameraLatitude(defaultLat);
- nemophila.setCameraLongitude(defaultLong);
- nemophila.setZoom(defaultZoom);
Intent intent = new Intent(SignUpActivity.this,MapsActivity.class);
startActivity(intent);
diff --git a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
index 83ab4a8..95768e1 100644
--- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
@@ -19,8 +19,6 @@
import retrofit2.http.Path;
public interface AccountsRest {
- @GET("accounts")
- Call getAccounts();
@FormUrlEncoded
@POST("accounts")
@@ -69,7 +67,7 @@
@PUT("accounts/{uid}/icon")
Call changeIcon(
@Path("uid") String uid,
- @Field("name") String icon,
+ @Field("icon") String icon,
@Field("token") String token
);
diff --git a/app/src/main/java/com/example/nemophila/resources/FriendsRest.java b/app/src/main/java/com/example/nemophila/resources/FriendsRest.java
index 85c6305..a5a4d22 100644
--- a/app/src/main/java/com/example/nemophila/resources/FriendsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/FriendsRest.java
@@ -69,5 +69,4 @@
@Path("requested_id") String requested_id,
@Field("token") String token
);
-
}
diff --git a/app/src/main/java/com/example/nemophila/resources/ShopsRest.java b/app/src/main/java/com/example/nemophila/resources/ShopsRest.java
index c781f22..ec79553 100644
--- a/app/src/main/java/com/example/nemophila/resources/ShopsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/ShopsRest.java
@@ -34,24 +34,4 @@
@Field("longitude") double longitude,
@Field("latitude") double latitude
);
-
- @GET("shops/{sid}")
- Call getShop(
- @Path("sid") String sid
- );
-
- @GET("shops/{sid}/posts")
- Call getPosts(
- @Path("sid") String sid
- );
-
- @FormUrlEncoded
- @POST("shops/{sid}/posts/{uid}/{pid}")
- Call deletePost(
- @Path("sid") String sid,
-
- @Path("uid") String uid,
- @Path("pid") String pid,
- @Field("token") String token
- );
}
diff --git a/app/src/main/res/drawable-v24/nemophila_icon.jpg b/app/src/main/res/drawable-v24/nemophila_icon.jpg
new file mode 100644
index 0000000..55926d3
--- /dev/null
+++ b/app/src/main/res/drawable-v24/nemophila_icon.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
index 07d5da9..ca3826a 100644
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -1,170 +1,74 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_post.xml b/app/src/main/res/layout/activity_post.xml
index 2e6fd2c..f829316 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">
+
+
-
+ app:layout_constraintTop_toBottomOf="@+id/shopNamePoatAc"
+ app:layout_constraintVertical_bias="0.342" />
-
+ app:layout_constraintVertical_bias="0.284" />
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_requested_activity.xml b/app/src/main/res/layout/layout_requested_activity.xml
index e7ea1b0..6a7a0ac 100644
--- a/app/src/main/res/layout/layout_requested_activity.xml
+++ b/app/src/main/res/layout/layout_requested_activity.xml
@@ -9,14 +9,15 @@
diff --git a/app/src/main/res/layout/layout_shop_activity_posts.xml b/app/src/main/res/layout/layout_shop_activity_posts.xml
index 4465951..5e4d9f1 100644
--- a/app/src/main/res/layout/layout_shop_activity_posts.xml
+++ b/app/src/main/res/layout/layout_shop_activity_posts.xml
@@ -11,21 +11,21 @@
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index eca70cf..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..9510d23
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78..0000000
--- a/app/src/main/res/mipmap-hdpi/ic_launcher.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..9a0cf75
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..bcfb429
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d..0000000
--- a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..6808b9c
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d6..0000000
--- a/app/src/main/res/mipmap-mdpi/ic_launcher.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..7b028bd
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..6597192
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611d..0000000
--- a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..f5ed4db
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a307..0000000
--- a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..b36fcc7
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..c6fd750
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a695..0000000
--- a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..8ed3d08
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77..0000000
--- a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..c12f449
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..27a3f8e
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f50..0000000
--- a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..6702843
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d642..0000000
--- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..70926dc
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..d5957ce
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae3..0000000
--- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
+++ /dev/null
Binary files differ