PrediSat is an Android app that grabs Iridium flare and satellite pass data from Heavens-Above.com and formats it for the small screen of the phone. It also includes a few features to make satellite watching easier, such as alerts, countdowns, and night mode.
- PrediSat on Google Play
- PrediSat Pro on Google Play
- Heavens-Above (the source of satellite data for PrediSat)
- PrediSat issue tracker
- PrediSat.com, predisat.pilot51.com, predisat.p51.me (forwards here)
The Pro version adds some advanced features on top of what is available in the free version. It may also include early features that will later be added to the free version.
Price is $1 (USD).
Current Pro-only features:
- Multiple satellite USSC ID's can be entered for 10-day pass predictions
- Multiple alerts per event can be set
- Text-To-Speech alerts (optional)
- Alerts automatically created based on custom magnitude when list is loaded with new data (optional)
- Sightings log
- Export sightings to CSV
- Import/export database
Dates are based on GMT.
- Add xxhdpi icon.
- Pro: Prevent excess spaces in Alert Time.
- If not already granted, request location permission when Get Coordinates button pressed.
- Add map to pick location.
- Add background updater service.
- Runs on a recurring schedule between cache expire time and 48 hours (or cache expire time if higher) at the system's discretion.
- Requires both Cache Expire Time and Alert Time options to be set.
- Use 12h/24h time as configured in the system.
- Don't repeatedly update location from network while waiting for GPS location.
- Fix some preference dialogs keeping changes when canceled and reopened.
- Fix a notification crash.
- Free: Remove ads. They were broken and paid very little when they worked.
- Significant improvements to night mode. Not perfect, but much better.
- Fix crash in Android 7+ when selecting preference item in Night Mode.
- Increase minSdkVersion from 3 (Android 1.5) to 11 (Android 3.0) for various newer APIs used.
- Change targetSdkVersion from 8 (Android 2.2) and compileSdkVersion from 13 (Android 3.2) to 25 (Android 7.1.1).
- Migrate project from Eclipse to Android Studio.
- Fix fetching of specific date/time broken for all passes list, due to HA changes.
- Enable DOM storage API in browser for API 7+ (Android 2.1+), allowing HA mobile prototype to function.
- Pro: Fix crash when TTS tries speaking. (Regression in v1.2.2)
- Preserve current tab in Alerts/Sightings list when toggling night mode.
- Add xhdpi icon.
- Update About text.
- A couple spelling corrections in German strings.
- Use "en dash" character for time range in summary of Morning/Evening Passes setting.
- Minor code tweaks and optimizations.
- Update Russian with translated timezones and a couple changed strings.
- Add notification message variables for magnitude (%m), direction/azimuth (%z), elevation (%e).
- Add example in notification message dialog.
- Use custom notification message in notification ticker.
- Free: Update AdMob SDK, remove AdWhirl and Greystripe. Remove read phone state permission that was required by Greystripe.
- Changes to better follow HA usage guidelines: Change Morning Passes default to disabled, change Daytime Flares default to disabled, change Cache Expire Time default to 24 hours.
- Add app name and version to user agent so HA can identify requests from PrediSat.
- Consolidate all source of Free and Pro into core project for future flexibility (ease of development and later allowing for Pro features to be unlocked in Free). The downside of doing this: The Pro apk size jumped from 192KB to 360KB now that it contains (but doesn't use) the AdMob library.
- Pro: Fix crash when exporting sightings.
- Fix parsing of morning/evening passes. Caused by recently added language selector on HA.
- Fix crash when parsing 10-day pass with magnitude "?".
- Fix quiet time inaccuracy when alert + timezone offset passes midnight.
- Fix parsing of date/time for flares. Another HA change either overlooked in previous release or happened after release.
- Fix parsing of passes, caused by more changes on HA.
- Re-add pass magnitude 5.0 filter since HA re-added it.
- Remove detail context menu options for flares due to HA not providing required data.
- Fix flare count doubled during parsing.
- Change numeric keyboard type from 'phone' to 'number'.
- Pro: Prevent invalid value being entered in Auto-Alert Mag. settings, leading to a crash.
- Fix performance issue after updating list, mainly event timer not appearing immediately.
- Fix crash when encountering unexpected character(s) in place of degree symbol (°). Happened occasionally either at launch when loading pre-1.2.1 database or when parsing new list.
- Fix parsing of flares again, caused by another change on HA. Daytime flares now use same list as night flares, so only need to download/parse once.
- Restore parsing/saving of flare center info. Not restored in UI for this version, currently only viewable in sightings export.
- Fix magnitude setting no longer working for page request (another HA change). Not really noticeable to the user since events are already removed by magnitude after parsing.
- Update Russian translation for "Orbital Height Profile".
- Pro: Fix crash after fetching a list when alert magnitude for the list has never been set.
- Fix crash at launch when loading daytime flares from the database that were previously saved before v1.2.1.
- Fix debug logging, of which there is a lot, being posted to logcat with Debug Mode disabled. (BuildConfig.DEBUG not working as expected in v1.2.1)
- Add context menu option for Orbital Height Profile.
- Sort passes by max time rather than start time.
- Disable flare event details due to new limitations with HA URL query.
- Remove flare center magnitude/distance columns since HA no longer provides that data for night flares.
- Remove obsolete Flare Days preference.
- Significant improvements to how event data is handled. This is a prerequisite for better filtering and sorting in later versions.
- Fix flares not parsing due to changes on HA.
- Fix satellite details link for 10-day passes.
- Fix debug mode not creating files if predisat folder doesn't already exist.
- Fix timezone/DST not initialized (using GMT+0) when opening Alerts from notification.
- Fix 'Set 10 Days of Passes' context item appearing in Alerts and Sightings, functionless. It is intended to only appear in main Passes list.
- Improve accuracy and efficiency of clock and countdown.
- Fix crash after downloading empty passes list. Don't know how I missed it after v1.2.0 fix of a very similar crash.
- Free: Fix crash when opening passes context menu when there is no satellite set on 10 Days of Passes.
- New translations: German and Russian. Huge thanks to the translators, XoXFaby and Himura respectively!
- Pro: Reverse sort order of sightings list, with more recent events towards top.
- Add context option to add/remove selected satellite in 10 Days of Passes. In Free, this replaces existing entry, while Pro adds.
- Add preference to force DST/Summer Time. Try this if time is off by an hour, especially useful for timezones that permanently do or don't observe DST. Note: Forcing DST just because your timezone permanently observes DST may not be what you want, this is because the GMT offset provided by Heavens-Above in the timezone name may already include DST.
- Add Debug Mode preference. Requires WRITE_EXTERNAL_STORAGE permission to save debug.log and timestamped HTML files in [sdcard]/predisat/debug/. It is intended to be emailed to me, manually, if you have problems such as crashing. PRIVACY NOTICE: The configured coordinates are included in the debug files.
- Open timezone list preference if detection fails.
- Add screen title at top of list screens.
- Fix timezone/DST changes not applying immediately.
- Fix crash when fetching passes on some 3G carriers. [Huge thanks to Carol for being first to email me about it, 4 months after the ~80 insufficient crash reports started coming in!]
- Fix crash when getting coordinates on locales that use comma (,) instead of period (.) as a decimal separator.
- Update timezone names.
- Fix crash when parsing empty passes list.
- Pro: Fix crash at alert in Android 1.5 due to TTS not supported (happened regardless of TTS preference).
- Increase night mode backlight brightness. This is because at least one device (Xperia mini) is known to have a higher minimum brightness than G1.
- Remove compatibility upgrade for v1.0.7 data.
- Change "HA Website" button to "Heavens-Above.com".
- Bottom buttons in main screen: Increase to 2 lines height, reduce font size in portrait orientation.
- Fix crash on some devices when downloading passes. Caused by using the wrong thread in a fallback when a more efficient method of getting the default user agent failed. The workaround was to open the in-app browser before downloading the list.
- Fix first fetch of evening receiving (and blindly accepting) morning when morning is current, or vice versa if evening is disabled. Now evening will still receive current morning, but will detect it, hold that data for the morning fetch, and try again. This happens because a specific request can't be made until the first page is downloaded to receive a couple random session strings generated by the server which need to be sent back to the server with each request; those strings are kept for the life of the process.
- Fix progress bar not working for morning/evening after initial fetch.
- Fix parsing of morning/evening passes lists. Caused by major changes to the all satellites page on Heavens-Above. Sorry again for the delay.
- If the last pass for the current period (AM or PM) has ended, fetch the same period for the next day, or (Pro) an additional day if multiple days.
- Remove requirement for location and GPS features (supports Google TV).
- Fix crash when parsing 10-day list. Caused by minor changes to the 10-day page on Heavens-Above around Feb. 12. Sorry for the delay.
- Show year in Date column.
- Add pass magnitude filters for 0.0-2.5 (0.5 step).
- Remove pass magnitude 5.0 filter (no longer supported by HA).
- Add option to clear cache.
- Changing filter preference while in list now takes effect on next manual refresh without the need to close and reopen the list.
- Minor improvements to layouts making it appear better on large screens.
- Remove touchscreen requirement.
- Free: Update AdWhirl, AdMob, and Greystripe ad SDKs to latest versions.
- Free: Enable full-screen ad option for Android 2.3.x users since updated Greystripe SDK fixes a crash.
- Pro: TTS doesn't speak if phone is in silent mode or in a call.
- Fix rash when trying to update coordinates on some devices that don't have GPS (Honeycomb/tablets).
- Fix how process is closed. Bad practice of forcibly killing process because TTS service was badly coded and holding process open.
- Fix crash on somewhat rare occasion when opening Alerts, caused by wrong thread exception when automatically selecting initial tab.
- Fix crash when trying to sort empty list immediately after parsing. Thanks to a crash report for pointing it out!
- Fix refreshing more than once in a single list instance causing following issues:
- Crash during parsing of morning or evening passes after 10 day was enabled in previous refresh.
- Evening passes fetching morning instead if 10 day was disabled and morning was enabled in previous refresh,
- Night flares fetching daytime instead if daytime was enabled in previous refresh.
- Progress dialog indicates the number of events in list being parsed, instead of always showing 100.
- Fix countdown timer not automatically appearing for next event in Alerts if Remove Old Events is disabled.
- If existing instance of Alerts screen is at top of process when opening notification, it is used instead of starting a second Alerts instance.
- When opening Alerts, the tab with the next event is selected.
- Pro: Allow fetching multiple days of all passes, configurable between 1-10 days. It's a bit on the experimental side, but nonetheless very useful. Disabled by default, using the old and reliable method of fetching up to 24 hours.
- Slight increase in sorting performance and albeit more accurate as well. Sorting now happens as a single action after parsing instead of while parsing each event.
- Broke some night mode styling in Preferences due to style inheritance breaking in current revision of SDK. This change only affects 2.0 - 2.2, all the other SDK's have always had broken inheritance.
- Fix bug 18 (hopefully): Crash immediately after downloading lists. Couldn't reproduce based on limited information of crash reports & haven't been contacted directly about this.
- Time difference threshold for existing events from 10 to 40 minutes. Avoids duplicate events showing up in alerts if 10-day list not updated for awhile and prediction changes by more than 10 minutes.
- Tabs are used in Alerts and Sightings to select Passes and Flares lists, instead of splitting both lists on screen. The tabs indicate exactly the list associated with it (Pass/Flare Alerts/Sightings) and the number of events in each.
- Add confirmation dialog when clearing alerts or sightings lists.
- Add customizable notification message for TTS (Pro) and bubbles. Variables: Satellite name, event type, and minutes until event.
- Fix displayed time for stored events not changing when timezone is changed, plus other issues with using a different timezone than the phone.
- Satellite name is above countdown instead of in parentheses after, or in landscape mode the name is aligned to the right.
- Increased font size of countdown and made bold.
- Increased minimum height of list items about 2x to make them easier to touch.
- Event timer is shown for the next event when opening list.
- Add preferences to toggle messages for tips and updated alert times.
- Single-digit days are formatted without "0" prefix.
- Free: Fix space allowed in Alert Time preference, which causes alerts to not work.
- Pro: Timestamp included in filename of exported sightings CSV with pattern of yyyyMMddHHmm, preventing any unwanted overwrites.
- Fix progress not updating while parsing flares.
- Preferences and night mode menu options now accessible from lists.
- Preferences are categorized into different screens.
- 10-day passes - ISS replaced with USSC ID entry. Free allows only one entry, Pro is space-separated. ISS is default.
- Fix toast message showing string resource ID instead of "Timezone set to" when detecting timezone in preferences.
- Events are removed from alerts and main lists a custom number of minutes (default: 10) after they have completely passed. Check is only performed when opening or refreshing list.
- Lists are populated in UI (behind progress dialog) as parsing progresses.
- All lists are loaded to memory at launch and remains until app is closed, making it very quick to open lists.
- New list is only downloaded if manually refreshed from menu, cache is empty, or a custom number of hours (default: 6) have passed since last refresh.
- Huge performance boost for parsing, about 15-30x faster! (all 3 pass lists timed on G1 going from 285 to 10 sec. and Droid from 65 to 5 sec., including download time)
- Fix inability to load saved data across different ROMs. Data is now saved in an SQLite database. Data from 1.0.7 is moved at first launch.
- Removed: Backwards compatibility for alerts and sightings saved as cache in v1.0.6 and earlier. If you have not run any of the v1.0.7 releases, data from older versions will be lost.
- Fix automatic location starting when night mode is toggled.
- Pro: Fix colon at end of "Move to Sightings" in context menu for Alerts.
- Fix crash when opening context menu in Passes/Flares lists after loading from cache.
- Fix automatic location starting when orientation changes.
- Fix crash at start when Automatic Location is enabled. Thanks for crash reports, I didn't think to test it.
- Fix crash when opening preferences while using night mode for Android 2.0 and 2.3.1 to 3.1.
- Free: Fix problems (crash?) at launch for Android 2.3.x. Greystripe issue, had to disable option for full-screen ads in 2.3.x.
- Fix coordinates update stopping when orientation changes.
- Fix inability to get altitude coordinates because receiving location from network prevents GPS from providing it. Now continues searching for GPS after network location received if GPS is enabled.
- Fix Get Coordinates button disabled with GPS even if Network Location enabled.
- All interface-visible text moved from code into XML string resources to make ready for translating. Please contact me if you would like to help translate.
- Fix crash during parsing with most system languages. English was the only unaffected language in all versions of Android.
- Fix Alerts and Sightings buttons not appearing correctly in Android 1.5.
- Fix inability to scroll in About dialog for 1.5 and 1.6.
- Fix inability to cancel download, a problem if there is connectivity but HA isn't responding.
- Fix lists or browser restarting when physical keyboard opened/closed.
- Fix several elements not changing for night mode. There are still some not changing, but it's greatly improved.
- Fix crash when received data is not from Heavens-Above, such as a network login page. [2.2+ crash report]
- Fix button backlight stuck on (mistake in code from previous update).
- Fix crash at launch in Android 2.1 caused by uncaught NoSuchFieldError when trying to set button brightness. [reported by 2 users in Market]
- Pro: Fix existing alerts not being updated if auto-alerts disabled.
- Fix crash from bad parsing of single-digit day in start date range of 10-day ISS.
- Disabled links in About dialog text, tends to be more trouble than it's worth (turned 18.104.22.168 into link).
- Fix crash when opening notification.
- Alerts & sightings data moved from app cache to files, so clearing cache from Android app manager won't delete it.
- Remove preference to delete data. Avoids accidental deletion, menu on Alerts/Sightings screens should be safer.
- Remove preference to clear coordinates. Not necessary since it's just as easy to manually clear coordinates.
- Free: Existing alerts are automatically updated when new data is loaded. (Pro already had this with auto-alerts)
- Pro: Option in preferences to export sightings to sdcard as CSV files, uses WRITE_EXTERNAL_STORAGE permission.
- Messages for updated alerts will only appear if the time has changed and shows the old and new times.
- Threshold for duplicate alert/sighting check increased from 10 seconds to 10 minutes.
- Pro: If event is in alerts, Add Sighting becomes Move to Sightings in context menu.
- Pro: Add Sighting is disabled until 2 minutes before event start.
- Add Alert is disabled for events that have already started, also applies for auto-alerts in Pro.
- Buttons on main screen repositioned.
- Add ACCESS_NETWORK_STATE permission for connectivity detection, also required by Greystripe in Free version.
- Connectivity is now checked before attempting to access.
- Add 10-day ISS list. (optional) [Suggested by Seth]
- Countdown to start, max, and end instead of just start.
- Countdown is initiated by tapping an event instead of from the context menu.
- Include daytime flares in list. (optional)
- Add progress dialog in list showing what is loading and percentage of each process. [Suggested by SuM_WuN]
- Better performance with the use of multiple threads and other optimizations.
- Add quiet time: No alert notifications between certain times of day. [Suggested by Rick]
- Fix location search stopping when invalid coordinates received.
- Add network location (works seamlessly with GPS) and message indicating what provided the coordinates.
- After opening notification, pressing back button from Alerts opens main screen.
- Fix missing indication of disabled GPS on GPS button. [Reported by ka0ticstyle]
- Volume buttons control notification volume, or media volume if TTS is enabled.
- Fix browser closing when orientation changes.
- Add date on satellite passes lists. [Suggested by Rick]
- Button backlight turns off in Night Mode if supported by API and hardware.
- Fix exiting with back button causing home screen folder in background to close.
- Fix empty countdown view and list header color missing when returning to list from web browser.
- Main and preferences screens are not restarted when changing timezone or alert time.
- Free: Option to toggle between banner ads or full screen ad at launch.
- Free: READ_PHONE_STATE permission required by Greystripe.
- Free: Greystripe ads.
- Free: Update SDKs for AdWhirl and AdMob.
- Pro: Remove option for ads.
- Instead of buttons for each list on Heavens-Above site, one button for the homepage.
- Remove changelog.
- Initial release of Pro.
- Fix countdown timer way off after orientation change.
- Pro: Sightings log.
- Pro: Alerts automatically created based on custom magnitude when list is loaded with new data.
- Fix back button not working as expected in web view.
- Night mode uses color filtering instead of replacing graphics with plain colors.
- Ad manager is AdWhirl, which provides much more flexibility with multiple ad networks.
- Pro: Text-To-Speech alerts.
- Pro: Multiple alert times can be set, space separated.
- Pro: Ads are disabled by default and can be toggled.
- Fix detection of existing alerts with certain differences in data, alert is updated when required.
- Fix value shown in title of 'Alert time' preference stacking when changed.
- Alert time preference shows the current setting in its title.
- Alert lists are sorted by event time instead of order they were added.
- Add description on Timezone preference clarifying that it is the standard GMT offset.
- Add menu option on main screen to toggle night mode.
- Add menu options in Alerts view to clear either list.
- Detect incompatible alerts at launch and delete along with cache, preventing crash after version upgrade.
- Fix detection of existing alerts created in different list instances.
- Alerts can be removed through event lists.
- Events can be added to alerts even if alerts are currently disabled.
- If invalid GPS coordinates received, show error instead of crashing.
- Toast notification at alert trigger.
- Notification timer is much more efficient, using a native method instead of a very bloated and often buggy countdown.
- Try setting timezone automatically at launch if not set.
- Fix error when parser encounters trimmed/optimized HTML. (Thanks to SkepticBarista!)
- Fix expired alerts being triggered on service modification/start if alert time is set to 0.
- Fix event timer timezone not being calculated properly for timezones different from phone.
- Significantly reduced possibility of alerts being skipped because of lag.
- If parser runs into problem, show error and try loading cache instead of crashing.
- Save coordinates when opening preferences.
- Fix alert time not applying to existing alerts when changed.
- Fix crash when both pass periods are selected and one of them returns no passes.
- Fix crash when alert is triggered and ringtone was not configured.
- Fix DST sometimes being 'forgotten' while running in background as service.
v1.0.1 and v1.0.2 [2010-08-28]
- Fix two crashes in the web browser.
- Initial release to the Android Market!
Started development on 2010-06-29