Skip to content

UFABC Library v2.0b

Compare
Choose a tag to compare
@mauromascarenhas mauromascarenhas released this 02 Oct 17:26
· 7 commits to master since this release

What's new:

Added:

  1. New book image placeholders (for renewal and reservation screen).
  2. Synchronization "safety lock" so as to avoid infinite loops due to concurrence issues (race condition).
  3. Alert message for custom rom devices so as to avoid synchronization issues (caused by severe safety and energy management options).
  4. DarkTheme support (moved to DayNight Theme).
  5. New iconset compatible with dark themes.

Improved:

  1. UI improvements.
    1. Main screen.
      1. Added new login/logoff icon.
      2. Removed navigation drawer.
        1. Navigation menu has been moved to the bottom of the main screen.
        2. Additional options available in navigation drawer have been moved to the title bar options menu.
      3. Book renewal, book reservation and recent acquisitions share the same screen (you can navigate using the bottom menu).
      4. Most messages are no longer displayed in a box or through toasts - their presentation methods have been migrated to customized snack messages.
      5. Book search box no longer exists. New searchs must be made through the title bar.
      6. "Reserved book" card "Delete" option changed to "Cancel".
      7. Added "Last updated" (last synchronization) information in Book Renewal view.
    2. Book details screen.
      1. Adjusted "Loading" message box margins.
      2. "Available copies" have their colours set according to the amount of books available for reservation.
    3. Book search screen.
      1. Most messages are no longer displayed in a box or through toasts - their presentation methods have been migrated to customized snack messages.
    4. Search filters screen.
      1. Adjusted margins of some elements.

Fixed:

  1. Synchronization issues when opening the app or running it for the very first time.

UNDER THE HOOD

Added:

  1. Implemented MVVM pattern using Androidx's own architecture components.
  2. "MessageFragment" : Allows it to set a customized message, icon and an action button.
  3. Custom Snackbar implementation.

Improved:

  1. Since the whole application have been rewritten from scratch in Kotlin, the source code has become smaller and easier to understand.
  2. Most activities have been migrated to Fragments due to their nature, making it easier to debug and maintain their data streams, since they have access to the same ViewModel data.
  3. Single database to store every data related to book renewal and home cache.
  4. Synchronization is no longer directly delegated to AlarmManager, but to WorkManager instead (which made it possible to define execution constraints, guaranteeing the task execution).
  5. Utility methods no longer request "Context" as argument since the Application's context is publicly available, except in extraordinary situations.
  6. "configureWebView" method also sets custom WebViewClient.
  7. Implemented LiveData in custom WebViewClients and ViewAdapters when necessary.
  8. Renewal sync data is always done asynchronously.
  9. Upgraded Glide and Android Room version.
  10. Book renewal date is no longer stored as String.
  11. Update Android SDK to version 30 (Q).
  12. Replaced deprecated AsyncTask calls by Kotlin Coroutines.
  13. Updated source code to Kotlin 1.4.10 style.
  14. Replaced "activity!!" by requireActivity() where possible (same for context!!).
  15. Set mainLooper for every Handler instance.
  16. Update UFABC library's web url so as to handle HTTPS calls.
  17. (Security) The application no longer supports clear text trafic.
  18. SearchActivity no longer triggers the EditBox on internet connection issues (when "try again" button is clicked).
  19. Some search filters no loger causes the search to crash when search options are outdated.
  20. Fixed filter order in search_options_types.xml.

Removed:

  1. Old sync-wise Broadcast Receivers.
  2. Data-acquisition functions from "RenewalWebClient" class.
  3. Unnecessary activities.
  4. "Variables" class.
  5. Unnecessary definitions in dimens.xml.