Frequently Asked Questions
The following FAQ is also available from within MobileShopper - just use the Help menu item.
Q: What does MobileShopper mean by interaction style?
A: The interaction style denotes the perspective MobileShopper
provides on your data in the display and hence also denotes a style
of interaction. The supported styles are Shopping list, Shopping
inventory and General inventory.
In the shopping list style, you "check off" the items you need, and they appear automatically in your needed list. In either of the inventory styles, you maintain an in-stock quantity and price with every item, and you "use" an item, i.e., you use/sell some quantity of an item, taking it out of stock. When you use an item, the in-stock quantity is decremented by the quantityused.
When the in-stock quantity reaches zero, you are prompted to specify what quantity you want to restock with, and then the item is added to your needed list. Alternatively, you can configure MobileShopper to automatically add the item to your needed list upon use. When you place an item in your cart in the needed list view, the quantity is added to your quantity in stock.
Note that general inventory style is exactly the same as shopping inventory style, except that recipes are called bundles instead.
Q: How do I control when MobileShopper puts an item I've used into my needed list?
A: In the settings dialog there is setting labeled "Inventory item needed event". This setting is enabled only when the interaction style is set to one of the inventory styles. Set this to On out of stock if you want an item to be added when its quantity in stock drops to zero. Set this to On use if you want an item to be added each time it is used.
Q: What does MobileShopper mean by "recipe"?
A: A recipe is any collection of ingredients that you frequently buy together, and thus would find it convenient to be able to add all of them to your needed list with one action. Because you may also add step-by-step instructions to a recipe, it can be a real-world recipe (e.g., "Beef Burgundy") that you cook. This means that you can use MobileShopper to hold all of your favorite recipes on your cell phone or tablet computer, and consult it instead of a cookbook when you want to cook one of the recipes.
Q: What does MobileShopper mean by "bundle"?
A: A bundle is what recipes are called when the interaction style is general inventory. A bundle and a recipe are otherwise the same.
Q: How do I add step-by-step instructions to a recipe?
A: Because cell phones and tablet computers are not designed for entering large amounts of text, you add step-by-step instructions to a recipe by creating a text file containing those instructions on your desktop computer, and then put that file in a place on your device's SD card where MobileShopper can find it.
Recipe instructions must be placed in the file:
on your SD card, where CATEGORY is the name of the recipe category (shown in the spinner on the recipes tab) and RECIPENAME is the name of the recipe. For example, if you create the recipe "Beef Burgundy" in the "Main dishes" category, the instructions file must be:
/MobileShopper/recipes/Main dishes/Beef Burgundy.html
When you tap on an entry in the recipes list, MobileShopper looks for a file following the above rule, and if it finds it, shows a button labeled Show instructions above the ingredient list. When you tap that button, the file is opened and displayed in place of the ingredient list, and the button text is changed to Show ingredients. Tapping that button switches the display back to the ingredients list.
Q: What can I put in the step-by-step instructions file?
A: The instructions file can contain just plain text, but then it won't look very nice, since it lacks formatting. For best results, the file should contain HTML - a mini-web page. If you use HTML, you can include almost anything you could include in a real web page, e.g., you could include a picture of the finished recipe! The sample instructions file linked to in the next paragraph does exactly that.
If you choose to include a photo, you can place that file anywhere you can link to from your HTML, including out on the web! The sample instructions file requires the photo to be placed on the SD card in the same directory as the instructions file itself. Right-click here and choose "Save Link As" to get a copy of the sample instructions file.
Q: When I add an ingredient to a recipe, I see a checkbox labeled "Is a staple". What is that for?
A: A staple is a recipe ingredient that you nearly always have on hand, and thus rarely need to add to your needed list when you add the recipe to your needed list. By checking Is a staple, you're telling MobileShopper not to automatically include that ingredient when you add the recipe to your needed list. Instead, when you add the recipe, MobileShopper shows you a dialog with an input field in which you can specify how many servings of the recipe you need, and a button that lets you view the list of staples and choose the ones you need.
Q: How do I perform operations such as delete, edit or rename?
A: If a list entry has an icon on the left, tap that icon to get a quick action bar showing the operations you can perform on that list entry. With the exception of an item category, that icon is always a "down arrow" icon. If an entry has no icon on the left, tap the name of the entry itself to get the quick action menu. Not all list entries have such menus.
Q: How do I delete all the items in a category?
A: Tap the icon next to the category name and then choose the Delete items operation from the resulting quick action bar.
Q: How do I delete all items in all categories?
The easiest way to do this is to tap the icon next to the All items category and then choose the Delete items operation from the resulting quick action bar. You can also do it by deleting all the items in each category individually.
Q: How do I change the icons used in the "Categories" tab?
A: Place your icons in the MobileShopper/icons directory of your SD card. Each icon must be in .png format and be named the same as the category it is associated with (with all non-alphabetic characters removed). For example, the icon for the Breads/Grains/Cereals/Nuts category should have an icon name of breadsgrainscerealsnuts.png. If an icon file can't be found, or the SD card is unmounted or removed, the built-in icon is used. Android standard sizes for these icons are 24x24 (ldpi), 32x32 (mdpi) and 48x48 (hdpi), but you are free to use whatever size you like - the list item heights will adjust automatically.
Q: How do I change the units available for item quantity?
A: Go to the settings view by using the Settings menu item, then tap the Configure item units setting. You can now see a list of all existing units ordered as they appear in the units spinner in the item details dialog. You may add a new unit by using the Add menu item and delete or edit an existing unit by tapping and holding on the desired unit and then choosing Edit or Delete from the resulting menu.
You may also change the order of the units by tapping and holding on the drag icon on the right side, dragging until the desired position is reached, and then dropping the unit.
Note that changing the list of item units will likely make items in the needed items list at the time of the change show an incorrect value for units.
Q: What is the purpose of the "Mapping:" control in the dialog for editing a unit?
A: Since units can be named whatever you want and placed in any order you want, MobileShopper can't know what those units really are for unit conversion purposes. The "Mapping:" control lets you specify what real-world unit each entry in your unit list represents, thus enabling correct conversions between quantities of different units.
Q: How do I change the order of the categories appearing in the "Needed" tab?
A: Go to the settings view by using the Settings menu item, then tap the Reorder shopping aisles setting. You can now see a list of all the categories ordered as they appear in the needed items tab. To reorder, just tap and hold on a drag icon on the right side, drag until the desired position is reached, and then drop the category.
Q: How do I transfer my data to another phone?
A: Use the Manage data menu item, then choose Export database. If the operation succeeded, you will get a small dialog telling you that the database file is now on your SD card at /MobileShopper/shopping.db. Use any means you find convenient to transfer the file to the same place on the SD card for another phone.
Next, use the Manage data menu item of the MobileShopper application on that phone, and choose Import database. You will be prompted to confirm the operation, and if you do the operation will be done. If it succeeded, you will get a small dialog telling you that and informing you that MobileShopper will restart itself after you dismiss the dialog.
Q: How can I transfer my data to my PC for viewing/editing there?
A: Use the Manage data menu item, then choose Export database to XML. If the operation succeeded, you will get a small dialog telling you that the database file is now on your SD card at /MobileShopper/shopping.xml. Use any means you find convenient to transfer the file to your PC. You can then view the file in your web browser by double clicking on the file. You can edit the file using any text editor.
Please be sure you understand what you are doing when editing the XML!
If you edit the file, you can replace the data in MobileShopper using the import feature as follows:
Copy the file back to the same place on the SD card.
Use the Manage data menu item of the MobileShopper application, and choose Import database from XML. You will be prompted to confirm the operation.
Confirm, and the operation will be done.
On success, you will get a small dialog telling you that and informing you that MobileShopper will restart itself after you dismiss the dialog.
Q: What can I do if an import operation fails, or what I see after an import isn't what I expected?
A: If the operation fails before any changes were made, you can correct the problem and try again - the dialog you see after a failure will suggest some possible problems. If the operation fails after changes were made, MobileShopper will try to restore the previous version of your database - and the dialog you see after the import will tell you that. If it could not restore the previous version (very unlikely), try the operation again (in the worst case, you may need to un-install and re-install the application). If the operation succeeds, but what you see in the application isn't what you expected, you probably imported from XML and there was something wrong with the XML - correct the problems in the XML and try again.
Q: What could be wrong with my edited XML?
A: The XML exported by MobileShopper is very regular in its form. Every open tag must have a corresponding close tag. An open tag looks like this:
and must be balanced by a matching end tag, which looks like this:
Also, every attribute value must be enclosed in quotation marks. Here is an open tag with one attribute:
There are many other problems that can happen with XML. Further discussion of that is beyond the scope of this help. Try researching XML on the web if you need more help.
Q: What does MobileShopper require in the XML that is imported?
A: In addition to the form being correct, MobileShopper has additional requirements:
- The name appearing in the <database> tag MUST be shopping.xml.
- The name appearing in the <table> tag MUST match the type of data inside it: categories for category data, items for item data, and units for units.
- The value of every name attribute must be the same as that exported by MobileShopper.
- The text appearing between <col name="id"> and </col> tags must be the same as that exported by MobileShopper.
- The text appearing between <col name="name"> and </col> tags for the categories table must be unique within the table.
- The combination of the text appearing between the <col name="name"> and </col> tags and the <col category_name="name"> and </col> tags for the items table must be unique.
- The text appearing between <col name="sortorder"> and </col> tags for the categories table must be unique within that table and accurately specify the order you want. The order is lowest to highest.
- The text appearing between <col name="sortorder"> and </col> tags for the units table must be unique within that table and accurately specify the order you want. The order is lowest to highest.
- The text appearing between <col name="_id"> and </col> tags is ignored by MobileShopper.
Q: What's this about an obsolete version of MobileShopper?
A: To my great dismay, both the primary and backup copies of the certificate used to sign the original MobileShopper application through version 1.3 were lost. Consequently, starting with version 1.4 the application was signed with a different certificate.
Android, however, doesn't allow installation of an application with the same package name as an already installed application unless it is signed with the same certificate. For a successful install, therefore, I had to change MobileShopper's package name. The side effect of that is that now both the old and the new versions can be installed at the same time, and each has its own database of shopping categories, items, etc.
That doesn't affect new users, but if you were using the previous version and then found and installed this one, this one probably doesn't have the same database as the previous. Fortunately, it is easy for you to transfer your data from the old version to the new. The only thing that can't be recovered is the value of the Change category iconset setting - but you can easily change that to the value you want. To transfer your data, do the following:
- Launch the previous version and use the Export database to XML item in the Manage data submenu to export your data to your SD card.
- Now launch the new version and use the Import database from XML item in the Manage data submenu. You will be prompted to confirm the operation. Upon confirmation, your database from the previous version is imported and the application restarts itself.
- Examine your data to satisfy yourself that everything really is there. At that point, you can uninstall the previous version.