Explicitly set ENABLED state when a user enables an app.

When a user explicitly clicks a button labeled "Enable" for an
application in settings, the underlying package state should reflect
this. Otherwise, it is impossible to distinguish between the default
state of an app and an app which the user has explicitly requested to
enable.

This behavior is consistent with the Play Store's.

This also fixes a metrics bug where enabling a DISABLED_UNTIL_USED app
would be erroneously treated as disabling the app.

Test: Flashed and verified enabling both DISABLED_UNTIL_USED and
DISABLED apps.
Fixes: 64223206

Change-Id: Ic18068e6047045d6f5333eaf10fcddd1e95a679d
This commit is contained in:
Jeff Davidson
2017-09-29 12:47:57 -07:00
parent 3a33b00ed1
commit 3638973a17

View File

@@ -982,11 +982,9 @@ public class InstalledAppDetails extends AppInfoBase
} else { } else {
mMetricsFeatureProvider.action( mMetricsFeatureProvider.action(
getActivity(), getActivity(),
mAppEntry.info.enabled MetricsEvent.ACTION_SETTINGS_ENABLE_APP);
? MetricsEvent.ACTION_SETTINGS_DISABLE_APP
: MetricsEvent.ACTION_SETTINGS_ENABLE_APP);
new DisableChanger(this, mAppEntry.info, new DisableChanger(this, mAppEntry.info,
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) PackageManager.COMPONENT_ENABLED_STATE_ENABLED)
.execute((Object) null); .execute((Object) null);
} }
} else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_INSTALLED) == 0) { } else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_INSTALLED) == 0) {