[prjkt.io] nicholaschum:
Public Full Rollout Release 950

Hey guys, it's about time this month to release the actual, follow up release to our previous UI overhaul. This WILL be at 100% rollout, and we will update the app slowly the next few days to ensure that our users are happy :)

PLEASE READ THE SHORT CHANGELOG, WE ARE SURE WE COVERED A LOT OF BUG REPORTS REPORTED TO US IN THE PAST WEEKS!

The reason it took this long is because we have been doing serious debugging with many users, themers and developers - under many different device architectures and versions.

Fixed compilations on legacy devices: Not to be confused with Substratum "Legacy" but rather, actually old devices, where they had a "new_alloc_size" during compilation. Huge thanks to +Surge Raval!

Configuration change safety guard: If by any chance the app was reloaded by RRO/OMS/DO, the app will relaunch itself and tell you that the resources have been updated. This is to do with our UX improvement goal.

Sony OMS Bypass: Substratum now functions on Android 7.x on Sony devices under legacy mode. This means themers can now theme on Sony devices, for Sony users! Huge thanks to Matt (appleknight) for debugging!

Showcase Rewrite: In this update, we have deprecated the current showcase format, under the guidance of +Nathan Chancellor and +Harsh Shandilya, we have a new way of applying to have your App, Theme, Mod or Plugin featured in our showcase! The showcase now updates on demand, and will no longer cache the database on the device so it's pretty much a live place for us to promote our wonderful community and what everyone's been doing!

New showcase tabs: Below will be the new showcase tabs that will be updated by the team to promote new apps/themes amongst our community!

- Featured Themes: For new themes and upcoming stars!

- Featured Apps: For amazing apps that our contributors would like shown

- Themers Collective: The community collection of themes hosted on our Play Store account

- Team Themes: Themes created by team members!

- Clear/Dark/Light: Category based themes

- Google Apps: Collection of theme ready apps

- Samsung: Collection of Samsung-ready/compatible themes

- SystemUI Tweaks: Previously called Plugins, but now more categorized

- Other Tweaks: Also from Plugins, more categorization

- Wallpapers: Wallpaper packs

Samsung UX Experience Improvements: With a plethora of memory leaks and bugs now resolved, we have ironed out the experience to (nearly) match what AOSP has to offer!

- If you installed an OMS-only theme on Samsung/Legacy, a notification will alert you to uninstall it (meaning if you're a user and you accidentally bought an OMS theme, you would be able to immediately refund it).

- For sungstratum users, the boot up of the app has been significantly improved!

UI Improvements: As usual, naming all of these are a pain, so I'll list them:

- Splashscreen now fades into the main theme screen

- Wallpapers, showcase and themes now stagger their loading animations one by one, and will fade from grayscale to color.

- Removed the Pull down layout as well as shared element transition to completely speed everything up

- Snackbars on the main UI will move on top of the bottom bar

- On OOS, ensure that the navbar is properly colored (thanks to +Ivan Iskandar for finding this out)

Bug fixes, performance and optimizations: Huge thanks to our contributors, we have cleaned up a lot of possible memory leaks, as well as ensured that many things are patched up. Overall, the app has been cleaned up drastically thanks to +Harsh Shandilya, +George G. and +Jack Boswell!

Full changelog (chronologically):

Public release 950

Revert "PriorityListFragment: Change how we show the list"

SubstratumUI: Various UI tweaks

BottomBar: Set selected bottom bar icon and text to accent

PMD/Packages: Notification on retention of unsupported theme

PackageModificationDetector: Action click should remove notification

AAPT: fix new_alloc_size overflow for ancient armeabi devices

UnsupportedThemeReceiver: Autoclose the notification

UnsupportedThemeReceiver: Close system dialogs on button click

UnsupportedThemeReceiver: Rejection notification button

FragmentTransaction: Replace commit() with commitAllowingStateLoss()

ShowcaseActivity: When back is pressed, close drawer first

ShowcaseActivity: Open the drawer automatically when launching Showcase

Showcase: Change names of a few things

ShowcaseActivity: Properly assign all the tabs to non-sort mode

Showcase: Add new entries for new showcase themes/apps

Showcase: Tabs will now sort based on actual cloud tab order

Showcase: Completely revamp and clean up all the code

OverlaysManager: If an overlay is about to be recompiled, disable first

SamsungIntegration: Refresh the list on resume on Samsung too

MainActivity: Remove unnecessary static variable

SplashScreenActivity: Halve the time it takes to load splash

SubstratumRebase: Clean up and refactor

SamsungIntegration: Turbocharge Sungstratum bootup

SamsungIntegration: Attempt to speed up boot

SubstratumUX: Simplify the start up code of the app

Systems: Clean up unused whitespace

Remove some blacklisted packages

Systems: Add a speedier way of checking for packages

InformationActivity: If hero image starts transparent, use colorPrimary

UnitTests: Suspend

Systems: Sony check should be permission check, not prop

Lunchbar: No longer extend Snackbar, just use it as a constructor

Systems: Sony check may return empty string

InformationActivity: When theme is empty, kill automatically

SubstratumUI: Lunchbar should go above the bottom bar

Systems: Sony Mobile should try and take on rooted legacy mode

ManagerFragment: Optimize some calls to userInput.get()

Resources: Suppress and remove some warnings

ThemeAdapter: Remove some unused imports

Packages: Factor out API 21-23 handling

SoundUtils: Remove unused variable

ShowcaseActivity: Remove unused method

ThemeManager: Simplify listOverlay methods

AndroidManifest: Fix some warnings

Packages: Suppress some warnings

Sounds: Don't call wordList.get() repeatedly

Expose navigation bar color on API 27

PriorityListFragment: Change how we show the list

ThemeManager: Fix listTargetWithMultipleOverlaysEnabled on andromeda

SplashScreenActivity: Remove the app logo color animation thingy

Systems: Andromeda mode only if the package is enabled

SettingsFragment: Disable exposures check if not running interfacer or sysserv

Clean up and refactor

OverlaysAttention: Wrap to full size of text

Overlays: Do not refresh the list on type3 selection twice

OverlaysAdapter: Allow for newlines in attention

SplashScreenActivity: Hide progress bar until certain time

Clean up and reformat

SamsungIntegration: Fix regression with multi refreshes

SubstratumUI: Revert back to grey accents

IA: Fix inconsistent capitalisation in strings

InformationActivity: Terminate all tab's asynchronous tasks onDestroy

Update gradle

RecoveryFragment: Fix inconsistent tests for card visibility

InformationActivity: Remove PullBackLayout

Substratum: Completely remove shared element transitions.

SubstratumUI: Revert back to Pink accents

MainActivity: Drop redundant samsung check

Substratum: Set theme system module during early init

RecoveryFragment: Trim duplicate code

ThemeAdapter: Remove the greyscale animator

ManagerFragment: Improve UX for refresh

ThemeFragment: Stagger the recyclerView objects

SubstratumUI: Introduce a new color scheme!

SplashScreenActivity: Fade out to the MainActivity

ThemeBadge: Remove the residual files

PriorityListFragment: Add an AVD for fab click

PriorityListFragment: Adapt for Oreo

SubstratumUI: Update the blobs to N blobs

AndroidManifest: Turns out we needed one more

StringUtils: Place in a better directory

Clean up and reformat

NotificationCreator: Deprecate this class

ThemeFragment: Remove the bottombar badge

Substratum: Fix various mistakes on reassignment

AndroidManifest: Clean out unused permissions

FloatUi: Show overlay versions

ManagerAdapter: Generify and account for FloatUi

Substratum: Drop hungarian notation contexts

RecoveryFragment: Fix incorrect test for sound

Internal release 932

Substratum: Deprecate Sounds for legacy systems

RecoveryFragment: Substratum Service does not need permission

ManagerAdapter: Fix theme entry formatting

SettingsFragment: Instantly post restartSubstratum call

ThemeAdapter/InformationActivity Tabs: Optimize lifecycle

ManagerAdapter: Fix inconsistent labels

SettingsFragment: Make substratum restarts less jarring

ManagerFragment: Deprecate onPrepareOptionsMenu

ManagerFragment: Show all the icons on the actionbar

ThemeAdapter: Enforce package name check for receiver

ManagerAdapter: Add the overlay's theme version

ThemeAdapter: Do not allow multiple theme launches

PullBackLayout: Adjust pull back threshold

BottomBar: Adjust color for inactive state

ManagerAdapter: Fix incorrectly styled Theme Name entry

Subtratum: Adjust manager fragment strings

Adapters: Introduce a utility method to format items

MainActivity: BottomBar should reset on config change

Adapters: Remove usages of Html#fromHtml

ThemeLaunchActivity: Remove plugin_version extra from launch intent

InformationActivity: Use dominance again

InformationActivity: Adjust the color vibrance algorithm

ThemeAdaptor: Ditch HTML hack and use setTypeface for bold

OverlaysManager: Ditch redundant code

Clean up and optimize

OverlaysAdapter: Use a more traditionally used version code

Wallpapers: Reassign append of load complete

KeyExchangeActivity: Pass a Serializable object of SecurityItem

SamsungIntegration: Speed up samsung device check

Overlays: onResume should have proper list refreshes

PullBackLayout: Adjust sensitivity and add higher threshold

InformationActivity: Adjust looks

InformationActivity: Tabs should finish loading before SET

ThemeAdapter: Fix potential FC on weak devices

SubstratumUI: Fix a few quirks with the new shared elements

SubstratumUI: Shared Element Transitions!

MainActivity: Hide the bottom bar shadow if we don't use it

PriorityListFragment: Make use of activity's toolbar

InformationActivity: Fix crash when launching theme shortcut

InformationActivity: Use completely transparent status bar

MainActivity: Set white navbar icons when sheet dialog opened

MainActivity: Add shadow workaround to bottom bar

OverlaysManager: Properly close compilingProgress

Revert "PackageModificationDetector: Don't refresh IA on theme update"

Overlays: Catch potential IndexOutOfBounds

SubstratumCrash: If the ROM/builder f'ed up, explain the issue

SubstratumCrash: If system crashed substratum, relaunch

Clean up and reformat

SubstratumUI: Deprecate Roughike bar in favor of AOSP

InformationActivity: Stuff for transparent themes

build: Fix derps

Fix travis