Google Drive Sync for premium and automatic Download for all Users

Written by sven. Posted in releases

For users of the premium version this release brings a big change: Instead of my own servers this version uses Google Drive for synchronizing your uPod devices. Not only is the sync faster, but also the Google servers are a bit (just a tiny bit) more reliable than the single server I’ve used before. So there will be less downtime. You won’t notice any changes, as uPod behaves the same way as before — only on the first start you will need to grant uPod the required permissions to access your Google Drive account. And you should quickly update all of your devices as they’ll run out of sync otherwise when one will sync against the older server and others against Google Drive.

For users of the free version I have a little present: A feature which was exclusive to the premium version is now available to all of you and that will make your live with uPod even easiere. It is the full automatic download. Already before you could configure which episodes should be added to the download queue automatically, but with version 6 uPod will now automatically download all episodes from the queue whenever a WiFi connection is available.

And for all of you there are some other new features:

  • uPod now uses Android’s job scheduling API when running on Android 5 or above. This might result in less accurate scheduling for tasks like automatic sync and download, but helps Android to save battery.
  • I’ve restructured the navigation drawer on the left to more clearly show what’s the scope of the Saved for Later section.
  • Lists with epidoes from multiple podcasts (like the playlist) no longer use the podcast color for the episodes’ progress bar, but uPod’s key color instead, to make the UI less gaudy.
  • I’ve increased the drag and drop speed when moving episodes around in the playlist or the download queue.

Further on a lot of bugs have been fixed.

Have fun!

Falling asleep with uPod…

Written by sven. Posted in features, releases

Are you falling asleep while listening to your podcasts? Regarding the fact, that the sleep timer was on rank four of the most requested features on uPod’s support site this seems to be a common problem among podcast listeners. If this is the case for you, I suggest that you think about whether you are listening to the right podcasts. If you are sure this is already the case, then you might be happy to read that uPod 5.1 Premium finally brings a sleep timer.

But a sleep timer not only helps you to avoid missing too much content when falling asleep. It also gives you a possibility to automatically let you know when your workout or your lunch break is over and it gives you an easy option to finish playback at the next sensful break position (end of chapter or episode).

To activate the sleep timer simply bring up uPod’s playback screen eighter by tapping the playback bar inside uPod or the playback notification from Android’s status bar. If you are a user of the premium version, you will find a new sleep timer icon in the lower right of the playback screen while a playback is running. Simply tap it and pick one of the three options from the menu (see screenshot above):

  1. Stop at end of chapter
  2. Stop at end of episode
  3. Sleep timer

Afterwards the sleep timer icon will be shown “active” and a text besides it indicates the current mode: “Chapter”, “Episode” or the remaining time of the timer (see screenshot below).

I am always trying to provide an outstanding usability in uPod. Input of the desired timer value is one such cases: Other players let you scroll through huge lists of durations with an accuracy of five minutes or more. Due to an effective timer input control (similar to the one of Lollipop’s stock timer app) you can quickly enter any timer value you want in uPod with an accuracy of a single second with just a few taps. For those developer who want to raise the usability of their app to the same level, I’ve open sourced the timer duration picker on GitHub.

Happy sleeping!

uPod 5.0: A new Chapter in Playback

Written by sven. Posted in features, releases

Man what a headline! I should have become a marketing guy! But now back to my unglamarous developer live: I am really proud to present chapter support in uPod! Especially in the German podcast scene chapter marks are a widely used feature. They provide you the possibility to skip chapters not relevant to you or to relisten specific topcis later. Further on they may provide furhter information like images or web links. uPod 5 implements all of these features.

So contact the publishers of your favorite podcasts and convince them to include chapter marks in the future. I already use them in my podcasts and it is really quite easy if you set the chapter marks immediately during recording. The only thing the publisher has to do then is to name the chapters in the post production and to embed them in the final media files which is easy with Auphonic. (And using Auphonic is anyway a good idea as it normalizes the levels of all recording tracks. Would all publishers use it, I could remove the gain button in uPod…). The auphonic blog contains a helpful post regarding chapter marks for producers.

How do Chapters work?

uPod supports chapter marks in MP3 and M4A/AAC/MP4 files. This is something I am especially proud of: As there are no ready to use Java libraries available to extract chapter information from these files (except things like FFMPEG or MP4Box which would blow up the APK’s size to more than 50MBs) I’ve implemented my own parsers. This was easy for MP3 but a bit more tricky for M4A. I hope I’ll find the time to upload the stuff to GitHub some day.

As the chapter information is extracted from the media file, the file needs to be downloaded to make chapter information available. Then you can access it in two places:

  1. The epsiode details screen (the one you get when you tap an episode in a list of episodes)
  2. The playback screen

In the episode details screen the chapter list is for informational purpose only. More interesting is the playback screen: Here you get a chapter bar at the bottom. It contains information about the chapter at the current playback position including

  • the title,
  • a possible link (tap it to open it in the browser) and
  • the playback position within the chapter itself.

Further on it provides buttons to jump to the next chapter or to the beginning of the chapter or the previous chapter (when pressed within the first three seconds of the chapter).

Additionally, if the chapter has a chapter image, it will be shown in the playback area.

You can drag up the bar to unveil the full chapter list. For each chapter you get its start position, title, image and/or link indicator and duration. Here you can:

  • tap a chapter to directly jump to it while paused or playing
  • tap an image or link indicator to open the image or link

Headset Controls

If your headset provides buttons to skip and go back, then you can use these to navigate beteween chapters: If the episode contains chapters you will navigate between them. Otherwise the controls behave like before and will skip the full episode. This features is enabled by default in uPod. You can disable it in the playback settings.

Who will get it?

Accessing information for the chapter currently playing including image and link is available to all users. Accessing the full chapter list and navigating between chapters is available to users of the premium version only.

This is my compromise to help broaden the usage of chapters on the one hand and to making the premium version more interesting on the other hand.

Full change log

Here is the full change log of uPod 5:

  • Chapter support as described above
  • More intelligent color extraction from podcast coverarts (now also the accent color may be extracted from the coverart if there is a vibrant color with enough contrast to the background)
  • Fling scrolling is finally possible in the episode details now
  • Playlist button in playback view
  • Replaced the material share icon with the old, but better known one
  • Fixed double dialog border on pre-Android 5 devices
  • Several bug fixes

Another new Playback View

Written by sven. Posted in releases

The last update brought a new playback view. Though the visual update was welcome by most of you, some had complaints regarding the arrangement of the playback controls and the fact that show notes were provided using a bottom sheet:

  • The new arrangement of the controls in the playback view caused accidental clicks on the seek bar and thus unwanted position changes during playback.
  • Providing show notes as a bottom sheet made id impossible to view the show notes and control the playback at the same time what is an important use case for some of you.

Thanks to all of those who shared their thoughts!

That’s why I have again overworked the playback view in uPod 4.7: The seek bar is placed above the playback controls again now to get it out of the way and avoid accidental taps. The show notes have got their own brand new playback view which provides a lot of space for the notes and a full playback bar including seek button and a seek bar at the bottom. I hope you enjoy the new view as much as I do.

As a bonus uPod 4.7 brings episode counter bubbles in the “My podcasts” grid view showing the number of unfinished episodes for each podcast.
New playback viewPlayback show notes

New Playback View

Written by sven. Posted in releases

New playback view

The latest uPod release brings a brand new playback view which focuses even more on the podcast’s colors and makes room for additional playback controls planned for future releases. Accessing the show notes from the playback view is a joy now: Tap on the show notes button in the bottom bar and they will slide up from the bottom (see screenshot below). Swipe them up to fill the screen. Swipe them down to dismiss them.

Sliding Show Notes

Some users complained about a change in the previous release where only the latest episode of a podcast is added to the “New” section, when subscribing to the podcast. This requires a lot of manual work to save all of a podcast’s episodes for later. That’s why I introduce a new action to save all unfinished episodes of a podcast for later. You can find it in the action menu when viewing the episodes of a podcast.

And for those who want to clean up there device’s storage I’ve introduced an action to immediately delete all episodes listed in the “Recently finished” section.

Here is the full change log:

  • New playback view with more color and sliding show notes
  • Volume gain indicator shows current gain
  • Action to delete all recently finished episode downloads
  • Menu action within a podcast to save all unfinished episodes for later
  • New icons for play list and download list

uPod loves Marshmallows

Written by sven. Posted in releases

By the end of September Google released Android 6 aka “Marshmallow”. Besides the new doze mode — which is a huge battery saver — and a lot of other nifty stuff Google completely revised Android’s permission system: Instead of forcing the user to acknowledge a bunch of detailed permissions upfront while installing the app, installation and update now pass silently and the apps requests the permissions in the moment they are required for the first time. To make this work the app needs to be build natively for Android 6.

The newest release of uPod — version 4.5 — does exactly this. And the best thing: I’ve overworked uPod’s permissions, so that it doesn’t contain any critical once at all. So when you install uPod on Marshmallow you won’t be asked to acknowledge a single permission — not during installation and also not later on.

Besides native Marshmallow support uPod 4.5 brings the following changes:

  • When subscribing to a podcast only the latest episode is delivered to your “New”-section (instead of all episodes like before).
  • When streaming an episode, the download notification in the status bar is no longer visible.
  • The drag handle in the play list has been updated to more clearly state it’s purpose.

Playback Speed and Gain Control

Written by sven. Posted in releases

I have good and bad news. Bad news first: All uPod users who are on Android 4.0.x (ICS) will no longer be able to use playback speed control for audio episodes as uPod no longer supports 3rd party apps for playback control. The good news: All users on Android 4.1 (JellyBean) and above benefit from the new integrated playback speed control!

Yes, you no longer need to install an instable, battery sucking 3rd party app to control the playback speed of your audio podcasts. uPod has it integrated now (including instability and battery sucking). Because it’s a new feature I’ve marked it as experimental and disabled it by default. To use it you need to switch from the default “Android Player” in uPod’s playback settings to the experimental new “Sonic Player”.

As a bonus the new Sonic player brings another feature which — for me — is even more useful than speed control: Volume gain. Do you also know the situation where you try to listen to an episode with low recording levels in a noisy environment and though you’ve set the volume to the maximum the stuff isn’t loud enough? Consider this solved! The new integrated volume gain control increases the level of the audio file (the maximum amplitude) and can make playback way louder! Naturally this feature has it’s limits: If you try too high gains you will get sound artifacts. Simply try it out — it’s awesome!

The price conscious users among you might be happy to hear that both features are available in the free version!

Here is the full list of changes for uPod 4.1:

  • Integrated audio speed control
  • Integrated volume gain control
  • New option to automatically download “New episodes and episodes saved for later”
  • Episodes added automatically to the playlist can keep their “New” state now
  • Tons of bug fixes (many thanks to Peter Hardman who helped me to fixed two extremely hairy ones)

Playback speed controlVolume gain

uPod 4 – A lot has changed

Written by sven. Posted in releases

Version 4 turns uPod upside down. It’s main change is the move from a server based synchronization to a local one. In the past the uPod server was responsible for recognizing new episodes and triggering all devices to sync. Staring with uPod 4 the devices do the sync on their own.

What does this mean for you as a user? Well, most of you even wont recognize it. On the downside there is the fact that your device is now polling for podcast changes — be sure to adjust the new sync settings (frequency, concrete times of the day) to your needs. On the upside there are quite a few points:

  • Full control when to sync — simply swipe down in most views to start a sync.
  • Podcast specific sync — swipe down in a single podcast’s episode list to only check for updates of this podcast.
  • All meta data for all episodes of your podcasts are now available on your device. No more nasty loading from the server when scrolling through large episode lists.
  • Podcasts with sync errors are marked now as erroneous and provide technical error information.

As a result the uPod server is no longer involved in the syncing process (except for cross device synchronization — see below) and a running uPod instance does no longer cause me any costs. That’s why I am now able to provide a free version of uPod and that’s exactly what I do: What was just a trial before is now a full featured, free podcast player!

For the power users a premium license is available which provides some more enhanced features like:

  • Cross device sync of playback positions, playlist and episode states tied to your Google account
  • Chromecast support
  • Automatic download of the download queue (e.g. when connected via Wi-FI)
  • Podcast specific settings (e.g. auto add to playlist, only keep x latest episodes)
  • Up to two specific sync times per day

Of course all of you who’ve bought uPod in the past will automatically be upgraded to uPod Premium.

Another important change made is the way uPod handles episodes: Now you no longer _delete_ episodes you don’t need anymore, instead you mark them as _finished_. uPod tracks the state for all episode, so that you now have a better overview of what you’ve already consumed.

Enough now. Here’s the full list of changes in uPod 4:

  • Full featured free version (no longer only a trial)
  • Premium version with additional features (for all who’ve already paid)
  • Sync logic moved from server to device
  • Pull to sync in most views
  • Pull in podcast’s episode view to update current podcast only
  • Material design for playback view (thanks to Marc Große for his suggestions and feedback)
  • Mark episodes as finished instead of deleting them
  • New »Mark all as finished from here« action
  • Action to move single/multiple episodes to top/bottom of playlist
  • Immediate OPML import
  • Introduction cards instead of startup wizard
  • Fixed cancellation of downloads
  • Configurable space limit on the storage to be kept free

uPod 2.2

Written by sven. Posted in releases

I’ve had one week of vacation which was a great chance to implement some features I wanted to have in uPod already since some time and here are the results! One of the bigger changes is the possibility to sort a podcast’s episodes starting with the oldest. This is especially useful if you discovered a new podcast and want to listen to it starting from the beginning.

Another important feature for podcasts which do not deliver the full show notes in their RSS is the new “Open in browser” button below an episode’s show notes: It open’s the episode’s link in your system’s browser. If your podcast publisher has done his job well, this will bring you to the full show notes of the episode. Notice that not all podcast providers put a link element into their RSS, so you will not see this button for all episodes.

If you are using multiple podcast players, you might like the new OPML export. This feature allows you to export your uPod podcast subscriptions in the standard OPML format which is understood by most feed readers and podcast players.

A tiny change makes the “Play next” action more useful: It still adds the affected episode to the second position of the playlist when currently a playback is running or paused, but if no playback is active it adds the episode to the top of the playlist which might be your intention in this case.

A new option to skip not downloaded episodes on the playlist avoids you from getting ruined as uPod will no longer automatically start to stream when you are on a mobile network. And finally the new action to delete a whole podcast including all of it’s episodes makes it easier for you to get rid of podcasts you don’t like any more without needing to delete all of it’s episodes manually.

Here’s the full change log:

  • episode details view: button to open episode’s link in browser
  • option to sort episodes oldest to newest in a podcast’s episode list
  • “Play next” action now adds episode to start of playlist when idle
  • action to delete a podcast and all it’s episodes from the library
  • OPML export
  • skip not downloaded episodes on playlist by default
  • dismissed Polish and Russion translations
  • lots of bug fixes

Better Media Control from your Bluetooth Headset

Written by sven. Posted in features, releases

Most bluetooth headsets provide a pause/play button and a skip and a back button to move between music tracks. Often holding down these buttons performs a fast forward/rewind. For podcasts jumping back and forth a defined time period (e.g. 30 seconds) within the current episode is the most important use case using the headset controls (besides toggling play and pause). This is why uPod provides since its first version an option to swap the meaning of headset control buttons, so that the skip and back buttons do a fixed time back/forth jump within the episode. You can configure this in uPod’s playback settings.

In older versions of android it was then possible to tap and hold your headset’s skip button to skip the episode in uPod. Unfortunately this isn’t working in newer versions anymore (don’t have clue why — if you find out please let me know). So the possibility to skip to the next episode was effectively lost.

That’s why the new uPod version 2.1 brings a new playback setting: If you configured your skip button to do a fast forward instead and you enable the new double click option, then double clicking your headset’s skip button will bring you to the next episode on the playlist. Unfortunately even this isn’t completely flawless: If you make the double click to fast the second button event will be filtered out by android or the headset. Try it out and let me know whether you like it.