]> git.ktnx.net Git - mobile-ledger.git/commitdiff
add help menu for the template list
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Fri, 5 Mar 2021 21:43:59 +0000 (23:43 +0200)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Fri, 5 Mar 2021 21:43:59 +0000 (23:43 +0200)
app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateListFragment.java
app/src/main/res/menu/template_list_menu.xml
app/src/main/res/values-bg/arrays.xml
app/src/main/res/values-bg/strings.xml
app/src/main/res/values/arrays.xml
app/src/main/res/values/strings.xml

index 7bdad8d17ec5c3b36928d6dee224fe7af3edb066..2f0325535cf76e4f1da6e0abd1f440958709d3c9 100644 (file)
 
 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;
 
@@ -33,6 +38,7 @@ import androidx.lifecycle.LiveData;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.dao.TemplateHeaderDAO;
 import net.ktnx.mobileledger.databinding.FragmentTemplateListBinding;
 import net.ktnx.mobileledger.db.DB;
@@ -52,7 +58,6 @@ import java.util.List;
 public class TemplateListFragment extends Fragment {
     private FragmentTemplateListBinding b;
     private OnTemplateListFragmentInteractionListener mListener;
-
     public TemplateListFragment() {
         // Required empty public constructor
     }
@@ -70,8 +75,29 @@ 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) {
+            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);
index a231f5fe14e23fd177154886cda16ce8a9af2020..780d825772401115bc2d76b5d4612b195b4a5d8b 100644 (file)
@@ -22,6 +22,7 @@
     <item
         android:icon="@drawable/ic_baseline_help_24_white"
         android:title="@string/help_menu_item_title"
+        android:id="@+id/menu_item_template_list_help"
         app:showAsAction="ifRoom"
         />
 </menu>
\ No newline at end of file
index 953056707e64e2e9c3baa3ceb17b762d417e88da..cab808175d308d8d8b11e2013f280b8a501fdf64 100644 (file)
         <item>Дублиране</item>
         <item>Изтриване</item>
     </string-array>
-
+    <string-array name="template_list_help_text">
+        <item>Макетите са като предварително попълнени движения. Някои от параметрите на движението са указани в макета, а други се извличат от външен източник.</item>
+        <item>Например, при въвеждане на ново движение може да се сканира QR код от касова бележка, което да доведе до автоматично попълване на описанието на движението и имената на сметките от макета и попълване на датата и сумата от данните в QR кода.</item>
+        <item>Макетите описват кои параметри на движението са фиксирани и кои идват от външния източник.</item>
+        <item>Сканирането на QR код е единственият външен източник, който се поддържа в момента. В бъдеще е планирана работа с поставяне на текст от работния буфер и четене/прихващане на текстови съобщения (SMS).</item>
+    </string-array>
 </resources>
index 1c8b51b3df905b29eeebcdd2164e4c6b9e7a571e..d058ea500a496ddf52afa236ab2fffa6468046cf 100644 (file)
     <string name="template_is_fallback_yes">Макетът ще се предлага за избор само ако няма друг макет, който да пасва и да не е маркиран като резервен</string>
     <string name="template_is_fallback_no">Макетът не е резервен</string>
     <string name="fallback_templates_divider">Резервни макети</string>
+    <string name="template_list_help_title">Макети</string>
 </resources>
index 0e8556530389eec970f997f0e5d62d6596dbe3ef..d471be3a184c420dd4cb38497a751ec868a397c4 100644 (file)
         <item>Duplicate</item>
         <item>Delete</item>
     </string-array>
+    <string-array name="template_list_help_text">
+        <item>Templates are like pre-filled transactions. Some of the transaction parameters are defined by the template, and others can be deduced from external source.</item>
+        <item>For example, when adding a new transaction, you could scan the QR code of a receipt and get the transaction description filled from the template, and date and amounts filled from the data in the QR code.</item>
+        <item>Templates describe which transaction parameters are fixed and which come from the external source.</item>
+        <item>Currently, scanning QR codes is the only available source. Support for pasting from the clipboard and reading/intercepting text messages (SMS) is planned for the future.</item>
+    </string-array>
 </resources>
\ No newline at end of file
index 2c478181ca8abb96d22b7cc177954689bbbac89e..3c94703aeb1d03ed3fa7591e0d5714be500f0578 100644 (file)
     <string name="template_is_fallback_yes">Template will be offered for selection only when no templates match that aren\'t marked as fallback templates</string>
     <string name="template_is_fallback_no">Template is a primary, high priority one, not a catch-all</string>
     <string name="fallback_templates_divider">Fallback templates</string>
+    <string name="template_list_help_title">Templates</string>
 </resources>