import net.ktnx.mobileledger.R;
import net.ktnx.mobileledger.databinding.PatternDetailsFragmentBinding;
-import net.ktnx.mobileledger.ui.QRScanAbleFragment;
+import net.ktnx.mobileledger.ui.QRScanCapableFragment;
import net.ktnx.mobileledger.utils.Logger;
-public class PatternDetailsFragment extends QRScanAbleFragment {
+public class PatternDetailsFragment extends QRScanCapableFragment {
static final String ARG_PATTERN_ID = "pattern-id";
private static final String ARG_COLUMN_COUNT = "column-count";
PatternDetailsFragmentBinding b;
private PatternDetailsViewModel mViewModel;
private int mColumnCount = 1;
- private int mPatternId = PatternDetailsViewModel.NEW_PATTERN;
+ private Long mPatternId;
public PatternDetailsFragment() {
}
public static PatternDetailsFragment newInstance(int columnCount, int patternId) {
final Bundle args = getArguments();
if (args != null) {
mColumnCount = args.getInt(ARG_COLUMN_COUNT, 1);
- mPatternId = args.getInt(ARG_PATTERN_ID, PatternDetailsViewModel.NEW_PATTERN);
+ mPatternId = args.getLong(ARG_PATTERN_ID, -1);
+ if (mPatternId == -1)
+ mPatternId = null;
}
- mViewModel.setPatternId(mPatternId);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
+ NavController controller = ((PatternsActivity) requireActivity()).getNavController();
+ final ViewModelStoreOwner viewModelStoreOwner =
+ controller.getViewModelStoreOwner(R.id.pattern_list_navigation);
+ mViewModel = new ViewModelProvider(viewModelStoreOwner).get(PatternDetailsViewModel.class);
+ mViewModel.setDefaultPatternName(getString(R.string.unnamed_pattern));
+ Logger.debug("flow", "PatternDetailsFragment.onCreateView(): model=" + mViewModel);
+
b = PatternDetailsFragmentBinding.inflate(inflater);
Context context = b.patternDetailsRecyclerView.getContext();
if (mColumnCount <= 1) {
PatternDetailsAdapter adapter = new PatternDetailsAdapter();
b.patternDetailsRecyclerView.setAdapter(adapter);
- mViewModel.getItems()
+ mViewModel.getItems(mPatternId)
.observe(getViewLifecycleOwner(), adapter::setItems);
- return b.getRoot();
- }
- @Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
- NavController controller = ((PatternsActivity) context).getNavController();
- final ViewModelStoreOwner viewModelStoreOwner =
- controller.getViewModelStoreOwner(R.id.pattern_list_navigation);
- mViewModel = new ViewModelProvider(viewModelStoreOwner).get(PatternDetailsViewModel.class);
- mViewModel.setDefaultPatternName(getString(R.string.unnamed_pattern));
- Logger.debug("flow", "PatternDetailsFragment.onAttach(): model=" + mViewModel);
+ return b.getRoot();
}
@Override
protected void onQrScanned(String text) {
Logger.debug("PatDet_fr", String.format("Got scanned text '%s'", text));
- mViewModel.setTestText(text);
+ if (text != null)
+ mViewModel.setTestText(text);
}
public void onSavePattern() {
mViewModel.onSavePattern();