Fix memory leaks in Settings
Bug: 80507279 Test: inspected hprof before and after fix Change-Id: I6ea2925695deb6261263649e858484e1667ec522
This commit is contained in:
@@ -21,7 +21,6 @@ import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.os.UserManager;
|
||||
import androidx.annotation.Keep;
|
||||
|
||||
import com.android.settings.accounts.AccountFeatureProvider;
|
||||
import com.android.settings.accounts.AccountFeatureProviderImpl;
|
||||
@@ -54,6 +53,8 @@ import com.android.settings.users.UserFeatureProvider;
|
||||
import com.android.settings.users.UserFeatureProviderImpl;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
|
||||
/**
|
||||
* {@link FeatureFactory} implementation for AOSP Settings.
|
||||
*/
|
||||
@@ -93,7 +94,8 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
@Override
|
||||
public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) {
|
||||
if (mPowerUsageFeatureProvider == null) {
|
||||
mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(context);
|
||||
mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(
|
||||
context.getApplicationContext());
|
||||
}
|
||||
return mPowerUsageFeatureProvider;
|
||||
}
|
||||
@@ -101,7 +103,8 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
@Override
|
||||
public DashboardFeatureProvider getDashboardFeatureProvider(Context context) {
|
||||
if (mDashboardFeatureProvider == null) {
|
||||
mDashboardFeatureProvider = new DashboardFeatureProviderImpl(context);
|
||||
mDashboardFeatureProvider = new DashboardFeatureProviderImpl(
|
||||
context.getApplicationContext());
|
||||
}
|
||||
return mDashboardFeatureProvider;
|
||||
}
|
||||
@@ -117,10 +120,11 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
@Override
|
||||
public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
|
||||
if (mApplicationFeatureProvider == null) {
|
||||
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(context,
|
||||
context.getPackageManager(),
|
||||
final Context appContext = context.getApplicationContext();
|
||||
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(appContext,
|
||||
appContext.getPackageManager(),
|
||||
AppGlobals.getPackageManager(),
|
||||
(DevicePolicyManager) context
|
||||
(DevicePolicyManager) appContext
|
||||
.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
||||
}
|
||||
return mApplicationFeatureProvider;
|
||||
@@ -137,12 +141,14 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
@Override
|
||||
public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
|
||||
if (mEnterprisePrivacyFeatureProvider == null) {
|
||||
mEnterprisePrivacyFeatureProvider = new EnterprisePrivacyFeatureProviderImpl(context,
|
||||
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
|
||||
context.getPackageManager(),
|
||||
UserManager.get(context),
|
||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
|
||||
context.getResources());
|
||||
final Context appContext = context.getApplicationContext();
|
||||
mEnterprisePrivacyFeatureProvider = new EnterprisePrivacyFeatureProviderImpl(appContext,
|
||||
(DevicePolicyManager) appContext.getSystemService(
|
||||
Context.DEVICE_POLICY_SERVICE),
|
||||
appContext.getPackageManager(),
|
||||
UserManager.get(appContext),
|
||||
(ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE),
|
||||
appContext.getResources());
|
||||
}
|
||||
return mEnterprisePrivacyFeatureProvider;
|
||||
}
|
||||
@@ -171,7 +177,8 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
@Override
|
||||
public SuggestionFeatureProvider getSuggestionFeatureProvider(Context context) {
|
||||
if (mSuggestionFeatureProvider == null) {
|
||||
mSuggestionFeatureProvider = new SuggestionFeatureProviderImpl(context);
|
||||
mSuggestionFeatureProvider = new SuggestionFeatureProviderImpl(
|
||||
context.getApplicationContext());
|
||||
}
|
||||
return mSuggestionFeatureProvider;
|
||||
}
|
||||
@@ -179,7 +186,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
@Override
|
||||
public UserFeatureProvider getUserFeatureProvider(Context context) {
|
||||
if (mUserFeatureProvider == null) {
|
||||
mUserFeatureProvider = new UserFeatureProviderImpl(context);
|
||||
mUserFeatureProvider = new UserFeatureProviderImpl(context.getApplicationContext());
|
||||
}
|
||||
return mUserFeatureProvider;
|
||||
}
|
||||
|
Reference in New Issue
Block a user