New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow a stored cache to belong to multiple lists #87
Comments
You can have every cache only in one list. We have to decide if we want imported caches in the current list or in the default/old list. |
Understood. I vote they stay where I put them.
|
But others want imported caches in the currently selected list. ;) |
That'll work too. I can just handle the organization within my pocket
|
Then there is no problem. Split your PQ and import the parts into the specific lists. ;) |
For me this sounds like a bug, though I didn't ever use lists nor imported anything from file or so. A cache in one list should just stay there if it is imported. There is a reason, why it is in that specific list. |
This caught my by surprise once, too. But it would not be so easy to tell the user that some caches of the import he expected in the current list were placed somewhere else. |
If a cache is in a list other than stored, it was put there by the user.
|
That's true, but he may not be aware of it when he imports 10 caches from a gpx and only finds three in the list after c:geo saying 10 imported... |
But, when I import 995 caches and have 5 in a special to do list...
|
Then you have to split the GPX. I know, it's a bad compromise, but others think the other way. I'll tag this as frontend design and feature request but it can take a while. |
IMO the problem is, that currently every cache can only be in one list.
|
That was my thinking as well.
|
But more than one list would result in other problems. What if you want to delete one? Is it deleted in only one list? I think this would not be so easy. |
Yes, each entry would have to be treated as an individual in this method.
|
Then to further complicate it, what if you imported a cache into a specific
|
IMO it would be deleted in this list. |
I am pretty sure, that nobody wants duplicates in a list. |
Indeed...
|
Hm,
LG |
Don't forget the two buttons on detail-view. ;) |
The error seems to be in the basic list design. Think files, hard links and symbolic links, like in any linux or unix. |
Why do you thinkt this? Do you know our database schema? |
If not, why is there a design decision that caches can only be in one list?? On 2011-09-21 18:40, Sven Karsten Greiner wrote:
|
Because average users are confused if a cache reoccurs on a second list, if they deleted it from a first list. Just because some experienced users will take advantage of caches being present on multiple lists does not mean that the average user has any benefits from it. |
They are probably much much more confused by the consequences, like when downloading PQs. Skickat från min Android Mobil Bananeweizen reply@reply.github.com skrev: Because average users are confused if a cache reoccurs on a second list, if they deleted it from a first list. Just because some experienced users will take advantage of caches being present on multiple lists does not mean that the average user has any benefits from it. Reply to this email directly or view it on GitHub: |
I fully agree with HansJA. |
Thank you! As an aside: I suppose one could have a single list of all active caches stored, and Importing a PQ gpx then stores any caches not previously present, Deleting a cache should only be done as an explicit "delete" on a cache On 2011-09-21 20:46, gcey wrote:
|
Hello, I am a long time cgeo user and started using lists today for the first time. I was confused/disappointed/befuddled by the fact that when I imported a GPX file into one list it removed the overlap from the other list. As an anology, I found it like coffee being removed from the list of office supplies needed because I added coffee to the list of things needed at home. Just to explain how I was hoping to use lists. I have pocket queries of unfound caches centered around different locations, home, work, friends, event, and the like. When I am near one of these places I was hoping to use the stored list for that location to help speed up sorting, limit the mapping and the like. However now many of these overlap and the caches end up in only one of the lists. Ok. Which one? Well that depends on the last one that loaded it. Not to be completely unsympathetic to developers, it is easier to add a single field to a database than worry about creating a new table or tables to manage the lists. The earlier posts do discuss most of the issues. Folks thanks for all the good work. Keep it up. CGEO remains my preferred geocaching app. |
Ability to have caches span multiple lists like this is something I've wanted for some time. In my scenario, I have a 'local caches' list and I also have some 'special todo caches' list. If I re-load a GPX of local caches, then my reminder of a special 'todo' cache gets demoted to being just a 'local' cache. I can see how there is worry that this would only be used / understood by experienced users, but I disagree. Handled automatically this would be transparent to the 'idiot' user - they would put a cache in a list and when they deleted it from the list it would disappear from the device, the same as before. They wouldn't know anything special had happened. The advanced user would be able to hit 'copy to list' as an option instead of just 'move to list', and copying the cache would just create another reference to the same cache data from the second list. Deletion from the device would be handled automatically at the point when the cache is no longer referenced from any lists. Updating caches would be handled automatically across multiple lists by the master data being stored outside the list. |
+1 Consider this use case: I use c:geo exclusively and this is the only major complaint I have about the app. Thanks, DJL |
I was just curios about the oldest open issue. ;) |
I think in principle we are all in the same book - but besides the effort required, also the details of how to present this to the user are IMO not final yet. |
I'm still curious about this issue and did some analysis. Predefined ListsStoredList.TEMPORARY_LIST_ID = 0 "temporary" As far as I can see only the STANDARD_LIST is the only predefined list used in the DB. Custom ListscustomListIdOffset = 10 Current DB Schemacg_caches.reason cg_lists._id +10 == cg_caches.reason Model Classcgeo.geocaching.models.Geocache Data Access Classcgeo.geocaching.storage.DataStore Methods / Queries involvedloadInViewport(): selects cg_caches where reason >= StoredList.STANDARD_LIST_ID
MOVE_TO_STANDARD_LIST: UPDATE cg_caches SET reason = StoredList.STANDARD_LIST_ID WHERE reason = ? onUpgrade():
storeIntoDatabase(): loadBatchOfStoredGeocodes():
##Comparison of DB Schemas for Tags As far as I can see right now I would propose the Toxi variant with a third n:m mapping table: All in all it would be quite some change. |
Thanks for your deep analysis of the situation.
I would simply suppose a middle way: This will not fulfill the feature request but it would at least make the user aware, about what happens. |
As mentioned in some previous comments, the offline_box in the CacheDetailActivity would need some redesign. The offline state and the lists should be separated, because some buttons affect the Cache, some a specific List. An Idea could be to simplify the view with "+" and "-" buttons. "+" add the Cache to a List "-" removes it from a List. The last hit on "-" removes the Cache from the DB. |
Yes, this could be a first step. |
As I just experienced the "one list per cache" problem, I am motivated to join the discussion. Right now a geocache can be downloaded and stored on a list. And only on one list. My problem: Having lists suggests to the user that he can put caches on them. What else are lists for then, right? And the user (rightly so) assumes that caches stay where he puts them. But he also assumes, when he downloads a PQ that all the newly downloaded caches will end up on the (new) list which the user specifies. The solution: Of course, as already mentioned above, we have to decide what to do, when the user wants to delete a cache. I suggest to give the user a notification that the cache is on more than one list and whether he wants to remove it only from the current list (=change the m:n table) or from all lists (=delete it completely). Second problem solved. Please discuss! |
That's not the problem. The problem is the current implementation which must be changed. |
As a user, I would greatly appreciate the effort put into fixing this 4.5yr old issue. |
I think, for the majority of users (who are not very tech affine) the word "list" is more familiar from daily life. |
- Added n:m relationship between caches and lists - List of Lists in CacheDetailActivity - Added CopyToList Command - CacheDetailActivity Menu adjustments - Fixed basicDebugUnitTests - Adjusted CachePopup Dialog
- Added n:m relationship between caches and lists - List of Lists in CacheDetailActivity - Added CopyToList Command - CacheDetailActivity Menu adjustments - Fixed basicDebugUnitTests - Adjusted CachePopup Dialog - GPX Import with multilist support - CleanIfNeeded
I agree completely with @caigner regarding the use of the word "list" instead of "tag" or "label". I believe it is much more natural for the majority of users. |
Fix #87: store caches on multiple lists
Please open new issues if you have new ideas about the UI for this "cache on multiple lists" feature, or about the use of tags vs. lists. |
The UI is good as it is. For "cache on multiple lists" the list UI doesn't have to be changed. It is mainly a matter of how the database stores the relationships between caches and lists. |
I have a suggestion.
My caches are organized in lists like To Do, Events, My Hides, etc. Every time I import a new GPX file that contains a cache that is in one of my other lists, it pulls that cache out of the list and places it into the Stored list along with the others from that GPX.
Would it be possible to allow importing of a GPX without affecting other stored lists?
Thanks much! :-D
The text was updated successfully, but these errors were encountered: