Giter Club home page Giter Club logo

shelves's Introduction

Introduction

Shelves is an Android application that manages your collection of apparel, board games, books, comics, gadgets, movies, music, software, tools, toys, and video games.

With Shelves, you can add items in a number of ways, such as:

  • By scanning barcodes
  • From the Internet
  • Entering details manually

You can also import and export data from a variety of sources, including Google Books, Google Drive, BoardGameGeeks.com, or Shelfari. There's also full support for software such as Dropbox, Delicious Library, and MediaMan.

Shelves lets you organize your collection by:

  • Providing sorting rules on title, price, author, or format (CD, DVD, Vinyl, e.t.c.), and more
  • Searching across all available item attributes
  • Tagging and filtering your collection
  • Allowing for the selection of multiple items

You can loan items to friends in your contact list, or rate items for your personal use. You can also opt to place items in a separate wishlist category.

Grab the app on Google Play!

Differences Between This App and the Published Version

Although the code is open-source, there are a few differences between it and the version distributed through Google Play:

  • All item lookups are not supported.
    In order to perform a lookup for item information, Shelves pings a server (that I own) that does most of the "hard work." The server then returns the results in an XML format for Shelves to parse and represent. I can't provide access to this server publicaly, since it'll make my costs skyrocket. However, you can run your own server, and implement your own lookups. This doesn't affect board games or comic books.

  • License checks are not enforced in the open source version. It'll simply always show the ads. This code automatically assumes that the app is not paid for. However, you can easily set a flag to just enable all the features and remove ads. You'll need to find references in LicenseCheck and just have the result set to true. License checking is currently only used in two places: TabSelector and UIUtilities.

Dummy Data

If you wish to play around with some Shelves data, the databases folder contains some simple databases for each item type. You'll want to place these in your phone's data/data/miadzin.shelves/databases folder. This is impossible for real devices that are not rooted, but emulators and rooted phones can access the folder through DDMS.

Wishlist

Changes that I'd like to implement--in no particular order--include:

  • Removing deprecated code; this mostly depends on converting over to Fragments
  • Updating a lot of the UI
  • Finding a good online Wine or Beer API
  • Adding more translations
  • Integrating a barcode scanner directly into the app

A Warning About How Terrible the Code is

When I started this project, I knew very little Java, and had no Android knowledge.

As such, there are probably a bunch of things that could be abstracted and improved upon. All of the code was written in my spare time--I made no glamorous life off of this project. I also only own one Android device, so I did my best writing code that covered as many use cases as possible.

History

Shelves began as a sample project by Romain Guy in January 2009. It was used to demonstrate various capabilities of the Android OS, way back on Cupcake (1.5). It only managed book data.

After it became apparent that the project would not be distributed through Google Play, I brought out my own fork in April 2010. Over the years, I added much more functionality, and gained a lot of insight into dealing with the quirks of various Android devices, versions, form factors, and manufacturers.

Unfortunately, it's gotten to the point where Shelves is simply too difficult for one person to maintain. Rather than abandon the project, I opted to make most of my code open-source. And here we are. The only closed-source implementation is the actual server-side lookup, as described above--but it shouldn't be too hard to figure out what to do.

My infinite gratitude to the people who downloaded and supported this app, as well as everyone who offered words of praise or encouragement. It has 32,000 active users (more than the population of the town I grew up in) and over 100,000 downloads (a figure much higher than I can count). It was for you all that I kept this app going for so long

Donation

If this code or app helped you out in any way, you might want to consider buying the unlocker on Google Play. It'd be a nice gesture! ๐Ÿ˜€

License

Copyright (C) 2010 Garen J. Torikian

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

shelves's People

Contributors

gjtorikian avatar jamesiarmes avatar lgu77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shelves's Issues

Feature Request: Format of Data selection

Hi,

would be great if there are additional informations for the format of data - best provided by the query -

For example:
Films: Blue Ray - DVD
Videogames: PS1, PS2, Wii etc.

Thx
Ingo

Shelves [3.8.0] The Hide Collection feature does not work after doing Hidden / Show a second time

Expected behavior

Hide collection can work after doing some Hide collection

Actual behavior

After doing Hide all the collection then I show them all. And I do Hide collection once more. At this time it does not work anymore

How to reproduce

  • Download app on playstore
  • Open the app
  • Tap the Collection icon at the top
  • please Hide all your collection and click OK
  • all collections can be hidden
  • Then Tap again on the Collection icon and display all the collection then click OK
  • all collections can be displayed
  • do the Hide collection again
  • Tap on the collection icon at the top
  • please Hide all / some collection and Click OK
  • At this time, your Collection can not be hidden

Device: ONE PLUS 2 OxygenOS Version 3.6.1

Operating System:Android 6.0.1
App Version : 3.8.0

Recording of the bug

https://youtu.be/9J3ricVzDZ8

Can not import collections using Dropbox

I have purchased the unlocker so I have the full version of the app. I've tried all of the available methods for importing an existing collection (one that I created with my previous android phone) into my new phone.

Authenticate with Dropbox -- I successfully authenticated my dropbox account and it created a folder under Apps/Shelves for Android. The collections are all there, as txt (tsv) files. The issue arises when I go to settings in the collection activity and select the "Bring From Dropbox" option. A menu appears with the title "Restore from Google Drive" (?) and I select the collection I want...then instantly a toast message pops up that says "Couldn't find the import file".

[buy from google play] is not work.

Expected behavior

Buy from google play must works.

Actual behavior

When clicking on Buy from google play, we did not find anything

How to reproduce

  • Download app on playstore
  • Open the app
  • Tap onBuy from google play
  • continue by clicking on Google playstore
  • you can not find anything

Device: ONE PLUS 2 OxygenOS Version 3.6.1

Operating System:Android 6.0.1
App Version : 3.8.0

Recording of the bug

https://youtu.be/T12sHDIu86I

Can't add board game from online sources

When I try to add a new board game from online sources, the application crashes. I am able to search, but when I click a result and choose to add it it crashes. It looks like the problem is that the image URL is missing the protocol, but I'm having trouble walking through how this url is generated.

Items missing in large restore from Google Drive

Hello,

First of all, many thanks for this great app. It's incredibly useful.

I've just switched phones and am trying to restore from a google docs BU. When I run the import it seems to halt part of the way through with out providing feedback. I'm trying to restore 1305 items but end up with anywhere between 500 and 975 when deleting all entries and running a fresh import. Leaving imported items and running another import seems to have no effect.

Anything you can do to help me rectify this would be much appreciated.

Andrew

Graphics are too small

The box art/etc images are too small on my Samsung Galaxy S4. Whether its a Movie, Board Games, etc. it doesn't seem to matter.

account on my phone

I accidentally erased them and I need to put the information back onto my phone because not have you set up with Verizon and it is straight talk Or AT&T Can also track phone

Import Not Working

I've been trying to add new books to Shelves 3.7.2 for over a month, single and batch additions. The app reports the book is found but it never resolves the "importing" or "adding" notice. I've experimented with Wifi and Data connections to determine if there is a difference, and there appears to be not.

There was a comment here in the issues about the failure to search due to a possible change in the Amazon API, which would explain the inability to download the title details, but either way, until this is resolved, the app is useless to me. I've been a paid user for many years and use it frequently to track various household inventory items. I love the ease of use and integration with Amazon and other data sources.

Thank you.

Searching in notes

Hiya I found that I cannot search items based on entries I made mysel... like if I entered a tracklist manually for manually added items and then search for certain tracks.
Or search in things that I wrote in the notes-field

Cannot delete item

Hiya Garen,
I hope you'll be able and willing to help me....
I have an extensive cd and dvd collection that in the last months i have been cataloging using shelves. Recently, my phone was serviced and reset to factory settings. My database was lost.
Luckily I had a backup from a few months ago, so I didn't need to do evetything anew... but after restoring the old database, I found there is one entry that now shows up 5 times which I cannot delete or even access, because that crashes shelves. I did purchase the unlocker. But am at a loss to how to fix this. I have no use able programming skills.
I use the full version on a Samsung note 2 running android 4.3

Search function broken

Unsure if this is a change in Amazon's API or the app itself. Search function always say "0 [media] found" and the barcode scanner is perpetually "Adding..." when used.

app crash when press cancel while in choose account to Send to Google Drive and Restore from Google Drive

Expected behavior

it shouldn't be crash when user click on cancel button from choose account while in Send to Google Drive and Restore from Google Drive

Actual behavior

when i click on Send to Google Drive and select a collection to send in Google Drive the app crash when i click on cancel button while in choose account . The same situation occurred in Restore from Google Drive

How to reproduce

  • download the app
  • run it
  • then go to settings
  • click on Send to Google Drive
  • select a collection then press ok
  • it must be wants choose account
  • then press cancel
  • note the bug

Browser/App version: Shelves v3.7.2
Operating system: android 6.0

Recording Of The Bug

https://www.youtube.com/watch?v=3fPrqH-ROYA

Tags invisible

For a number of recent releases, my existing tag list has become invisible. Tags exist however and can be selected by trial and error working up & down the list; this means that when you look at an existing item you can see it's assigned tags. The issue is at the assigning stage.

Anyone else affected by this?

Phone: Samsung Galaxy S2 & Android version 4.0.4

Data files missing on phone changeover

I have just swapped phones & networks - Samsung Galaxy S2 to S4. I used My Backup Pro for backup & manual file copy of media files.

All that came across was the Unlocker app - no Shelves app & no data files.I reinstalled Shelves from Google Play but cannot locate locate any data files. Even when reviewing the My Backup Pro restore file list, only Shelves Unlocker is available?

Would hugely appreciate any tips please. Many thanks

Missing covers

All covers of my shelves are gone. Did'n find a way to get covers again without re-scanning the barcode

Shelves crashes when using "scan to find in shelves"

Issue: Shelves crashes when using "scan to find in shelves"

Hardware: Samsung Infuse android 4.2.2 (CW 10.1 mod)

Feel free to request additional info.

Question: Where does Shelves pull information/ descriptions for films from? And is this changeable?

Shelves showing adverts despite owning unlocker

After the latest update ads are shown despite unlocked being installed. I have tried uninstalling and reinstalling but it makes no difference. Other users are also reporting this issue in Play store reviews.

Bug: No Itemname on Calender

Hi,

if i give out one item to a friend and create an calender enrty its named

german:
null an Contact verliehen

So the variable for the Itemname is not provided

Thx
Ingo

Data files missing on phone changeover

I have just swapped phones & networks - Samsung Galaxy S2 to S4. I used My Backup Pro for backup & manual file copy of media files.

All that came across was the Unlocker app - no Shelves app & no data files.I reinstalled Shelves from Google Play but cannot locate locate any data files. Even when reviewing the My Backup Pro restore file list, only Shelves Unlocker is available?

Would hugely appreciate any tips please. Many thanks

Cannot import Shelves to Shelves

I have used Shelves for some time now and since the Kit Kat update, I cannot import Video Games from the Shelves list stored on the internal storage of my phone. How do I fix this so I can import my collections to my replacement phone. I was able to import Movies and Software but the Video Games gives me an error message telling me the Application Shelved has stopped responding

The app crashes when clicking on the "Calendar" feature

Project Information

Repository : https://github.com/gjtorikian/Shelves
Title : Shelves
Publisher : Garen J Torikian

Expected behavior

Supposedly, I can use the "Calendar" feature without any errors.

Actual behavior

When I enter the settings menu and try to click on the "Calendar" feature, the application suddenly crashes. And I have tried for the second time, but the crashes still happens.

How to reproduce

  1. Install and open the app
  2. Go to the "Collection" page and select a collection (For example, just click on "Board Games")
  3. Next, go to the settings menu (located at the top right of the application)
    afafaf.jpg
  4. Next, click on the "Calendar" feature. Then you will find an error like I experienced.

  • Device: Xiaomi Redmi 4X
  • Operating system: Marshmallow, 6.0.1 mmb29m (CPU: Octa-core Max 1.9 GHz, RAM: 2 GB)
  • Application Version: 3.7.2

Recording Of The Bug

https://www.youtube.com/watch?v=xm_cpCSLID8&feature=youtu.be


Logcat

05-29 00:22:10.548 14823 14823 E AndroidRuntime: FATAL EXCEPTION: main
05-29 00:22:10.548 14823 14823 E AndroidRuntime: Process: com.miadzin.shelves, PID: 14823
05-29 00:22:10.548 14823 14823 E AndroidRuntime: java.lang.IllegalStateException: ListPreference requires an entries array and an entryValues array.
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.preference.ListPreference.onPrepareDialogBuilder(ListPreference.java:249)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.preference.DialogPreference.showDialog(DialogPreference.java:306)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.preference.DialogPreference.onClick(DialogPreference.java:277)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.preference.Preference.performClick(Preference.java:994)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:214)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.widget.AdapterView.performItemClick(AdapterView.java:310)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3081)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.widget.AbsListView$3.run(AbsListView.java:3947)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:742)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:95)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:5527)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
05-29 00:22:10.548 14823 14823 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
05-29 00:22:10.550 14823 14823 E MQSEventManagerDelegate: failed to get MQSService.

Feature Request: Contact selection

Hi,

would be great if the suggested contacts are the same that i've selected in phone setup and not every possible contact (I've uncheckt the sim-contacts for example)

thx
Ingo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.