fb: Fix wrong IME state handlings on keyboard switches

We assumed that calling updateFromSettingsLocked(true) is in all value changes
a possible way to simplify the process. In reality this fails when the user
switches eg between 2 IME keyboards several times due that we call every
time

                        mIPackageManager.setApplicationEnabledSetting(imm.getPackageName(),
                                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
                                PackageManager.DONT_KILL_APP, mSettings.getCurrentUserId(),
                                mContext.getBasePackageName());

which results in wrong mCurMethodId which ends in method calling which should not be called
and result in an NPE and hotreboot due of dieing service.

To fix it go only for showinputmethod feature the old way and restore for all other
value changes AOSP behaviour and check specifically if enabledChanged is true or not
based on the getEnabledInputMethodsStr() method during we lock on mMethodMap

Thanks for the detailed report to Natakranta

Change-Id: Iff1f598a57cfd1f0fc45a2c4ebca1a43dfeb02d6
Framework: Fix blacklist in floating notification launch with expanded desktop on

Change-Id: I88636695ae5b4f72363ced573679af17711292ef
Slim Recents: Option to show topmost task [1/2]

Change-Id: Ib39d9b87b0fd30b4d34d4292af39e891038f337a
Slim Recents: Always show topmost task collapsed

PS2: Also restore expanded state of topmost task when on homescreen
PS3: Fix code style

Change-Id: I64956410fb389d8e880979a84b51321d8b372217