Fix NPE during unit test

As of ag/3932176 the slice indexer now queries getSummary() for each
controller. So we need to create all necessary objects before
getSummary(). In this case, the PSCD object.

Change-Id: I0162996be37d740f1e450880bf4698acd94ca0ad
Fixes: 78897071
Test: atest
This commit is contained in:
Fan Zhang
2018-04-30 13:41:56 -07:00
parent 8efbe6e255
commit 16de45d8ec
11 changed files with 63 additions and 63 deletions

View File

@@ -22,12 +22,13 @@ import android.content.Context;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings;
import androidx.preference.SwitchPreference;
import androidx.preference.Preference;
import android.util.Log;
import com.android.settings.core.TogglePreferenceController;
import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
public class AutoRestorePreferenceController extends TogglePreferenceController {
private static final String TAG = "AutoRestorePrefCtrler";
@@ -36,10 +37,7 @@ public class AutoRestorePreferenceController extends TogglePreferenceController
public AutoRestorePreferenceController(Context context, String key) {
super(context, key);
}
public void setPrivacySettingsConfigData(final PrivacySettingsConfigData pData) {
mPSCD = pData;
mPSCD = PrivacySettingsConfigData.getInstance();
}
@Override

View File

@@ -17,20 +17,18 @@
package com.android.settings.backup;
import android.content.Context;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import androidx.preference.Preference;
public class BackupDataPreferenceController extends BasePreferenceController {
private PrivacySettingsConfigData mPSCD;
public BackupDataPreferenceController(Context context, String key) {
super(context, key);
}
public void setPrivacySettingsConfigData(final PrivacySettingsConfigData pData) {
mPSCD = pData;
mPSCD = PrivacySettingsConfigData.getInstance();
}
@Override

View File

@@ -24,7 +24,6 @@ import android.content.Intent;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import androidx.annotation.VisibleForTesting;
import android.util.Log;
import com.android.settings.R;
@@ -32,6 +31,8 @@ import com.android.settings.Settings.PrivacySettingsActivity;
import java.net.URISyntaxException;
import androidx.annotation.VisibleForTesting;
/**
* Helper class for {@link BackupSettingsActivity} that interacts with {@link IBackupManager}.
*/

View File

@@ -18,20 +18,18 @@ package com.android.settings.backup;
import android.content.Context;
import android.content.Intent;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import androidx.preference.Preference;
public class ConfigureAccountPreferenceController extends BasePreferenceController {
private PrivacySettingsConfigData mPSCD;
public ConfigureAccountPreferenceController(Context context, String key) {
super(context, key);
}
public void setPrivacySettingsConfigData(final PrivacySettingsConfigData pData) {
mPSCD = pData;
mPSCD = PrivacySettingsConfigData.getInstance();
}
@Override

View File

@@ -17,21 +17,17 @@
package com.android.settings.backup;
import android.content.Context;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import androidx.preference.Preference;
public class DataManagementPreferenceController extends BasePreferenceController {
private PrivacySettingsConfigData mPSCD;
private boolean mManageEnabled;
public DataManagementPreferenceController(Context context, String key) {
super(context, key);
}
public void setPrivacySettingsConfigData(final PrivacySettingsConfigData pData) {
mPSCD = pData;
mManageEnabled = (mPSCD.getManageIntent() != null) && mPSCD.isBackupEnabled();
mPSCD = PrivacySettingsConfigData.getInstance();
}
@Override
@@ -39,7 +35,8 @@ public class DataManagementPreferenceController extends BasePreferenceController
if (!PrivacySettingsUtils.isAdminUser(mContext)) {
return DISABLED_FOR_USER;
}
if (!mManageEnabled) {
boolean manageEnabled = (mPSCD.getManageIntent() != null) && mPSCD.isBackupEnabled();
if (!manageEnabled) {
return DISABLED_UNSUPPORTED;
}
return AVAILABLE;
@@ -47,12 +44,13 @@ public class DataManagementPreferenceController extends BasePreferenceController
@Override
public void updateState(Preference preference) {
if (mManageEnabled) {
preference.setIntent(mPSCD.getManageIntent());
final String manageLabel = mPSCD.getManageLabel();
if (manageLabel != null) {
preference.setTitle(manageLabel);
}
if (!isAvailable()) {
return;
}
preference.setIntent(mPSCD.getManageIntent());
final String manageLabel = mPSCD.getManageLabel();
if (manageLabel != null) {
preference.setTitle(manageLabel);
}
}
}

View File

@@ -65,15 +65,10 @@ public class PrivacySettings extends DashboardFragment {
}
private void updatePrivacySettingsConfigData(final Context context) {
final PrivacySettingsConfigData pData = new PrivacySettingsConfigData();
if (PrivacySettingsUtils.isAdminUser(context)) {
PrivacySettingsUtils.updatePrivacyBuffer(context, pData);
PrivacySettingsUtils.updatePrivacyBuffer(context,
PrivacySettingsConfigData.getInstance());
}
use(BackupDataPreferenceController.class).setPrivacySettingsConfigData(pData);
use(ConfigureAccountPreferenceController.class).setPrivacySettingsConfigData(pData);
use(DataManagementPreferenceController.class).setPrivacySettingsConfigData(pData);
use(AutoRestorePreferenceController.class).setPrivacySettingsConfigData(pData);
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =

View File

@@ -19,6 +19,9 @@ package com.android.settings.backup;
import android.content.Intent;
public class PrivacySettingsConfigData {
private static PrivacySettingsConfigData sInstance;
private boolean mBackupEnabled;
private boolean mBackupGray;
private Intent mConfigIntent;
@@ -26,7 +29,7 @@ public class PrivacySettingsConfigData {
private Intent mManageIntent;
private String mManageLabel;
public PrivacySettingsConfigData() {
private PrivacySettingsConfigData() {
mBackupEnabled = false;
mBackupGray = false;
mConfigIntent = null;
@@ -35,6 +38,13 @@ public class PrivacySettingsConfigData {
mManageLabel = null;
}
public static PrivacySettingsConfigData getInstance() {
if (sInstance == null) {
sInstance = new PrivacySettingsConfigData();
}
return sInstance;
}
public boolean isBackupEnabled() {
return mBackupEnabled;
}