SystemUI: Extra Slim Shortcuts && Cleanup

Some cleanup of slim shortcuts
	& implement method to allow
	user to toggle toggleable
	settings to the preferred state.
	Much easier to use with confidence
	knowing you'll be in the correct state.

Change-Id: I897ee4567426d0314952b9860a487ab445795dfc

Conflicts:
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/res/values/liquid_strings.xml
	packages/SystemUI/src/com/android/systemui/CreateShortcut.java
	packages/SystemUI/src/com/android/systemui/shortcuts/Immersive.java
	packages/SystemUI/src/com/android/systemui/shortcuts/Reboot.java
	packages/SystemUI/src/com/android/systemui/shortcuts/Screenshot.java
part 1 of LTE toggle support

Change-Id: I2e1cf08b4a6d49492eec63d4106c857b3905addd
Keyguard: don't refresh ui when screen off

KeyguardStatusView is doing refresh all the time,
which cause high power when screen off.

PatchSet:
- We turn of the refresh when screen is off which is a good
  idea. But we should force latest next refresh when screen turns
  on. Du that a timechanged refresh maybe comes a bit later.

Change-Id: Ifabdde4419a23e919cd52fe77e78ec3160575af1
ProcessList: use different polling interval when screen off

We are using the same time interval for both screen off and screen on.
For process on top: ActivityManager.PROCESS_STATE_TOP, we will poll PSS
information every 120 sec.
During polling PSS, we are grep /proc/%d/smaps which is a 10k lines file.
This cost quite a lot of CPU resource. But when screen off, we don't need to update
TOP process PSS so frequently since we are not operating it. Lower polling
circle to every 15min to reduce power.

Change-Id: Ia4cd26290d44d066f034d5270ce5523650a3c493
UI not updated correctly in expanded statusbar

Sometimes when getting status changes in expanded statusbar the
text disappear. Both NetworkController and PhoneStatusBar handles
UI updates and they are not in sync. This fix allows PhoneStatusBar
to update UI when NetworkController is updating the UI.

Change-Id: I46b8a24ecc732e441f836692c6584a78d8108dff
onAccountsUpdated shouldn't be called back after listener unregistered

There is a problem of AccountManager that onAccountsUpdated() is
called back even after the OnAccountsUpdatedListener is unregistered.
It may cause application crash.

For example, when rotating a tablet 180 degree with Settings apk
running, com.android.settings.Settings is re-launched 2 times
successively. (Destroy->Create->Destroy->Create)
It repeats adding&removing OnAccountUpdatedListener.

When dialog was being opened in the following cases,
NullPointerException at BackStackRecord.getBreadCrumbTitle()
was happened on 10 inch tablet which has 2 panes on Settings.
* Settings > Language&input > Language
* Settings > Language & input > Text-to-speech output > Speech rate
* Settings > Wi-Fi > Menu > Advanced > Keep Wi-Fi on during sleep
* Settings > Wi-Fi > Menu > Wi-Fi Direct > Rename device

This fix prevents the undesirable callback.

Change-Id: I081f69c90539cca821cf686b4587495135f375e4
fb: Fix wrong IME state handlings on keyboard switches

this change introduced some slim keyboard features

https://github.com/SlimRoms/frameworks_base/commit/d51b14e667fe0dfed02c5080fbea97c349a12889

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: I2931ca5a65c56999ba9ce7a7f4f7e71437a4bec8
Keyguard: do not allow to delete the system widget if widgets are disabled

We overwrite the default widget with our own one. In this case it is detected
as a normal widget even though it widgets are disabled and starts listening to
longpress events

Whatever check if widgets are disabled. If this is the case do not allow any
longpress events

Change-Id: I471664bac6ca1f8e57efe4904a385904c40486db
Frameworks: Pimp up Notification Labels Hide [1/2]

This adds fine grain priorities to hide the labels in the notification
drawer in the following ways:

- Show all Labels
- Hide Carrier Label
- Hide WiFI Lable
- Hide all Labels

PS:
- fix codestyle

Change-Id: I8be92bdf27ba017b6aec3c2b311a83758cded6ff

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
fb: actually fix LTE toggle (1/2)

I accidentally pushed the LTE toggle patch although it was not ready.
Whatever here the fix for it. This commit does:

- do not assume that on boot ITelephony service is already up. This
  results in a FC on boot up
- handle like before most things in LTETile itself and call only
  the toggle action to prevend above mentioned
- I thought about it to give as parameter current network state
  to the toggle method to prevend to fetch 2 times the actual mode
  (saves 4 lines of code). But based on the idea that we maybe later
  use other shortcuts as well we will not do it.
- cleanup & codestyle

Sorry again

cheers

kufi

Change-Id: I33a694358cc47973c4a75dccae15ccc7062fdc22
WiFi label is not a Quote!

Cleanup the damn quotes around the WiFi label in the
notification panel. This only removes the quotes from the first
and last positions of the string.

PS 2 : WiFi name can have quotes!

Change-Id: I90badb7b2d8160e41da2632dac79042c4be37f2a

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
Fix preference puts with "null" values.

Null values were being written out as <null /> elements in the
XML prefs file (as expected). This allowed the getFoo() functions
to work correctly because they treated null values as missing mappings
but containsKey would fail.

bug: https://code.google.com/p/android/issues/detail?id=64563
Change-Id: I1f466d01db96bf26e208d4fed3a6f257228bea5d
MountService listeners can not be unregistered

When unregistering MountService listeners, their Binder proxy
objects were compared to registered listeners instead of their
backing objects.

Change-Id: Ie98a686b1d17544f1eda59fb3eb0dc02d836c1b2
Add NULL check in updateProxyConfig

If the exclusionList was null in updateProxyConfig the VM would
crash when converting it to a UTF8 string. Avoid this by adding a
null check.

Change-Id: I0d8106fd54385bd9ae9c652a6c67d459a119cf2b
Before requerying a cursor, check if it is closed.

Before updating a cursor,
it needs to be checked if it is valid.
Currently a defence code only checks
if it is not null.
But in case of "Cursor", it is not valid,
if it is closed.
So just like in CursorAdapter.onContentChanged(),
add the additional defence code to check validation.

Change-Id: I1302f1b6d009897815d4bdb2f20f625688cf9901
Fix some silly system ui derps