+ @Override
+ public void onDeleteTemplate(@NonNull Long templateId) {
+ Objects.requireNonNull(templateId);
+ TemplateHeaderDAO dao = DB.get()
+ .getTemplateDAO();
+
+ dao.getTemplateWithAccountsAsync(templateId, template -> {
+ TemplateWithAccounts copy = TemplateWithAccounts.from(template);
+ dao.deleteAsync(template.header, () -> {
+ navController.popBackStack(R.id.templateListFragment, false);
+
+ Snackbar.make(b.getRoot(), String.format(
+ TemplatesActivity.this.getString(R.string.template_xxx_deleted),
+ template.header.getName()), BaseTransientBottomBar.LENGTH_LONG)
+ .setAction(R.string.action_undo, v -> dao.insertAsync(copy, null))
+ .show();
+ });
+ });
+ }
+ @Override
+ public void onQRScanResult(String scanned) {
+ Logger.debug("PatDet_fr", String.format("Got scanned text '%s'", scanned));
+ TemplateDetailsViewModel model = new ViewModelProvider(
+ navController.getViewModelStoreOwner(R.id.template_list_navigation)).get(
+ TemplateDetailsViewModel.class);
+ model.setTestText(scanned);
+ }
+ @Override
+ public void triggerQRScan() {
+ qrScanLauncher.launch(null);
+ }
+ @Override
+ public Context getContext() {
+ return this;
+ }
+ @Override
+ public void showManagedFab() {
+ fabManager.showFab();
+ }
+ @Override
+ public void hideManagedFab() {
+ fabManager.hideFab();
+ }