Ultimate Scrobbler is the app that I've created as my capstone project for the Android Nanodegree of Udacity.
This app will scrobble played songs in the device through Spotify to Last.fm. In the future other services like Libre.fm and other players could be supported.
In order to unlock the keystore, two variables must be set in gradle.properties
CAPSTONE_KEYSTORE_PASSWORD
CAPSTONE_KEY_PASSWORDThis app uses an API provided by Last.fm and it requires an API key and an API secret stored in the following variables in gradle.properties
LAST_FM_API_KEY
LAST_FM_API_SECRETThe app has 3 different screens:
- Configuration: in this screen you can select the number of songs per batch and if you want to send the now listening message to Last.fm This is also the screen where configure your credentials for the service.
- Scrobble songs: in this screen you'll see the different songs that have been scrobbled to your account. Clicking in a row of this screen will launch a song details screen with additional information that might be downloaded for the song.
- Queue to scrobble: this screen shows a list of songs that have been played and are queued to be scrobbled in the future. A song is added to this queue once it has been listened for about half its time to avoid adding false positives while skipping songs. This screen has a FAB to force a manual upload of queued songs to your account.
This app wouldn't be possible without the following libraries
- Dagger 2
- ButterKnife
- Timber
- RxJava
- RxAndroid
- RxBinding
- RxRelay
- Retrofit
- Retrofit RxJava2 Adapter
- OkHttp
- Moshi
- Moshi Lazy Adapters
- Picasso
- AutoValue
- AutoValue Moshi
- RxPreferences
- Three Ten BP
- Three Ten ABP
- Material Design Dimens
- Indicator SeekBar
- Schematic
- ChipCloud
- Flexbox
- Firebase Job Dispatcher
- Gradle Git
- Gradle Versions Plugin
- Dexcount Gradle Plugin
- Apt
- OkLog
- Chuck
- Stetho
- LeakCanary
- RxSealedUnions2
Copyright 2018 Borja Quevedo
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.