From 99643e5be84af7e8da217ed48597ceb3c9d3bc85 Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Tue, 4 May 2021 17:59:55 -0600 Subject: before i get too deep in the database stuff --- .../wiimmterfaceandroid/RecentCodesFragment.java | 94 +++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java') diff --git a/app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java b/app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java index 7dff276..c7554f9 100644 --- a/app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java +++ b/app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java @@ -1,9 +1,101 @@ package com.example.wiimmterfaceandroid; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.fragment.app.Fragment; + +import com.example.wiimmterfaceandroid.database.AppDatabase; +import com.example.wiimmterfaceandroid.model.FriendCode; +import com.example.wiimmterfaceandroid.viewmodel.FriendCodeViewModel; +import com.example.wiimmterfaceandroid.wiimmfi.WiimmfiActivity; + +import java.util.List; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.databinding.ObservableList; import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; public class RecentCodesFragment extends Fragment { - public RecentCodesFragment() { super(R.layout.fragment_recent_friend_codes); } + public RecentCodesFragment() { + super(R.layout.fragment_recent_friend_codes); + } + FriendCodeViewModel viewModel; + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + viewModel = new ViewModelProvider(getActivity()).get(FriendCodeViewModel.class); + + RecentCodesAdapter adapter = new RecentCodesAdapter( + viewModel.getEntries(), + (entry) -> { + viewModel.setCurrentEntry(entry); + Intent intent = new Intent(view.getContext(), WiimmfiActivity.class); + intent.putExtra("friendCode", entry.friendCode); + startActivity(intent); + } + ); + viewModel.getEntries().addOnListChangedCallback(new ObservableList.OnListChangedCallback>() { + @Override + public void onChanged(ObservableList sender) { + getActivity().runOnUiThread(adapter::notifyDataSetChanged); + } + + @Override + public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemRangeChanged(positionStart, itemCount); + }); + } + + @Override + public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemRangeInserted(positionStart, itemCount); + }); + } + + @Override + public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemMoved(fromPosition, toPosition); + }); + } + + @Override + public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemRangeRemoved(positionStart, itemCount); + }); + } + }); + RecyclerView recyclerView = view.findViewById(R.id.recent_friend_codes_recycler_view); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + +// view.findViewById(R.id.fab).setOnClickListener((button) -> { +// viewModel.setCurrentEntry(null); +// getActivity().getSupportFragmentManager().beginTransaction() +// .replace(R.id.fragment_container_view, CreateOrUpdateFriendCodeFragment.class, null) +// .setReorderingAllowed(true) +// .addToBackStack(null) +// .commit(); +// }); +// RecyclerView recyclerView = view.findViewById(R.id.recent_friend_codes_recycler_view); +// recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); +// recyclerView.setAdapter(new RecentCodesAdapter(recentFCList)); + } } -- cgit v1.2.3