package net.ktnx.mobileledger.ui.templates;
+import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleEventObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import net.ktnx.mobileledger.dao.PatternHeaderDAO;
+import net.ktnx.mobileledger.R;
+import net.ktnx.mobileledger.dao.TemplateHeaderDAO;
import net.ktnx.mobileledger.databinding.FragmentTemplateListBinding;
import net.ktnx.mobileledger.db.DB;
import net.ktnx.mobileledger.db.TemplateHeader;
+import net.ktnx.mobileledger.ui.FabManager;
import net.ktnx.mobileledger.utils.Logger;
import org.jetbrains.annotations.NotNull;
public class TemplateListFragment extends Fragment {
private FragmentTemplateListBinding b;
private OnTemplateListFragmentInteractionListener mListener;
-
public TemplateListFragment() {
// Required empty public constructor
}
return fragment;
}
@Override
+ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
+ super.onCreateOptionsMenu(menu, inflater);
+ inflater.inflate(R.menu.template_list_menu, menu);
+ }
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ if (item.getItemId() == R.id.menu_item_template_list_help) {
+ AlertDialog.Builder adb = new AlertDialog.Builder(requireContext());
+ adb.setTitle(R.string.template_list_help_title);
+ adb.setMessage(TextUtils.join("\n\n", requireContext().getResources()
+ .getStringArray(
+ R.array.template_list_help_text)));
+ adb.setPositiveButton(R.string.close_button, (dialog, buttonId) -> dialog.dismiss());
+ adb.create()
+ .show();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setHasOptionsMenu(true);
// if (getArguments() != null) {
// mParam1 = getArguments().getString(ARG_PARAM1);
// mParam2 = getArguments().getString(ARG_PARAM2);
TemplatesRecyclerViewAdapter modelAdapter = new TemplatesRecyclerViewAdapter();
b.templateList.setAdapter(modelAdapter);
- PatternHeaderDAO pDao = DB.get()
- .getPatternDAO();
- LiveData<List<TemplateHeader>> templates = pDao.getPatterns();
+ TemplateHeaderDAO pDao = DB.get()
+ .getTemplateDAO();
+ LiveData<List<TemplateHeader>> templates = pDao.getTemplates();
templates.observe(getViewLifecycleOwner(), modelAdapter::setTemplates);
LinearLayoutManager llm = new LinearLayoutManager(getContext());
llm.setOrientation(RecyclerView.VERTICAL);
b.templateList.setLayoutManager(llm);
+
+ FragmentActivity activity = requireActivity();
+ if (activity instanceof FabManager.FabHandler)
+ FabManager.handle((FabManager.FabHandler) activity, b.templateList);
+
return b.getRoot();
}
@Override
void onSaveTemplate();
void onEditTemplate(Long id);
+
+ void onDuplicateTemplate(long id);
}
}
\ No newline at end of file