diff options
author | Bryson Steck <steck.bryson@gmail.com> | 2021-05-04 17:59:55 -0600 |
---|---|---|
committer | Bryson Steck <steck.bryson@gmail.com> | 2021-05-04 17:59:55 -0600 |
commit | 99643e5be84af7e8da217ed48597ceb3c9d3bc85 (patch) | |
tree | 91c314dc3a0f4b60d731ccb8854869302eb9bd8d /app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java | |
parent | af7a395b8c707fe5be3c03e9de878fae1d16b997 (diff) | |
download | wiimmfi-watcher-99643e5be84af7e8da217ed48597ceb3c9d3bc85.tar wiimmfi-watcher-99643e5be84af7e8da217ed48597ceb3c9d3bc85.tar.gz wiimmfi-watcher-99643e5be84af7e8da217ed48597ceb3c9d3bc85.tar.bz2 |
before i get too deep in the database stuff
Diffstat (limited to 'app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java')
-rw-r--r-- | app/src/main/java/com/example/wiimmterfaceandroid/RecentCodesFragment.java | 94 |
1 files changed, 93 insertions, 1 deletions
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<ObservableList<FriendCode>>() { + @Override + public void onChanged(ObservableList<FriendCode> sender) { + getActivity().runOnUiThread(adapter::notifyDataSetChanged); + } + + @Override + public void onItemRangeChanged(ObservableList<FriendCode> sender, int positionStart, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemRangeChanged(positionStart, itemCount); + }); + } + + @Override + public void onItemRangeInserted(ObservableList<FriendCode> sender, int positionStart, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemRangeInserted(positionStart, itemCount); + }); + } + + @Override + public void onItemRangeMoved(ObservableList<FriendCode> sender, int fromPosition, int toPosition, int itemCount) { + getActivity().runOnUiThread(() -> { + adapter.notifyItemMoved(fromPosition, toPosition); + }); + } + + @Override + public void onItemRangeRemoved(ObservableList<FriendCode> 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)); + } } |