[prjkt.io] nicholaschum:
Substratum Release 851

Completely new default grid layout UI: As of this version onwards, we will now ship the application with a completely new UI that allows you to see more theme cards at once on a single screen. This is always revertable in Settings, where you can adjust how many columns are visible at a given time. This also comes with the new animation after the theme loads.

New theme advanced information sheet UI: We have added a sheet dialog with more information when long pressing a theme in the main screen. You can now Favorite, create launcher icon, uninstall, and see theme ready status all from that screen now!

Android Oreo Interfacer Support: Slowly does it, our test bench devices with the new Interfacer on Oreo will now support Shutdown Animations. More information regarding this later.

Speed improvements: Through our testing, we have sped up loading theme packages from max 1 sec to 16ms, enjoy! This also means that I was using my Nexus 5 to be the tester, and it was flying overall!

Deprecation of Theme Caching Mode: As of this version onwards, we will no longer allow themes to be decompiled in the substratum's cache (remember those days when your app data had like a few gigabytes? people still used it for theming locally). We no longer support this function and have completely removed it from the app, clearing up a LOT of code in the process.

Hero image customizations: Thanks to [MENTION=6552280]MSF Jarvis[/MENTION], themers now have the option to supply a new hero image type, namely heroimage_banner.png (or whatever extension) to force the hero image to change to a specific image. There is also a way to change the style of the grid hero image, by creating a file called heroimage_grid.png (or whatever extension) in the same folder of your current hero image!

Andromeda updates and Oreo changes: All the credit goes to [MENTION=4880721]iskandar1023[/MENTION], where he created many new features to incorporate with the Android Oreo notification channel system, allowing users to adjust notifications on the fly without adverse effects. You can also now click on the Andromeda version to launch Andromeda's status screen! When your server gets disconnected, the app will NO LONGER close, as we have deemed that as bad UX, so instead, we close all opened activities except MainActivity, and showed a dialog telling the user to rerun the desktop client!

Source code changes: We have completely rebased the application once again and the structure of the References class has been split up to more suitable named classes. We also removed a bunch of redundant code in the process, where duplicate classes were found in other fragments/activities, where we could have just slimmed it down to one. A bunch of methods have been consolidated and thus allowing us to ship a cleaner, more streamlined product!

Hold on to overlay to show target application version: Thanks to [MENTION=6552280]MSF Jarvis[/MENTION], a long awaited feature for themers is to hold on to the overlay inside the Overlay Manager, to show a snack bar or the version of the main app, able to be copied to the clipboard!

Search in Overlay List fragment: Huge thanks to [MENTION=4971851]YechiamTK[/MENTION] for implementing both the search bar commits and the sorting commits. We have found the root cause for issues that were on certain devices (no overlays found) and have remedied this issue!

Settings clean up: We have went for an approach to simplify and streamline the experience for more users. Repetitive words were eliminated and overall a more engaging experience.

Attention: We have adjusted some wording due to the sheer amount of users asking the reasoning in the theme systems section of Settings. "Rootless mode" is now called "Native mode" and "OMS7" is now "[projekt.] OMS", so we have a more specific set of systems, easily understandable.

Full Changelog

Public release 851

ThemeFragment: If Nougat style cards selected, don't touch padding

Full translation import

Public release 850

OverlaysAdapter: Convert version toast to version lunchbar

References: Add RecyclerView animation setter to a centralized zone

OverlaysAdapter: When long pressing a card, consume the touch event

ThemeFragment: Dynamically adjust RecyclerView if Grid mode selected

PreferenceFragment: Unify the texts to AOSP style

Final resource clean up

It's not 2015, we no longer need to use the caching system after DA

TroubleshootingFragment: Remove the redundant question of theme errors

Clean up and remove unused resources

ShowcaseTile: The tile icon goes too

ShowcaseTile: Deprecate the tile

Theming: WeakReference the context in SubstratumThemeUpdate

Substratum: Allow supplying custom heroimage for KenBurnsView

Substratum: Update translators array

MainActivity: Allow themers to supply a separate heroimage for gridview

Overlays: Use FileProvider to access logchar file

SettingsFragment: On Oreo, manage notifications menu should go to notification settings instead

ThemeManager: Add state for listing overlays with missing target

ManagerFragment: If the target application is not installed, ignore!

ManagerAdapter: Set the label name earlier for correct sorting

InformationActivity: Allow themers to force colors of the toolbar icons

SubstratumWallpapers: If you didn't provide a link, hide the tabs

ThemeAdapter: I missed this one to staticize

InformationActivity: If you're only shipping overlays, don't show fab

Systems: Supported ROMs downloader migration to FileDownloader

Wallpapers: Migrate to the FileDownloader class

WallpaperAdapter: Migrate to the FileDownloader class

Deprecate AutoTextResizer and use TextViewCompat with granularity

SubstratumRebase: Sort out References.java and major code cleanup

WallpaperAdapter: Rebase the whole setting wallpaper options

ThemeFragment: Your phone must be old and messed up to reach this case

ThemeFragment: Add another null check

ThemeFragment: Set to default references value instead

ThemeFragment: Enforce null check on substratum_packages

ThemeFragment: Enforce final AsyncTask to static

SettingsFragment: It's Close, not Cancel

Strings: Plurals for notification channel management

SettingsFragment: Do not show soft keyboard, there are only 4 options...

Strings: Update to auto updater to non-beta status

SettingsFragment: Allow launching Andromeda status from Settings

Clean up and reformat

ManagerFragment: Fix all the bugs with the searchView

ManagerItem: Do not privatize callable getLabelName()

ManagerFragment: Fixed search bar commit.

ManagerFragment: Added search bar. Overlays_list_menu.xml: Updated item to work properly with search bar.

Rename "Rootless mode" to "Native mode"

References: Enforce null check on checkThemeSystemModule()

WallpaperAdapter: Add a fade_in animation for wallpapers

Legacy: Speed up legacy by ignoring overlays_legacy

InformationActivity: Fix weird tab behavior

Full translation import

SubstratumRebase: Here we go again...

MainActivity: Fragment Transaction local variable instead of global

MainActivity: Slim down

Convert everything that is a PNG (except team icons) to WEBP

Revert "Make notification channel preference item open the channel list in settings"

Revert "SettingsFragment: Fix Manage Notification Channels button"

Finally fix build

Compile the support annotations

Merge remote-tracking branch 'origin/dev' into dev

ManagerFragment: Fixed sorting algorithm. ManagerItem: Added compareTo's for name and theme, in use for sorting.

InformationTabsAdapter: Use fragment name values from References

MainActivity: Add shutdown animation to drawer

BootAnimationTab: Add shutdown animation bits

BootAnimationManager: Add method to apply shutdown animation

InformationActivity: Use reflection to check theme shutdown animation support

ThemeAdapter: Included a Null check for themes that don't include themeready variable.

AndromedaBinderService: Only show binded message when verified binded

ThemeAdapter: Do a null check for packages installed by Studio/ADB

InformationActivity: Only show shutdownAnimations on Interfacer builds

Ensure the build is fixed

Clean up after cherry-picking

ManagerFragment: Got rid of Comparator ****show and implemented the quicksort algorithm myself instead.

Revert "Revert "ManagerFragment: Fix derp on logic for OMS users in previous commit""

Revert "Revert "OverlayList: Add sorting options""

Make sure to check before starting binder services

ShutdownAnimations: Initial commit to prepare for shutdownAnimations

onDestroy: Only kill Andromeda receiver on Andromeda based devices

ThemeAdapter: Set animation on each individual card

ThemeAdapter: Add simple fade animation for RecyclerView

AndromedaIntegration: When the server kills, show a dialog instead

AndromedaBinderService: Do not kill when Andromeda is not connected

SettingsFragment: Hide detailed information option when above 1

ThemeFragment: Simplify the Settings adjustment

Remove some FAQs that aren't relevant in the 21st century anymore

SettingsFragment: Move notification management up

References: Don't log package info in the logcat anymore

SettingsFragment: Hide Restart SystemUI on Andromeda devices

SettingsFragment: Fix Manage Notification Channels button

ThemeAdapter: Move Rate theme out of IA

ThemeAdapter: Use dismiss instead of hide for sheet dialog

ThemeAdapter: Show version code in sheet dialog

ThemeAdapter: Hide sheet dialog when uninstall is clicked

References: Let's just keep the default as carded layout in grid

ThemeAdapter: Redesign the About theme section

Update translator contributor array

ThemeAdapter: Show theme ready status

Resources: Clean up unused signature keys

ThemeAdapter: Adapt to AdaptiveIconDrawables and new Oreo launcher APIs

ThemeAdapter: Adapt to Oreo

SettingsFragment: Clean up

SettingsFragment: Harsh, y u no fex

ManagerAdapter: Show overlay's substratum compiled version

ThemeFragment: If detailed info enabled, hide it automagically on new UI

ThemeFragment: Completely revamp the long press on theme sheet dialog

ThemeFragment: Don't allow "Theme packs" to be selfish anymore

Clean up and reformat after cherrypick

ThemeFragment: Speed up gathering the theme packages from 1.6s to ~15ms

OverlaysAdapter: Add longpress to show package version

SubstratumUI: Set a new grid based user interface as the default UI

Deprecate the MaterialProgressBar library

PriorityLoaderFragment: Center the emoji to the center of the screen

Priorities: Remove all the instructions and move them to a dialog

I don't like the RootRequester image anymore, change it!

MainActivity: Remove unnecessary countdown timer and string changes

ManagerFragment: Remove excessive null check

Clean up external overriden classes from AOSP

Clean up Service classes from cherry picks

Revert "OverlayList: Add sorting options"

Revert "ManagerFragment: Fix derp on logic for OMS users in previous commit"

ThemeManager: On Oreo, use interfacer to get installed overlays

InterfacerBinderService: Run as foreground service on Oreo

MainActivity: Don't ask for andromeda if interfacer present

Merge pull request #132 from boswelja/dev

Only create intentAppCrashed when needed * getAndromedaPackage can be private

Only create notification builder if there isn't already a notification showing

Push "bad" notifications to andromeda status channel * Previously, if andromeda was disconnected and you launched substratum, you would get a notification in the default channel. Now, the notification is sent to the andromeda status channel * Also move notification builder creation to the method

Substratum: Reorganize

Substratum: Clean up some Binder functions

Full import for translations

Clean up unnecessary styles and make the compile dialog darker

Add missing file to be committed

Deprecate the BlurView library

Update gradle version

Clean up and optimize after fast forward