diff --git a/.idea/misc.xml b/.idea/misc.xml index ed4facc..a187139 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -10,7 +10,13 @@ + + + + + + diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java index 8168255..ffb93c8 100644 --- a/app/src/main/java/com/example/nemophila/FriendActivity.java +++ b/app/src/main/java/com/example/nemophila/FriendActivity.java @@ -2,6 +2,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -15,6 +16,8 @@ import android.widget.ImageView; import android.widget.TextView; +import com.example.nemophila.viewmodels.FriendViewModel; + import java.util.ArrayList; import java.util.List; @@ -30,6 +33,9 @@ List friendsDataset = new ArrayList<>(); // 1行分の情報を持つDataModelを格納するリスト RecyclerView rv = findViewById(R.id.friendsList); // recyclerViewを取得 adapter = new FriendActivityAdapter(friendsDataset); // adapterを取得 + FriendViewModel friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); // ViewModelを取得 + Nemophila nemophila = (Nemophila) this.getApplication(); + //一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言 LinearLayoutManager llm = new LinearLayoutManager(this); @@ -41,6 +47,10 @@ rv.setHasFixedSize(true); rv.setLayoutManager(llm); + String myUid = nemophila.getUid(); // 自身のidを取得 +// friendViewModel.getFriends(myUid); // 自身のフレンドの一覧を取得するメソッドを呼び出す + + // マイページ画面に画面遷移する Button backButton = findViewById(R.id.backMyPage); backButton.setOnClickListener(v -> { diff --git a/app/src/main/java/com/example/nemophila/FriendActivityAdapter.java b/app/src/main/java/com/example/nemophila/FriendActivityAdapter.java deleted file mode 100644 index f4490da..0000000 --- a/app/src/main/java/com/example/nemophila/FriendActivityAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.example.nemophila; - -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import java.util.List; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -public class FriendActivityAdapter extends RecyclerView.Adapter { - private List list; - - public FriendActivityAdapter(List list) { - this.list = list; - } - - public void setList(List list) { - this.list = list; - } - - @NonNull - @Override - public FriendsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int ViewType) { - View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_friends_activity, parent,false); - FriendsViewHolder vh = new FriendsViewHolder(inflate); - return vh; - } - - @Override - public void onBindViewHolder(@NonNull FriendsViewHolder holder, int position) { - // 後からアイコンの登録をできるようにする - holder.nameView.setText(list.get(position).getName()); - } - - @Override - public int getItemCount() { - return list.size(); - } -} diff --git a/app/src/main/java/com/example/nemophila/FriendDataModel.java b/app/src/main/java/com/example/nemophila/FriendDataModel.java deleted file mode 100644 index 1eaaefc..0000000 --- a/app/src/main/java/com/example/nemophila/FriendDataModel.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.nemophila; - -public class FriendDataModel { - private String name; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} diff --git a/app/src/main/java/com/example/nemophila/FriendsViewHolder.java b/app/src/main/java/com/example/nemophila/FriendsViewHolder.java deleted file mode 100644 index 393098a..0000000 --- a/app/src/main/java/com/example/nemophila/FriendsViewHolder.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.nemophila; - -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -public class FriendsViewHolder extends RecyclerView.ViewHolder { - public ImageView iconView; - public TextView nameView; - public Button deleteButton; - - public FriendsViewHolder(@NonNull View itemView) { - super(itemView); - iconView = itemView.findViewById(R.id.friendIcon); - nameView = itemView.findViewById(R.id.friendName); - deleteButton = itemView.findViewById(R.id.friendDelete); - } -} diff --git a/app/src/main/java/com/example/nemophila/PostActivity.java b/app/src/main/java/com/example/nemophila/PostActivity.java index 6282a6f..cf0b6b2 100644 --- a/app/src/main/java/com/example/nemophila/PostActivity.java +++ b/app/src/main/java/com/example/nemophila/PostActivity.java @@ -1,6 +1,7 @@ package com.example.nemophila; import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import android.content.Intent; @@ -15,11 +16,17 @@ import com.example.nemophila.entities.Account; +import com.example.nemophila.entities.Post; import com.example.nemophila.entities.Shop; +import com.example.nemophila.resources.ShopsRest; import com.example.nemophila.viewmodels.PostsViewModel; import com.example.nemophila.viewmodels.ShopsViewModel; import com.google.android.material.snackbar.Snackbar; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + import retrofit2.Retrofit; @@ -53,6 +60,24 @@ postsViewModel = new ViewModelProvider(this).get(PostsViewModel.class); shopsViewModel = new ViewModelProvider(this).get(ShopsViewModel.class); +//店舗新規作成のオブザーバー + shopsViewModel.getCurrentLiveData().observe(this, new Observer() { + @Override + public void onChanged(Shop shop) { + System.out.println("店舗新規作成完了"); + postsViewModel.createPost(uid, token, shop.getSid(), rate, genre, comment, img1, img2, img3); + + System.out.println("lat" + nemophila.getCurrentLatitude() + "\nlong" + nemophila.getCurrentLongitude()); + + //投稿時にリセット + nemophila.setDummyShop(null); + nemophila.setCurrentShop(null); + + Intent intent = new Intent(getApplication(), MainActivity.class); + startActivity(intent); + } + }); + uid = nemophila.getUid(); token = nemophila.getToken(); shop = nemophila.getCurrentShop(); @@ -169,17 +194,24 @@ // startActivity(intent); } else { //評価入力済の時 - shopsViewModel.createShop(shopName, nemophila.getCurrentLongitude(), nemophila.getCurrentLatitude()); - postsViewModel.createPost(uid, token, sid, rate, genre, comment, img1, img2, img3); - //投稿時にリセット - nemophila.setDummyShop(null); - nemophila.setCurrentShop(null); + if (shop == null) { + shopsViewModel.createShop(shopName, nemophila.getCurrentLongitude(), nemophila.getCurrentLatitude()); + } else { + postsViewModel.createPost(uid, token, sid, rate, genre, comment, img1, img2, img3); + System.out.println("既存店舗に投稿"); + System.out.println("lat" + nemophila.getCurrentLatitude() + "\nlong" + nemophila.getCurrentLongitude()); - Intent intent = new Intent(getApplication(), MainActivity.class); - startActivity(intent); + //投稿時にリセット + nemophila.setDummyShop(null); + nemophila.setCurrentShop(null); + + Intent intent = new Intent(getApplication(), MainActivity.class); + startActivity(intent); + } } } + }); } } diff --git a/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java b/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java new file mode 100644 index 0000000..d865620 --- /dev/null +++ b/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java @@ -0,0 +1,6 @@ +package com.example.nemophila.entities; + +public class AccountNameJson { + private String name; + private String id; +} 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 dd66b14..52b4fbf 100644 --- a/app/src/main/java/com/example/nemophila/resources/FriendsRest.java +++ b/app/src/main/java/com/example/nemophila/resources/FriendsRest.java @@ -1,5 +1,6 @@ package com.example.nemophila.resources; +import com.example.nemophila.entities.AccountNameJson; import com.example.nemophila.entities.PostJson; import java.util.Collection; @@ -13,9 +14,8 @@ import retrofit2.http.Path; public interface FriendsRest { - @GET("accounts/{uid}/friends") - Call> getFriends( + Call> getFriends( @Path("uid") String uid ); @@ -35,7 +35,7 @@ ); @GET("/accounts/{uid}/requesting") - Call> getRequesting( + Call> getRequesting( @Path("uid") String uid ); @@ -56,7 +56,7 @@ ); @GET("accounts/{uid}/reqested") - Call> getRequested( + Call> getRequested( @Path("uid") String uid ); diff --git a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java index bf32a70..a9cfb11 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java @@ -3,7 +3,9 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import com.example.nemophila.entities.AccountNameJson; import com.example.nemophila.entities.Post; +import com.example.nemophila.entities.PostJson; import com.example.nemophila.resources.AccountsRest; import com.example.nemophila.resources.FriendsRest; @@ -20,9 +22,9 @@ private final Retrofit retrofit; private final FriendsRest friendsRest; // ライブデータ - private final MutableLiveData friendsLiveData; - private final MutableLiveData requestedLiveData; - private final MutableLiveData> requestingLiveData; + private final MutableLiveData friendsLiveData; + private final MutableLiveData requestedLiveData; + private final MutableLiveData> requestingLiveData; // コンストラクタ public FriendViewModel() { @@ -37,15 +39,38 @@ } // ライブデータの取得(ゲッター) - public MutableLiveData getFriendsLiveData() { + public MutableLiveData getFriendsLiveData() { return friendsLiveData; } - public MutableLiveData getRequestedLiveData() { + public MutableLiveData getRequestedLiveData() { return requestedLiveData; } - public MutableLiveData> getRequestingLiveData() { return requestingLiveData; } + public MutableLiveData> getRequestingLiveData() { return requestingLiveData; } - public void searchFriend(String uid,String fid, String token) { + + + public void getFriends(String uid) { + Call> call = friendsRest.getFriends(uid); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + Collection AccountNameJson = response.body(); +// setFriendsLiveDataFromJson(AccountNameJson); + + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call> call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } + + public void putFriend(String uid,String fid, String token) { Call call = friendsRest.putFriend(uid,fid,token); call.enqueue(new Callback() { @Override @@ -62,4 +87,111 @@ } }); } + + public void deleteFriend(String uid,String fid, String token) { + Call call = friendsRest.deleteFriend(uid,fid,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } + + public void getRequesting(String uid) { + Call> call = friendsRest.getRequesting(uid); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call> call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } + + public void putRequesting(String uid,String requesting_id, String token) { + Call call = friendsRest.putRequesting(uid,requesting_id,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } + public void deleteRequesting(String uid,String requesting_id, String token) { + Call call = friendsRest.deleteRequesting(uid,requesting_id,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } + + public void getRequested(String uid) { + Call> call = friendsRest.getRequested(uid); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call> call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } + + public void deleteRequested(String uid,String fid, String token) { + Call call = friendsRest.deleteRequested(uid,fid,token); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + System.out.println("Successful"); + } else { + System.out.println("ResponseError"); + } + } + @Override + public void onFailure(Call call, Throwable t) { + System.out.println(" NetworkError" + t); + } + }); + } }