PocketBible for Android Updated – Version 1.7.15

On Tuesday, August 29, 2023 we uploaded a new version of PocketBible for Android to Google Play (version 1.7.9, build 290). This is the first update in quite a while — we’re a little embarrassed to say it’s been about 5 years. Since the end of August we’ve uploaded several revisions — the latest being 1.7.15.

Because of the issues you’ll read about below, it was necessary to get this update released as soon as we could. As a result of jumping 5 Android versions (from version 8 to 13 — that’s “Oatmeal Cookie” to “Tiramisu” for those of you who follow Google’s cutesy naming system for their operating systems), we knew we would discover little things that would need to be fixed right away and so far that has indeed been the case. Updates are documented near the end of this article under “Phase 1”.


Why So Long?

I don’t want to make any excuses but I also want to be honest about what the situation is. You may know that the development team here is pretty small. We don’t have people assigned to each platform. We move from iOS to Windows to macOS to Android as needed. I originally developed our Android app, but pretty quickly passed it off to a more junior person. When that person left, I hired a replacement. About 5 years ago, that person left, too.

By then, the app was in pretty good shape and didn’t need a lot of updates. It had gotten to where I no longer knew my way around the code. And since I’m not an everyday user of the Android platform in the same way I am iOS, the operating system changed to where I no longer knew it either.

So when the Android app eventually needed updating I went to an Android programmer I knew who worked on it as a side gig for a few months. Eventually he took a different full-time job and couldn’t work on it any longer. So I found a really good contract developer who did a lot of the work to bring it into the 2020’s and get us almost up to Android 12.

And then this Bible thing happened…

Why Update Now?

If you’re a regular reader of this blog (that’s about 4 of you I think), you know that earlier this year we discovered a problem in the way Bibles are processed and stored for use in PocketBible. When we first wrote PocketBible, any time a new Bible was released we had to update the code in PocketBible and release a new version. This is because Bibles are very special and form the heart of how PocketBible works. That means any unique aspects of how they interact with other Bibles and with Bible reference books often has to be done directly in the PocketBible code.

So years ago we updated the Bible format PocketBible uses so that these unique aspects could be embedded into the Bible and not require PocketBible itself to be updated each time we released a new Bible. Turns out we didn’t go far enough. We have several new Bibles coming out that are just different enough that they couldn’t be published without updating every version of PocketBible. So we decided to stop what we were doing on the new Windows version of PocketBible and update every other version of the app. Then go back to the Windows version and update it, too, for this new format.

The macOS version with these changes was released a couple months ago. The iOS version is in beta.

And then this Google thing happened…

PocketBible Disabled on Google Play

Google decided late last year that if your app wasn’t built with the latest or next-to-latest version of their SDK, that you couldn’t be on Google Play. (It is more complicated than that, but that’s the net effect.) They said they were going to disable apps starting in May 2023. But they gave us the option to request an extension to August 2023, so we took it.

Then, after acknowledging we had until August, they said they changed their mind and they were going to pull the app in May.

We were right in the middle of macOS and iOS updates at the time and had been planning to get to Android before the end of August, so we have spent about 3 months explaining to people how to side-load PocketBible and bypass Google Play.

This forced us into a two-phase approach to making the Bible-format updates to the Android app. First, we needed to bring it up to date with the latest SDK. Google required version 31 compatibility, but version 33 is the latest so we went all the way to 33. Until that was done, it was pointless to start into the change for Bible files

Phase 1

Version 1.7.10 (September 2, 2023) addressed these issues:

  1. If you were using an SD card to store your books, they seemed to have disappeared. The method of finding your SD card changed in a recent version of Android OS and PocketBible was looking in the wrong place. It should be able to find them now.
  2. When using the dark UI theme, the list of books open in the active pane was displayed with gray text on a gray background. Similarly, the pop-up list of recently visited verses was similarly gray-on-gray.
  3. The dark mode theme was inexplicably using a dark blue color instead of a black color for the top and bottom action bars. Turns out this change was introduced as a debugging tool by a contract developer and we kind of liked it so we left it in. You did not like it. We reverted to black and very dark gray for the action bar, bottom action/tool bar, pane tabs (AFS), and go-to-verse buttons.
  4. An issue with viewing and saving Autostudy reports (AFS) was resolved.
  5. Resolved an issue that caused the app to crash when “Buy/Apply Upgrade” was selected from the navigation menu.
  6. Books that include the Laridian logo on the title page now use our newer blue and orange logo. In the process of doing this we fixed some previously unreported problems with displaying images.
  7. In the process of doing this upgrade, the minimum supported version of Android OS went from 4.1 “Jellybean” up to 4.4 “Kitkat”.

Version 1.7.11 (September 7, 2023) addressed these issues:

  1. We thought we had fixed Strong’s number searches but we hadn’t.
  2. Title page logo image was not being displayed on newly downloaded or moved books.
  3. Splash screen image was too tall on tablets in landscape orientation.
  4. Changed the image on the login screen to the new Laridian logo.
  5. Made internal changes related to how colors and styles are applied in the dark and light UI themes. There could be minor color changes as we seek to better organize the code in this regard.

Version 1.7.12 (September 20, 2023) addressed these issues:

  1. Re-architected the process of launching the app to get control over the transition from the onboarding slideshow, registration reminders, and registration/login screens to the main book view.
  2. Addressed a problem where deleting a book would remove it from the list but not actually delete the file.
  3. Added new UI color schemes for AFS subscribers.
  4. Minor changes to the default “Light” and “Dark” UI color schemes to improve general appearance.
  5. Treat the legacy AFS and AFS subscription differently, since features are now different between the two.
  6. Revert to “no AFS” if the user logs out of their account.
  7. Show logged-in customer ID, feature set, and AFS expiration date in About box.
  8. Get rid of boxes around bottom action bar buttons.
  9. Style the audio and autoscroll context menu bars with rounded corners and slightly more transparency.
  10. Added an option to control whether or not pane tabs show the book category (AFS). Only show the category when pane is inactive. Active panes always show abbreviation of active book.
  11. Removed “Exit” from the action bar menu. This is a hold-over from when mobile operating systems did a bad job of managing memory when apps were left running. It’s 2023 and nobody exits apps anymore.
  12. Don’t do the navigation menu animation demo. We all know there’s a slide-out menu on the left side of the app.
  13. Updated Help to describe tabbed panes. Include info on turning on/off categories in pane tabs. Document new AFS features.

Version 1.7.13 (September 25, 2023) addressed these issues:

  1. Restore “Journal” to the navigation menu for Legacy AFS owners. In 1.7.12 it accidentally required an AFS subscription.
  2. Make standard “Dark” and AFS “Black” themes darker based on user feedback.
  3. Adjust splash screen blue to match launch icon blue.
  4. Add an option to disable linked-to verse highlighting.
  5. Fixed some problems running on Android 4.4

Version 1.7.14 (September 28, 2023) addressed these issues:

  1. If the user deletes the Users Guide then selects “Help”, it is automatically reinstalled from the app bundle.
  2. Words of Christ could be unreadable or appear be displayed in the wrong color when certain highlight colors were used and “words of Christ in color” option was turned off.

Version 1.7.15 (October 6, 2023) addressed these issues:

  1. Resolved an issue where bottom action bar was getting partially hidden (or over-compensated for) under certain circumstances related to pixel density:
    • Split screen
    • Side panel open
    • Note editor (or any time keyboard was showing)
  2. Addressed several aesthetic issues when font size was set to its largest and smallest sizes in Android Settings and when “make everything bigger/smaller” was set to its extremes:
    • Pane tabs (AFS).
    • Note title above editor.
    • Go-to-date dialog for devotionals
    • Go-to-verse spinner and book/chapter/verse picker for Bibles.
    • Margin preference screens
    • Splash screen
  3. Made the text color used for book titles on the library lists have more contrast.
  4. More correctly position the autoscroll and audio toolbars in more circumstances (AFS).
  5. Addressed further problems with saving and printing Autostudy reports (AFS).

Phase 2

The above just gets us to where we can start doing the work we came here to do. We need to port the C++ code that has already been implemented in PocketBible for macOS and iOS to Java for Android.

Beyond

Once we get this work done, we hope to more actively update the Android app. Admittedly, it has been a bit of a problem child over the years and we’ve let it get away from us. But more importantly, finishing work on this version will let us return our focus to PocketBible 3 for Windows, where we have to do it all again in yet another programming language.

Thanks for your patience.

No Exit

While updating the Android version of PocketBible over the last couple of weeks, we took what we thought would be the non-controversial step of removing Exit from the action bar menu. In the light of some complaints, I thought I’d explain.

History

While the removal of the Exit function from PocketBible for Android seems abrupt and a step backwards in terms of giving users control over what’s going on on their device, the fact is that it’s the presence of the Exit function that is an anomaly.

Back in 1993-94 we experimented with Bible software on the Newton MessagePad. Including an Exit option on that platform was allowed, but the OS did a good job of managing memory without it and it wasn’t absolutely necessary.

Introduced in 1996, Palm OS discouraged apps from having a way to exit. It managed apps itself. Users weren’t supposed to think of “apps” so much as accomplishing a task. The idea of “launching” and “closing” were foreign to the “Zen of Palm”.

At about that same time, Windows CE was telling developers that mobile users didn’t need an explicit way to close their apps; the operating system would handle it. The app didn’t ever terminate itself; it was just told when it was about to be terminated, then it was terminated by the operating system.

iOS came along in 2007. Apple strongly discouraged developers from including any kind of exit functionality. Again, the OS managed memory better than the user could. Keeping apps around meant they launched faster.

Including the ability to exit an app was not recommended in Android (2008). Once again, the OS was better able to manage resources than the user.

So we come into last week’s decision to remove Exit from the action bar menu with a 30-year history of mobile operating systems discouraging or disallowing “exit” or “close” functionality in apps.

Benefits

The main advantage to the user of allowing the OS to manage running apps is that frequently used apps are more quickly and easily available.

Android facilitates this behavior by being able to intelligently decide which apps it should terminate to make memory or other resources available for the currently running app. It has ways of controlling how much CPU time is used by background apps so they can continue to work if necessary without affecting the responsiveness of the foreground app. (PocketBible doesn’t do any work when it’s in the background, but many apps do.)

Allowing Android to decide when to load and unload apps lets it more effectively manage battery life by minimizing loading activities and controlling background activities.

Android is able to predict which apps a user is likely to launch and keep them ready in memory as part of reducing launch time as described above. Similarly, it can terminate infrequently used apps when you’re done with them.

The Dark Secret

Don’t tell anyone, but that Exit option didn’t actually terminate PocketBible. What we did was programatically press the “back” button on the bottom of the screen while ignoring our own navigation history. So it was as if you had pressed “back” a dozen times to get past all the verses you had visited, then pressed it one more time to go back to the launch/home screen. We maintain your navigation history for your next session, of course, but internally that’s all we were doing.

Android has a “halt” method we can invoke to force the app to stop, but using it is strongly discouraged. It doesn’t allow for a controlled exit of the program and can cause data loss. So, yeah. Exit didn’t exit.

So How do I Exit the App?

Easy. You can exit PocketBible the same way you exit all your other apps, and with fewer screen taps than you were doing before. Just tap the “Home” button (or perform the “Home” gesture if that’s how you have it configured).

In other words, you could say we didn’t remove Exit, we just moved it to the bottom of the screen and made it look like a little circle. Yeah, that’s what we did — we just moved it to make it more convenient.

You’re welcome! 🙂

“Side-loading” or “Manual Install” Instructions for Android

This is an old article but the general idea still works not just for Kindle, but for installing PocketBible for Android onto any Android device from our website instead of from Google Play.

If you have the option of using Google Play on your device – even if it didn’t come with it already installed – that is the easiest way to install PocketBible. But if you must do a manual installation of PocketBible, this is how you do it.


You need to make sure you’ve enabled “third party apps” on your Kindle. Go to Settings and look for “Device” (it may be in the “More…” menu). Look for “Allow Installation of Applications” and turn it on. On the HDX, this option is under Applications in Settings. You’ll get a warning message but that’s OK – they’re just trying to scare you into only buying software from Amazon. 🙂

For newer Kindle devices, swipe down from the top and select Settings. Under Personal select the option for Security. Under Advanced select the option to enable Apps from Unknown Sources and accept the security warning.

Once you’ve done that, just go to the Web browser on the Kindle and type in this:

https://LPB.cc/pbsideload

PocketBible should automatically download. On some devices, you’ll be prompted to install the app but on the Kindle devices, you’ll have a few more steps

Original Kindle Fire and HD: You may have to tap the notification number next to your name in the upper left corner of the screen. You will then see a list of notifications. One of them should say something like com.laridian.pocketbible or pocketbible.apk and “download complete”. Select that one. You’ll be asked if you want to install PocketBible and it will ask if you want to allow PocketBible to use network communications and some other things. Choose the “install” button and when it’s done choose “open”.

Kindle Fire HDX: After you download from the Silk Browser, tap on the menu icon in the top left corner. Choose the Downloads option and you should see PocketBible.apk listed there. Tap on it and choose the install option to finish the process. If you prefer, you can watch of video of this.

On newer Kindle devices we have found that you may not be able to just tap on the downloaded file after it is downloaded, but rather you need to go to the File Explorer (or Kindle equivalent thereof), locate your Downloads folder, then locate the downloaded apk file for PocketBible and select it there to run it.

Once PocketBible is installed you can choose it from the carousel like any other program. The PocketBible icon may look “blurry” but that’s OK — Amazon uses low-resolution icons for third-party apps because they’re upset that you didn’t give them any money to run the software on their device, so they want to make you think there’s something less than professional about our app.  🙂

Once again, if you have the option to install Google Play on your Kindle or other Android device, that is the easiest way to install PocketBible. We can’t help you do this because of the large variety of Android devices out there, but if you google it you should find instructions for installing Google Play on your particular device.