]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateListFragment.java
visual improvements in template list
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / templates / TemplateListFragment.java
index cc5c79888cb0ba1433098af475dea1617d783c39..53eb604f3df6497cca2ccc5182918b98bab0bfca 100644 (file)
@@ -20,22 +20,30 @@ package net.ktnx.mobileledger.ui.templates;
 import android.content.Context;
 import android.os.Bundle;
 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.lifecycle.LiveData;
+import androidx.recyclerview.widget.DividerItemDecoration;
 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.ui.HelpDialog;
 import net.ktnx.mobileledger.utils.Logger;
 
 import org.jetbrains.annotations.NotNull;
@@ -50,7 +58,6 @@ import java.util.List;
 public class TemplateListFragment extends Fragment {
     private FragmentTemplateListBinding b;
     private OnTemplateListFragmentInteractionListener mListener;
-
     public TemplateListFragment() {
         // Required empty public constructor
     }
@@ -60,7 +67,6 @@ public class TemplateListFragment extends Fragment {
      *
      * @return A new instance of fragment TemplateListFragment.
      */
-    // TODO: Rename and change types and number of parameters
     public static TemplateListFragment newInstance() {
         TemplateListFragment fragment = new TemplateListFragment();
         Bundle args = new Bundle();
@@ -68,12 +74,23 @@ public class TemplateListFragment extends Fragment {
         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) {
+            HelpDialog.show(requireContext(), R.string.template_list_help_title,
+                    R.array.template_list_help_text);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+    @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-//        if (getArguments() != null) {
-//            mParam1 = getArguments().getString(ARG_PARAM1);
-//            mParam2 = getArguments().getString(ARG_PARAM2);
-//        }
+        setHasOptionsMenu(true);
     }
 
     @Override
@@ -81,17 +98,25 @@ public class TemplateListFragment extends Fragment {
                              Bundle savedInstanceState) {
         Logger.debug("flow", "PatternListFragment.onCreateView()");
         b = FragmentTemplateListBinding.inflate(inflater);
+        FragmentActivity activity = requireActivity();
+
+        if (activity instanceof FabManager.FabHandler)
+            FabManager.handle((FabManager.FabHandler) activity, b.templateList);
 
         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);
+        DividerItemDecoration did =
+                new TemplateListDivider(activity, DividerItemDecoration.VERTICAL);
+        b.templateList.addItemDecoration(did);
+
         return b.getRoot();
     }
     @Override
@@ -131,5 +156,7 @@ public class TemplateListFragment extends Fragment {
         void onSaveTemplate();
 
         void onEditTemplate(Long id);
+
+        void onDuplicateTemplate(long id);
     }
 }
\ No newline at end of file