From 583e550007c11beebeb78bb5e8067e57406c6adc Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sat, 1 May 2021 00:41:24 -0700 Subject: [PATCH] Makes clicking a monster on the library screen show that monster in the detail screen. --- .../ui/MonsterListRecyclerViewAdapter.java | 18 +++ .../ui/monster/MonsterFragment.java | 116 ++---------------- 2 files changed, 29 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/MonsterListRecyclerViewAdapter.java b/app/src/main/java/com/majinnaibu/monstercards/ui/MonsterListRecyclerViewAdapter.java index 7189ebc..df0c8a2 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/MonsterListRecyclerViewAdapter.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/MonsterListRecyclerViewAdapter.java @@ -6,11 +6,14 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; import androidx.recyclerview.widget.RecyclerView; import com.majinnaibu.monstercards.R; import com.majinnaibu.monstercards.models.Monster; import com.majinnaibu.monstercards.ui.library.LibraryFragment; +import com.majinnaibu.monstercards.ui.library.LibraryFragmentDirections; import java.util.ArrayList; import java.util.List; @@ -34,6 +37,21 @@ public class MonsterListRecyclerViewAdapter extends RecyclerView.Adapter Cantrips (at will): _light, sacred flame, thaumaturgy_\n> 1st level (3 slots): _bless, cure wounds, sanctuary_")); - monster.abilities.add(new Trait("Amphibious", "The dragon can breathe air and water.")); - monster.abilities.add(new Trait("Legendary Resistance (3/Day)", "If the dragon fails a saving throw, it can choose to succeed instead.")); - // Actions - monster.actions.add(new Trait("Club", "_Melee Weapon Attack:_ [STR ATK] to hit, reach 5 ft., one target. _Hit:_ 2 (1d4) bludgeoning damage.")); - // END remove block + MonsterRepository repository = getMonsterRepository(); + UUID monsterId = UUID.fromString(MonsterFragmentArgs.fromBundle(getArguments()).getMonsterId()); monsterViewModel = new ViewModelProvider(this).get(MonsterViewModel.class); View root = inflater.inflate(R.layout.fragment_monster, container, false); - monsterViewModel.setMonster(monster); + + repository.getMonster(monsterId).toObservable() + .firstOrError() + .subscribe(monster -> { + monsterViewModel.setMonster(monster); + }, Logger::logError); final TextView monsterName = root.findViewById(R.id.name); monsterViewModel.getName().observe(getViewLifecycleOwner(), name -> monsterName.setText(name));