[prjkt.io] nicholaschum:
Substratum Release 670

https://xdaforums.com/showpost.php?p=71895924&postcount=5

Full Android O theming enabled (RRO2): You can now theme on API level 26 resources/Android O Developer Previews. Themers will have to stress test this and users MAY need to wait for themers to update.

Full Binderfacer Support: This is what we call the Interfacer module with Binder implementations. This is still under testing but if you're interested, you can pick the open commits on Gerrit to test! The commits are stable but we may want to add a bit more functionality very soon! Full credits to +Ivan Iskandar, +Surge Raval and +George G.!

Dynamic Refresh Mode: When installing a theme, it will automatically refresh the list of themes installed without triggering a refresh by swiping down. The code has been completely rewritten to detect new theme installations! To add on to this, there are many small things that normal people won't notice, but UI tweaks, animations and bugs have been fixed too!

Theme Authorization Fix: Themers theming using the latest template 7.0.4+, you may have noticed that using the substratum filter was erroring out. Please update to 7.0.5 and to the latest Substratum release 670+ to have full fixes ahead!

Note: You may need to manually restart SystemUI when fiddling with fonts depending on the version of Interfacer you are running. We will have a hotfix up very soon but for now, this is the only bug we know of!

Full changelog

Full translation import

Public release 670

Clean up and reformat

DynamicRefresh: Do not invoke toast on uninstall theme

DynamicRefresh: Send refresh message on theme uninstall

DynamicRefresh: Add support for IA to detect uninstalls

ThemeFragment: Auto-dynamic Refresh of newly installed themes

AdvancedManagerFragment: After removing lingering overlay, update index

ThemeInterfacerService: Blame Ivan's OCD

ThemeInterfacerService: SystemUI should be restarted on priority switch

InformationActivity: Properly locate parent/root node for fab shift

Internal testing release ALL HELL BREAKS LOOSE!

References: Fix certification check on notification

Internal testing release 665

Overlays: Adjust marginTop for text to select all overlays

Dynamic Gapps > Beans Gapps

Overlays: Add a bit of margin on top of toggle

Refactor and format after fast-forward

Arrays: Update Slovak Translation Title

ThemeFragment: Launch Showcase on No Theme Installed

Register receivers on app update too

Move profile related methods to separate class

Internal testing release 663

BootCompletedDetector: IntentFilters should be launched with app context

Internal testing release 662

Add app update receiver

BootCompletedDetector: Prepare for API26 changes to BroadcastReceivers

Internal testing release 661

AdvancedManagerFragment: Binderfacer should also be able to refresh!

PriorityListFragment: Fix broken animation when showing fab

Internal testing release 660

BinderService: Make the service sticky

Overlays: When mixAndMatch enabled, don't check cached global variable

Internal testing build 659

AdvancedManagerFragment: Toast does not go here...

Internal testing release 658

SoundUtils: Optimize

Overlays: Fix connection loss to list of enabled overlays from IA

Overlays: When updating a framework overlay, restart SystemUI as well!

ThemeManager: Restart SystemUI on framework change

SoundUtils: Don't wait when binderfacer on duty

Backend: Utilize OMS library's OverlayInfo states instead of specifying

ScheduledProfileService: Optimize things a bit

ScheduledProfileService: It's supposed to run with interfacer only

ScheduledProfileService: TODO done

Internal testing build 657

AdvancedManagerFragment: Change here and there

ScheduledProfile: Make it precise down to the seconds

Internal testing build 656

Overlays: InformationActivity.class > this.getClass()

References: Suppress a few warnings by generalizing the try/catch block

References: Null check for offensive check

FloatUiTile: Guard against NPEs on tile state

Overlays: Enforce adapter not being null before running actions

InformationActivity: If the position goes beyond or under, do not crash!

ProfileFragment: Guard against NPE when list() is null

LaunchTheme: Check if launch intent is null before adding extras

InformationActivity: Null checks for odd window refreshes

InformationActivity: Fix potential errors with Palette

ShowcaseTab: Do not call getContext() so many times

AdvancedManagerFragment: Effective NPE handling!!!

Overlays: Suppress warning when type1 default XML not found

ScheduledProfileService: Expose "Day" and "Night" strings

Binder: Add comments to the AIDL interface for each void

Binder internal testing release 655

Overlays: MixAndMatch mode should not be present for disable mode

Binder internal testing release 654

Update interface stub

BroadcastReceiver can't register another receiver

Overlays: No need to wait if binderfacer on duty

Only start BinderService if binderfacer installed

ScheduledProfile: Make sure binder service is started

Merge remote-tracking branch 'refs/remotes/origin/dev'

Binder internal testing release 653

ThemeUninstallDetector: Rewrite the SharedPref after theme uninstalled

ThemeUninstallDetector: Rewrite the SharedPref after theme uninstalled

References: Revive functionality of removing uninstalled theme resources

References: Revive functionality of removing uninstalled theme resources

Internal testing release 635

Overlays: Fix MixAndMatch mode not properly activating

Overlays: Fix MixAndMatch mode not properly activating

Binder internal testing release 652

Move screen off receiver methods to References

BinderService: Clean up

BinderService: Change some static objects

Binder internal testing release 651

References: Update Binder Interfacer version to start at 60

Binder internal testing release 650

BinderService: Migrate the old binder code from Application to Service

PackageModificationDetector: When there's no metadata, reject intent

PackageModificationDetector: When there's no metadata, reject intent

ScheduledProfile: IntentService > JobService

Initial commit for binderfacer implementation

References: Check if device is on O preview, if yes, disable soft reboot

Legacy: Fix up OMS check with a null check

CommitValidator: Disable on legacy devices

CommitValidator: Fix issues where all entries opened framework

Themers, let's start getting on deck with Android O! Shall we?

PackageModificationDetector: Fix check for legacy

restartService > forceStopService

Internal testing release 633

SettingsFragment: Adjust delay of cache a bit longer

PackageModificationDetector: Completely revamp the detection module

SettingsFragment: Adjust tap times to 7 for caching mode

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

References: Update hash passthrough

Merge pull request #92 from rbaumert/patch-1