diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3caa385..1f943f0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + + tools:targetApi="31" + android:usesCleartextTraffic="true" + android:networkSecurityConfig="@xml/network_security_config"> diff --git a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java index 51865a1..3019a14 100644 --- a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java @@ -7,6 +7,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -20,11 +22,13 @@ import com.example.citrusclient.Citrus; import com.example.citrusclient.R; +import com.example.citrusclient.models.Book; import com.example.citrusclient.viewmodels.BooksViewModel; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -66,7 +70,9 @@ } - private List bookList; + private List bookList; + BooksViewModel booksViewModel; + @Override public void onCreate(Bundle savedInstanceState) { @@ -75,13 +81,19 @@ mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } + + booksViewModel = new ViewModelProvider(this).get(BooksViewModel.class); + } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_my_bookshelf_fragment, container, false); + View rootView = inflater.inflate(R.layout.fragment_my_bookshelf_fragment, container, false); + + return rootView; + } @@ -90,14 +102,13 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - bookList = createBooks(); Citrus citrus = (Citrus)(getActivity().getApplication()); String token = citrus.getToken(); String accountId = citrus.getAccountId(); - BooksViewModel booksViewModel = new BooksViewModel(); - + bookList = new ArrayList<>(); + bookList.add(new Book("a", 1, "a", true, "0")); RecyclerView recyclerView = view.findViewById(R.id.my_books_list); recyclerView.setHasFixedSize(true); @@ -109,37 +120,29 @@ FloatingActionButton addButton = view.findViewById(R.id.book_add_button); addButton.setOnClickListener(v -> { -// RowBook b = new RowBook(); -// b.hogeTitle = "hoge"; -// bookList.add(b); -// bookAdapter.notifyItemInserted(bookList.size()-1); + ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); }); - } + booksViewModel.getBookLiveData().observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(HashMap integerBookHashMap) { + bookList = new ArrayList<>(integerBookHashMap.values()); + bookAdapter.notifyDataSetChanged(); + } + }); - private List createBooks(){ - List books = new ArrayList<>(); - for(int i = 0; i < 5; i++){ - RowBook book = new RowBook(); - book.hogeTitle = "hoge"; - book.color = Color.RED; - books.add(book); - } - return books; - } + booksViewModel.loadBooks("bird", "xyz"); - class RowBook{ - String hogeTitle; - int color; + } } class MyBookshelfAdapter extends RecyclerView.Adapter{ - private List bookList; + private List bookList; - MyBookshelfAdapter(List book){ + MyBookshelfAdapter(List book){ this.bookList = book; } @@ -152,9 +155,9 @@ @Override public void onBindViewHolder(@NonNull MyBookViewHolder holder, int position) { - MyBookshelfFragment.RowBook bookData = this.bookList.get(position); - holder.bookButton.setText(bookData.hogeTitle); - holder.bookButton.setBackgroundColor(bookData.color); + Book bookData = this.bookList.get(position); + holder.bookButton.setText(bookData.getTitle()); + holder.bookButton.setBackgroundColor(Color.RED); } @Override diff --git a/app/src/main/res/layout/a_book.xml b/app/src/main/res/layout/a_book.xml index 5bd8707..0f87cbd 100644 --- a/app/src/main/res/layout/a_book.xml +++ b/app/src/main/res/layout/a_book.xml @@ -8,12 +8,12 @@