Snap for 4698807 from 54ee35c35c
to pi-release
Change-Id: I5675b94a50cd3edc4fc294d67e99f52d892f66e4
This commit is contained in:
@@ -388,7 +388,7 @@
|
||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||
android:value="true" />
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
android:value="com.android.settings.ApnSettings" />
|
||||
android:value="com.android.settings.network.ApnSettings" />
|
||||
</activity>
|
||||
|
||||
<!-- Keep compatibility with old shortcuts. -->
|
||||
@@ -1903,7 +1903,7 @@
|
||||
<data android:mimeType="vnd.android.cursor.dir/telephony-carrier" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
android:value="com.android.settings.ApnEditor" />
|
||||
android:value="com.android.settings.network.ApnEditor" />
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
|
@@ -83,6 +83,9 @@
|
||||
<Preference android:key="ca_certs_managed_profile"
|
||||
android:title="@string/enterprise_privacy_ca_certs_work"
|
||||
android:selectable="false"/>
|
||||
<Preference android:key="backups_enabled"
|
||||
android:title="@string/enterprise_privacy_backups_enabled"
|
||||
android:selectable="false"/>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:key="device_access_category"
|
||||
|
@@ -46,6 +46,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.telephony.PhoneConstants;
|
||||
import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
|
||||
import com.android.settings.network.ApnSettings;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
|
||||
/**
|
||||
|
@@ -19,6 +19,7 @@ import android.app.AppGlobals;
|
||||
import android.app.AppOpsManager;
|
||||
import android.app.AppOpsManager.PackageOps;
|
||||
import android.content.Context;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.RemoteException;
|
||||
@@ -31,7 +32,6 @@ import android.util.SparseArray;
|
||||
|
||||
import com.android.settingslib.applications.ApplicationsState;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -47,7 +47,7 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge {
|
||||
|
||||
private static final String TAG = "AppStateAppOpsBridge";
|
||||
|
||||
private final IPackageManagerWrapper mIPackageManager;
|
||||
private final IPackageManager mIPackageManager;
|
||||
private final UserManager mUserManager;
|
||||
private final List<UserHandle> mProfiles;
|
||||
private final AppOpsManager mAppOpsManager;
|
||||
@@ -58,12 +58,12 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge {
|
||||
public AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback,
|
||||
int appOpsOpCode, String[] permissions) {
|
||||
this(context, appState, callback, appOpsOpCode, permissions,
|
||||
new IPackageManagerWrapper(AppGlobals.getPackageManager()));
|
||||
AppGlobals.getPackageManager());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback,
|
||||
int appOpsOpCode, String[] permissions, IPackageManagerWrapper packageManager) {
|
||||
int appOpsOpCode, String[] permissions, IPackageManager packageManager) {
|
||||
super(appState, callback);
|
||||
mContext = context;
|
||||
mIPackageManager = packageManager;
|
||||
@@ -210,9 +210,10 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge {
|
||||
if (entriesForProfile == null) {
|
||||
continue;
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<PackageInfo> packageInfos = mIPackageManager
|
||||
.getPackagesHoldingPermissions(mPermissions, 0, profileId).getList();
|
||||
@SuppressWarnings("unchecked") final List<PackageInfo> packageInfos =
|
||||
mIPackageManager
|
||||
.getPackagesHoldingPermissions(mPermissions, 0,
|
||||
profileId).getList();
|
||||
final int packageInfoCount = packageInfos != null ? packageInfos.size() : 0;
|
||||
for (int i = 0; i < packageInfoCount; i++) {
|
||||
final PackageInfo packageInfo = packageInfos.get(i);
|
||||
|
@@ -17,12 +17,12 @@ package com.android.settings.applications;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
/**
|
||||
@@ -32,11 +32,11 @@ import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
||||
|
||||
private final String[] mPermissions;
|
||||
private final IPackageManagerWrapper mPackageManagerService;
|
||||
private final IPackageManager mPackageManagerService;
|
||||
private final DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
public AppWithAdminGrantedPermissionsCounter(Context context, String[] permissions,
|
||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
||||
PackageManagerWrapper packageManager, IPackageManager packageManagerService,
|
||||
DevicePolicyManager devicePolicyManager) {
|
||||
super(context, packageManager);
|
||||
mPermissions = permissions;
|
||||
@@ -52,7 +52,7 @@ public abstract class AppWithAdminGrantedPermissionsCounter extends AppCounter {
|
||||
|
||||
public static boolean includeInCount(String[] permissions,
|
||||
DevicePolicyManager devicePolicyManager, PackageManagerWrapper packageManager,
|
||||
IPackageManagerWrapper packageManagerService, ApplicationInfo info) {
|
||||
IPackageManager packageManagerService, ApplicationInfo info) {
|
||||
if (info.targetSdkVersion >= Build.VERSION_CODES.M) {
|
||||
// The app uses run-time permissions. Check whether one or more of the permissions were
|
||||
// granted by enterprise policy.
|
||||
|
@@ -18,9 +18,9 @@ package com.android.settings.applications;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.os.UserManager;
|
||||
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
/**
|
||||
@@ -29,11 +29,11 @@ import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
*/
|
||||
public abstract class AppWithAdminGrantedPermissionsLister extends AppLister {
|
||||
private final String[] mPermissions;
|
||||
private final IPackageManagerWrapper mPackageManagerService;
|
||||
private final IPackageManager mPackageManagerService;
|
||||
private final DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
public AppWithAdminGrantedPermissionsLister(String[] permissions,
|
||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
||||
PackageManagerWrapper packageManager, IPackageManager packageManagerService,
|
||||
DevicePolicyManager devicePolicyManager, UserManager userManager) {
|
||||
super(packageManager, userManager);
|
||||
mPermissions = permissions;
|
||||
|
@@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ComponentInfo;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
@@ -27,7 +28,6 @@ import android.os.RemoteException;
|
||||
import android.os.UserManager;
|
||||
import android.util.ArraySet;
|
||||
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -38,12 +38,12 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
||||
|
||||
private final Context mContext;
|
||||
private final PackageManagerWrapper mPm;
|
||||
private final IPackageManagerWrapper mPms;
|
||||
private final IPackageManager mPms;
|
||||
private final DevicePolicyManager mDpm;
|
||||
private final UserManager mUm;
|
||||
|
||||
public ApplicationFeatureProviderImpl(Context context, PackageManagerWrapper pm,
|
||||
IPackageManagerWrapper pms, DevicePolicyManager dpm) {
|
||||
IPackageManager pms, DevicePolicyManager dpm) {
|
||||
mContext = context.getApplicationContext();
|
||||
mPm = pm;
|
||||
mPms = pms;
|
||||
@@ -149,7 +149,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
||||
|
||||
CurrentUserAndManagedProfileAppWithAdminGrantedPermissionsCounter(Context context,
|
||||
String[] permissions, PackageManagerWrapper packageManager,
|
||||
IPackageManagerWrapper packageManagerService,
|
||||
IPackageManager packageManagerService,
|
||||
DevicePolicyManager devicePolicyManager, NumberOfAppsCallback callback) {
|
||||
super(context, permissions, packageManager, packageManagerService, devicePolicyManager);
|
||||
mCallback = callback;
|
||||
@@ -181,7 +181,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
||||
private ListOfAppsCallback mCallback;
|
||||
|
||||
CurrentUserAppWithAdminGrantedPermissionsLister(String[] permissions,
|
||||
PackageManagerWrapper packageManager, IPackageManagerWrapper packageManagerService,
|
||||
PackageManagerWrapper packageManager, IPackageManager packageManagerService,
|
||||
DevicePolicyManager devicePolicyManager, UserManager userManager,
|
||||
ListOfAppsCallback callback) {
|
||||
super(permissions, packageManager, packageManagerService, devicePolicyManager,
|
||||
|
@@ -22,6 +22,7 @@ import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.notification.AppNotificationSettings;
|
||||
import com.android.settings.notification.NotificationBackend;
|
||||
@@ -77,7 +78,18 @@ public class AppNotificationPreferenceController extends AppInfoPreferenceContro
|
||||
|
||||
public static CharSequence getNotificationSummary(NotificationBackend.AppRow appRow,
|
||||
Context context) {
|
||||
// TODO: implement summary when it is known what it should say
|
||||
if (appRow == null) {
|
||||
return "";
|
||||
}
|
||||
if (appRow.banned || appRow.channelCount == appRow.blockedChannelCount) {
|
||||
return context.getString(R.string.notifications_disabled);
|
||||
} else {
|
||||
if (appRow.blockedChannelCount == 0) {
|
||||
return context.getString(R.string.notifications_enabled);
|
||||
}
|
||||
return context.getString(R.string.notifications_enabled_with_info,
|
||||
context.getResources().getQuantityString(R.plurals.notifications_categories_off,
|
||||
appRow.blockedChannelCount, appRow.blockedChannelCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -16,8 +16,6 @@
|
||||
|
||||
package com.android.settings.core.gateway;
|
||||
|
||||
import com.android.settings.ApnEditor;
|
||||
import com.android.settings.ApnSettings;
|
||||
import com.android.settings.DateTimeSettings;
|
||||
import com.android.settings.DeviceAdminSettings;
|
||||
import com.android.settings.DisplaySettings;
|
||||
@@ -91,6 +89,8 @@ import com.android.settings.inputmethod.UserDictionarySettings;
|
||||
import com.android.settings.language.LanguageAndInputSettings;
|
||||
import com.android.settings.localepicker.LocaleListEditor;
|
||||
import com.android.settings.location.LocationSettings;
|
||||
import com.android.settings.network.ApnEditor;
|
||||
import com.android.settings.network.ApnSettings;
|
||||
import com.android.settings.network.NetworkDashboardFragment;
|
||||
import com.android.settings.nfc.AndroidBeam;
|
||||
import com.android.settings.nfc.PaymentSettings;
|
||||
|
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the
|
||||
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the specific language governing
|
||||
* permissions and limitations under the License.
|
||||
*/
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
public class BackupsEnabledPreferenceController extends BasePreferenceController {
|
||||
|
||||
private static final String KEY_BACKUPS_ENABLED = "backups_enabled";
|
||||
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
|
||||
|
||||
public BackupsEnabledPreferenceController(Context context) {
|
||||
super(context, KEY_BACKUPS_ENABLED);
|
||||
mFeatureProvider = FeatureFactory.getFactory(context)
|
||||
.getEnterprisePrivacyFeatureProvider(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return mFeatureProvider.areBackupsMandatory() ? AVAILABLE : DISABLED_FOR_USER;
|
||||
}
|
||||
}
|
||||
|
@@ -124,4 +124,9 @@ public interface EnterprisePrivacyFeatureProvider {
|
||||
* profile (if any).
|
||||
*/
|
||||
int getNumberOfActiveDeviceAdminsForCurrentUserAndManagedProfile();
|
||||
|
||||
/*
|
||||
* Returns whether backups are mandatory.
|
||||
*/
|
||||
boolean areBackupsMandatory();
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
@@ -32,7 +33,6 @@ import android.view.View;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.vpn2.VpnUtils;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -44,13 +44,13 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
||||
private final DevicePolicyManager mDpm;
|
||||
private final PackageManagerWrapper mPm;
|
||||
private final UserManager mUm;
|
||||
private final ConnectivityManagerWrapper mCm;
|
||||
private final ConnectivityManager mCm;
|
||||
private final Resources mResources;
|
||||
|
||||
private static final int MY_USER_ID = UserHandle.myUserId();
|
||||
|
||||
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManager dpm,
|
||||
PackageManagerWrapper pm, UserManager um, ConnectivityManagerWrapper cm,
|
||||
PackageManagerWrapper pm, UserManager um, ConnectivityManager cm,
|
||||
Resources resources) {
|
||||
mContext = context.getApplicationContext();
|
||||
mDpm = dpm;
|
||||
@@ -235,6 +235,11 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
||||
return activeAdmins;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean areBackupsMandatory() {
|
||||
return null != mDpm.getMandatoryBackupTransport();
|
||||
}
|
||||
|
||||
protected static class EnterprisePrivacySpan extends ClickableSpan {
|
||||
private final Context mContext;
|
||||
|
||||
|
@@ -82,6 +82,7 @@ public class EnterprisePrivacySettings extends DashboardFragment {
|
||||
exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController(context));
|
||||
exposureChangesCategoryControllers.add(new CaCertsManagedProfilePreferenceController(
|
||||
context));
|
||||
exposureChangesCategoryControllers.add(new BackupsEnabledPreferenceController(context));
|
||||
controllers.addAll(exposureChangesCategoryControllers);
|
||||
controllers.add(new PreferenceCategoryController(context, "exposure_changes_category")
|
||||
.setChildren(exposureChangesCategoryControllers));
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.fuelgauge.batterytip.detectors;
|
||||
import android.content.Context;
|
||||
import android.os.BatteryStats;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
import com.android.internal.os.BatterySipper;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
@@ -72,6 +73,7 @@ public class HighUsageDetector implements BatteryTipDetector {
|
||||
final long foregroundTimeMs = mBatteryUtils.getProcessTimeMs(
|
||||
BatteryUtils.StatusType.FOREGROUND, batterySipper.uidObj,
|
||||
BatteryStats.STATS_SINCE_CHARGED);
|
||||
if (foregroundTimeMs >= DateUtils.MINUTE_IN_MILLIS) {
|
||||
mHighUsageAppList.add(new AppInfo.Builder()
|
||||
.setUid(batterySipper.getUid())
|
||||
.setPackageName(
|
||||
@@ -80,10 +82,11 @@ public class HighUsageDetector implements BatteryTipDetector {
|
||||
.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(mHighUsageAppList, Collections.reverseOrder());
|
||||
mHighUsageAppList = mHighUsageAppList.subList(0,
|
||||
Math.min(mPolicy.highUsageAppCount, mHighUsageAppList.size()));
|
||||
Collections.sort(mHighUsageAppList, Collections.reverseOrder());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -14,7 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
package com.android.settings.network;
|
||||
|
||||
import static android.content.Context.TELEPHONY_SERVICE;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
@@ -47,9 +49,11 @@ import android.view.View.OnKeyListener;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.internal.telephony.PhoneConstants;
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -57,11 +61,6 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static android.content.Context.TELEPHONY_SERVICE;
|
||||
|
||||
/**
|
||||
* TODO(b/77339683): After loading all changes, please move this to network package.
|
||||
*/
|
||||
public class ApnEditor extends SettingsPreferenceFragment
|
||||
implements OnPreferenceChangeListener, OnKeyListener {
|
||||
|
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
package com.android.settings.network;
|
||||
|
||||
import android.content.ContentUris;
|
||||
import android.content.Context;
|
||||
@@ -32,6 +32,8 @@ import android.widget.CompoundButton;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
public class ApnPreference extends Preference implements
|
||||
CompoundButton.OnCheckedChangeListener, OnClickListener {
|
||||
final static String TAG = "ApnPreference";
|
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
package com.android.settings.network;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
@@ -39,7 +39,6 @@ import android.os.UserManager;
|
||||
import android.provider.Telephony;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceGroup;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
@@ -50,7 +49,6 @@ import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
@@ -59,6 +57,8 @@ import com.android.internal.telephony.TelephonyIntents;
|
||||
import com.android.internal.telephony.dataconnection.ApnSetting;
|
||||
import com.android.internal.telephony.uicc.IccRecords;
|
||||
import com.android.internal.telephony.uicc.UiccController;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.RestrictedSettingsFragment;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
|
||||
import java.util.ArrayList;
|
@@ -60,6 +60,8 @@ public class NotificationBackend {
|
||||
row.banned = getNotificationsBanned(row.pkg, row.uid);
|
||||
row.showBadge = canShowBadge(row.pkg, row.uid);
|
||||
row.userId = UserHandle.getUserId(row.uid);
|
||||
row.blockedChannelCount = getBlockedChannelCount(row.pkg, row.uid);
|
||||
row.channelCount = getChannelCount(row.pkg, row.uid);
|
||||
return row;
|
||||
}
|
||||
|
||||
@@ -178,18 +180,6 @@ public class NotificationBackend {
|
||||
}
|
||||
}
|
||||
|
||||
public NotificationChannelGroup getGroupWithChannels(String pkg, int uid, String groupId) {
|
||||
if (groupId == null) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return sINM.getPopulatedNotificationChannelGroupForPackage(pkg, uid, groupId, true);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "Error calling NoMan", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public ParceledListSlice<NotificationChannelGroup> getGroups(String pkg, int uid) {
|
||||
try {
|
||||
return sINM.getNotificationChannelGroupsForPackage(pkg, uid, false);
|
||||
@@ -224,6 +214,15 @@ public class NotificationBackend {
|
||||
}
|
||||
}
|
||||
|
||||
public int getBlockedChannelCount(String pkg, int uid) {
|
||||
try {
|
||||
return sINM.getBlockedChannelCount(pkg, uid);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "Error calling NoMan", e);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean onlyHasDefaultChannel(String pkg, int uid) {
|
||||
try {
|
||||
return sINM.onlyHasDefaultChannel(pkg, uid);
|
||||
@@ -233,6 +232,15 @@ public class NotificationBackend {
|
||||
}
|
||||
}
|
||||
|
||||
public int getChannelCount(String pkg, int uid) {
|
||||
try {
|
||||
return sINM.getNumNotificationChannelsForPackage(pkg, uid, false);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "Error calling NoMan", e);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public List<NotifyingApp> getRecentApps() {
|
||||
try {
|
||||
return sINM.getRecentNotifyingAppsForUser(UserHandle.myUserId()).getList();
|
||||
@@ -259,5 +267,7 @@ public class NotificationBackend {
|
||||
public String lockedChannelId;
|
||||
public boolean showBadge;
|
||||
public int userId;
|
||||
public int blockedChannelCount;
|
||||
public int channelCount;
|
||||
}
|
||||
}
|
||||
|
@@ -83,6 +83,7 @@ public class VolumeSeekBarPreference extends SeekBarPreference {
|
||||
public void setStream(int stream) {
|
||||
mStream = stream;
|
||||
setMax(mAudioManager.getStreamMaxVolume(mStream));
|
||||
setMin(mAudioManager.getStreamMinVolume(mStream));
|
||||
setProgress(mAudioManager.getStreamVolume(mStream));
|
||||
}
|
||||
|
||||
|
@@ -51,8 +51,6 @@ import com.android.settings.slices.SlicesFeatureProvider;
|
||||
import com.android.settings.slices.SlicesFeatureProviderImpl;
|
||||
import com.android.settings.users.UserFeatureProvider;
|
||||
import com.android.settings.users.UserFeatureProviderImpl;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
@@ -112,7 +110,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
if (mApplicationFeatureProvider == null) {
|
||||
mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(context,
|
||||
new PackageManagerWrapper(context.getPackageManager()),
|
||||
new IPackageManagerWrapper(AppGlobals.getPackageManager()),
|
||||
AppGlobals.getPackageManager(),
|
||||
(DevicePolicyManager) context
|
||||
.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
||||
}
|
||||
@@ -134,8 +132,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
|
||||
new PackageManagerWrapper(context.getPackageManager()),
|
||||
UserManager.get(context),
|
||||
new ConnectivityManagerWrapper((ConnectivityManager) context
|
||||
.getSystemService(Context.CONNECTIVITY_SERVICE)),
|
||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
|
||||
context.getResources());
|
||||
}
|
||||
return mEnterprisePrivacyFeatureProvider;
|
||||
|
@@ -27,7 +27,6 @@ import android.util.Log;
|
||||
|
||||
import com.android.internal.net.LegacyVpnInfo;
|
||||
import com.android.internal.net.VpnConfig;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
|
||||
/**
|
||||
* Utility functions for vpn.
|
||||
@@ -89,7 +88,7 @@ public class VpnUtils {
|
||||
ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
|
||||
}
|
||||
|
||||
public static boolean isAlwaysOnVpnSet(ConnectivityManagerWrapper cm, final int userId) {
|
||||
public static boolean isAlwaysOnVpnSet(ConnectivityManager cm, final int userId) {
|
||||
return cm.getAlwaysOnVpnPackageForUser(userId) != null;
|
||||
}
|
||||
|
||||
|
@@ -34,11 +34,10 @@ import android.widget.Toast;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.widget.SwitchWidgetController;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
import com.android.settingslib.WirelessUtils;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
@@ -46,7 +45,7 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene
|
||||
|
||||
private final SwitchWidgetController mSwitchWidget;
|
||||
private final WifiManager mWifiManager;
|
||||
private final ConnectivityManagerWrapper mConnectivityManager;
|
||||
private final ConnectivityManager mConnectivityManager;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
|
||||
private Context mContext;
|
||||
@@ -81,20 +80,20 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene
|
||||
|
||||
public WifiEnabler(Context context, SwitchWidgetController switchWidget,
|
||||
MetricsFeatureProvider metricsFeatureProvider) {
|
||||
this(context, switchWidget, metricsFeatureProvider, new ConnectivityManagerWrapper(
|
||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)));
|
||||
this(context, switchWidget, metricsFeatureProvider,
|
||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
WifiEnabler(Context context, SwitchWidgetController switchWidget,
|
||||
MetricsFeatureProvider metricsFeatureProvider,
|
||||
ConnectivityManagerWrapper connectivityManagerWrapper) {
|
||||
ConnectivityManager connectivityManager) {
|
||||
mContext = context;
|
||||
mSwitchWidget = switchWidget;
|
||||
mSwitchWidget.setListener(this);
|
||||
mMetricsFeatureProvider = metricsFeatureProvider;
|
||||
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
mConnectivityManager = connectivityManagerWrapper;
|
||||
mConnectivityManager = connectivityManager;
|
||||
|
||||
mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
|
||||
// The order matters! We really should not depend on this. :(
|
||||
|
@@ -64,7 +64,6 @@ import com.android.settings.search.SearchIndexableRaw;
|
||||
import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
|
||||
import com.android.settings.widget.SwitchBarController;
|
||||
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
import com.android.settingslib.wifi.AccessPoint.AccessPointListener;
|
||||
@@ -852,9 +851,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
pref.getAccessPoint().saveWifiState(pref.getExtras());
|
||||
if (mCaptivePortalNetworkCallback != null
|
||||
&& mCaptivePortalNetworkCallback.isCaptivePortal()) {
|
||||
ConnectivityManagerWrapper connectivityManagerWrapper =
|
||||
new ConnectivityManagerWrapper(mConnectivityManager);
|
||||
connectivityManagerWrapper.startCaptivePortalApp(
|
||||
mConnectivityManager.startCaptivePortalApp(
|
||||
mCaptivePortalNetworkCallback.getNetwork());
|
||||
} else {
|
||||
launchNetworkDetailsFragment(pref);
|
||||
|
@@ -48,6 +48,7 @@ import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
@@ -60,7 +61,6 @@ import com.android.settings.wifi.WifiDetailPreference;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
|
||||
import com.android.settings.wifi.WifiUtils;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -68,6 +68,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
|
||||
import java.net.Inet4Address;
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
@@ -114,7 +115,6 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
static final String KEY_IPV6_ADDRESSES_PREF = "ipv6_addresses";
|
||||
|
||||
private AccessPoint mAccessPoint;
|
||||
private final ConnectivityManagerWrapper mConnectivityManagerWrapper;
|
||||
private final ConnectivityManager mConnectivityManager;
|
||||
private final Fragment mFragment;
|
||||
private final Handler mHandler;
|
||||
@@ -215,7 +215,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
|
||||
public static WifiDetailPreferenceController newInstance(
|
||||
AccessPoint accessPoint,
|
||||
ConnectivityManagerWrapper connectivityManagerWrapper,
|
||||
ConnectivityManager connectivityManager,
|
||||
Context context,
|
||||
Fragment fragment,
|
||||
Handler handler,
|
||||
@@ -223,14 +223,14 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
WifiManager wifiManager,
|
||||
MetricsFeatureProvider metricsFeatureProvider) {
|
||||
return new WifiDetailPreferenceController(
|
||||
accessPoint, connectivityManagerWrapper, context, fragment, handler, lifecycle,
|
||||
accessPoint, connectivityManager, context, fragment, handler, lifecycle,
|
||||
wifiManager, metricsFeatureProvider, new IconInjector(context));
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
/* package */ WifiDetailPreferenceController(
|
||||
AccessPoint accessPoint,
|
||||
ConnectivityManagerWrapper connectivityManagerWrapper,
|
||||
ConnectivityManager connectivityManager,
|
||||
Context context,
|
||||
Fragment fragment,
|
||||
Handler handler,
|
||||
@@ -241,8 +241,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
super(context);
|
||||
|
||||
mAccessPoint = accessPoint;
|
||||
mConnectivityManager = connectivityManagerWrapper.getConnectivityManager();
|
||||
mConnectivityManagerWrapper = connectivityManagerWrapper;
|
||||
mConnectivityManager = connectivityManager;
|
||||
mFragment = fragment;
|
||||
mHandler = handler;
|
||||
mSignalStr = context.getResources().getStringArray(R.array.wifi_signal);
|
||||
@@ -326,7 +325,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
|
||||
updateInfo();
|
||||
mContext.registerReceiver(mReceiver, mFilter);
|
||||
mConnectivityManagerWrapper.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
|
||||
mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
|
||||
mHandler);
|
||||
}
|
||||
|
||||
@@ -486,7 +485,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
private static String ipv4PrefixLengthToSubnetMask(int prefixLength) {
|
||||
try {
|
||||
InetAddress all = InetAddress.getByAddress(
|
||||
new byte[]{(byte) 255, (byte) 255, (byte) 255, (byte) 255});
|
||||
new byte[] {(byte) 255, (byte) 255, (byte) 255, (byte) 255});
|
||||
return NetworkUtils.getNetworkPart(all, prefixLength).getHostAddress();
|
||||
} catch (UnknownHostException e) {
|
||||
return null;
|
||||
@@ -538,7 +537,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
private void signIntoNetwork() {
|
||||
mMetricsFeatureProvider.action(
|
||||
mFragment.getActivity(), MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
||||
mConnectivityManagerWrapper.startCaptivePortalApp(mNetwork);
|
||||
mConnectivityManager.startCaptivePortalApp(mNetwork);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -20,13 +20,10 @@ import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkPolicyManager;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.support.v7.preference.DropDownPreference;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -37,13 +34,11 @@ import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.wifi.WifiConfigUiBase;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -126,10 +121,10 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
||||
@Override
|
||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||
final ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||
mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
|
||||
mAccessPoint,
|
||||
new ConnectivityManagerWrapper(cm),
|
||||
cm,
|
||||
context,
|
||||
this,
|
||||
new Handler(Looper.getMainLooper()), // UI thread.
|
||||
|
@@ -1,98 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.wrapper;
|
||||
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.ConnectivityManager.NetworkCallback;
|
||||
import android.net.Network;
|
||||
import android.net.NetworkRequest;
|
||||
import android.os.Handler;
|
||||
import android.net.ProxyInfo;
|
||||
|
||||
/**
|
||||
* This class replicates a subset of the android.net.ConnectivityManager (CM). The class
|
||||
* exists so that we can use a thin wrapper around the CM in production code and a mock in tests.
|
||||
* We cannot directly mock or shadow the CM, because some of the methods we rely on are marked as
|
||||
* hidden and are thus invisible to Robolectric.
|
||||
*/
|
||||
public class ConnectivityManagerWrapper {
|
||||
|
||||
private final ConnectivityManager mCm;
|
||||
|
||||
public ConnectivityManagerWrapper(ConnectivityManager cm) {
|
||||
mCm = cm;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the real ConnectivityManager object wrapped by this wrapper.
|
||||
*/
|
||||
public ConnectivityManager getConnectivityManager() {
|
||||
return mCm;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code ConnectivityManager.getAlwaysOnVpnPackageForUser()}.
|
||||
*
|
||||
* @see android.net.ConnectivityManager#getAlwaysOnVpnPackageForUser
|
||||
*/
|
||||
public String getAlwaysOnVpnPackageForUser(int userId) {
|
||||
return mCm.getAlwaysOnVpnPackageForUser(userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code ConnectivityManager.getGlobalProxy()}.
|
||||
*
|
||||
* @see android.net.ConnectivityManager#getGlobalProxy
|
||||
*/
|
||||
public ProxyInfo getGlobalProxy() {
|
||||
return mCm.getGlobalProxy();
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code ConnectivityManager.registerNetworkCallback()}.
|
||||
*
|
||||
* This is part of the ConnectivityManager public API in SDK 26 or above, but is not yet visible
|
||||
* to the robolectric tests, which currently build with SDK 23.
|
||||
* TODO: delete this once the robolectric tests build with SDK 26 or above.
|
||||
*
|
||||
* @see android.net.ConnectivityManager#registerNetworkCallback(NetworkRequest,NetworkCallback,Handler)
|
||||
*/
|
||||
public void registerNetworkCallback(NetworkRequest request, NetworkCallback callback,
|
||||
Handler handler) {
|
||||
mCm.registerNetworkCallback(request, callback, handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code ConnectivityManager.startCaptivePortalApp()}.
|
||||
*
|
||||
* This is part of the ConnectivityManager public API in SDK 26 or above, but is not yet visible
|
||||
* to the robolectric tests, which currently build with SDK 23.
|
||||
* TODO: delete this once the robolectric tests build with SDK 26 or above.
|
||||
*
|
||||
* @see android.net.ConnectivityManager#startCaptivePortalApp(Network)
|
||||
*/
|
||||
public void startCaptivePortalApp(Network network) {
|
||||
mCm.startCaptivePortalApp(network);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ConnectivityManager#stopTethering}
|
||||
*/
|
||||
public void stopTethering(int type) {
|
||||
mCm.stopTethering(type);
|
||||
}
|
||||
}
|
@@ -1,97 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.wrapper;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.ParceledListSlice;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.os.RemoteException;
|
||||
|
||||
/**
|
||||
* This class replicates a subset of the android.content.pm.IPackageManager (PMS). The class
|
||||
* exists so that we can use a thin wrapper around the PMS in production code and a mock in tests.
|
||||
* We cannot directly mock or shadow the PMS, because some of the methods we rely on are newer than
|
||||
* the API version supported by Robolectric.
|
||||
*/
|
||||
public class IPackageManagerWrapper {
|
||||
|
||||
private final IPackageManager mPms;
|
||||
|
||||
public IPackageManagerWrapper(IPackageManager pms) {
|
||||
mPms = pms;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code IPackageManager.checkUidPermission()}.
|
||||
*
|
||||
* @see android.content.pm.IPackageManager#checkUidPermission
|
||||
*/
|
||||
public int checkUidPermission(String permName, int uid) throws RemoteException {
|
||||
return mPms.checkUidPermission(permName, uid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code IPackageManager.findPersistentPreferredActivity()}.
|
||||
*
|
||||
* @see android.content.pm.IPackageManager#findPersistentPreferredActivity
|
||||
*/
|
||||
public ResolveInfo findPersistentPreferredActivity(Intent intent, int userId)
|
||||
throws RemoteException {
|
||||
return mPms.findPersistentPreferredActivity(intent, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code IPackageManager.getPackageInfo()}.
|
||||
*
|
||||
* @see android.content.pm.IPackageManager#getPackageInfo
|
||||
*/
|
||||
public PackageInfo getPackageInfo(String packageName, int flags, int userId)
|
||||
throws RemoteException {
|
||||
return mPms.getPackageInfo(packageName, flags, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code IPackageManager.getAppOpPermissionPackages()}.
|
||||
*
|
||||
* @see android.content.pm.IPackageManager#getAppOpPermissionPackages
|
||||
*/
|
||||
public String[] getAppOpPermissionPackages(String permissionName) throws RemoteException {
|
||||
return mPms.getAppOpPermissionPackages(permissionName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code IPackageManager.isPackageAvailable()}.
|
||||
*
|
||||
* @see android.content.pm.IPackageManager#isPackageAvailable
|
||||
*/
|
||||
public boolean isPackageAvailable(String packageName, int userId) throws RemoteException {
|
||||
return mPms.isPackageAvailable(packageName, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@code IPackageManager.getPackagesHoldingPermissions()}.
|
||||
*
|
||||
* @see android.content.pm.IPackageManager#getPackagesHoldingPermissions
|
||||
*/
|
||||
public ParceledListSlice<PackageInfo> getPackagesHoldingPermissions(
|
||||
String[] permissions, int flags, int userId) throws RemoteException {
|
||||
return mPms.getPackagesHoldingPermissions(permissions, flags, userId);
|
||||
}
|
||||
|
||||
}
|
@@ -23,11 +23,11 @@ import static org.mockito.Mockito.when;
|
||||
import android.Manifest;
|
||||
import android.app.AppOpsManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -41,7 +41,7 @@ public final class AppStateAppOpsBridgeTest {
|
||||
|
||||
@Mock private Context mContext;
|
||||
@Mock private UserManager mUserManager;
|
||||
@Mock private IPackageManagerWrapper mPackageManagerService;
|
||||
@Mock private IPackageManager mPackageManagerService;
|
||||
@Mock private AppOpsManager mAppOpsManager;
|
||||
|
||||
@Before
|
||||
|
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.Build;
|
||||
@@ -37,7 +38,6 @@ import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -81,7 +81,7 @@ public final class AppWithAdminGrantedPermissionsCounterTest {
|
||||
@Mock
|
||||
private PackageManagerWrapper mPackageManager;
|
||||
@Mock
|
||||
private IPackageManagerWrapper mPackageManagerService;
|
||||
private IPackageManager mPackageManagerService;
|
||||
@Mock
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
|
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.Build;
|
||||
@@ -34,7 +35,6 @@ import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -78,7 +78,7 @@ public final class AppWithAdminGrantedPermissionsListerTest {
|
||||
@Mock
|
||||
private PackageManagerWrapper mPackageManager;
|
||||
@Mock
|
||||
private IPackageManagerWrapper mPackageManagerService;
|
||||
private IPackageManager mPackageManagerService;
|
||||
@Mock
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
|
@@ -24,6 +24,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
@@ -33,7 +34,6 @@ import android.os.UserManager;
|
||||
|
||||
import com.android.settings.testutils.ApplicationTestUtils;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wrapper.IPackageManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -72,7 +72,7 @@ public final class ApplicationFeatureProviderImplTest {
|
||||
@Mock
|
||||
private PackageManagerWrapper mPackageManager;
|
||||
@Mock
|
||||
private IPackageManagerWrapper mPackageManagerService;
|
||||
private IPackageManager mPackageManagerService;
|
||||
@Mock
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
|
@@ -105,4 +105,49 @@ public class AppNotificationPreferenceControllerTest {
|
||||
assertThat(controller.getArguments().containsKey(EXTRA_FRAGMENT_ARG_KEY)).isTrue();
|
||||
assertThat(controller.getArguments().getString(EXTRA_FRAGMENT_ARG_KEY)).isEqualTo("test");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNotificationSummary_noCrashOnNull() {
|
||||
mController.getNotificationSummary(null, mContext);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNotificationSummary_appBlocked() {
|
||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||
appRow.banned = true;
|
||||
appRow.blockedChannelCount = 30;
|
||||
assertThat(mController.getNotificationSummary(appRow, mContext).toString())
|
||||
.isEqualTo("Off");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNotificationSummary_appNotBlockedAllChannelsBlocked() {
|
||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||
appRow.banned = false;
|
||||
appRow.blockedChannelCount = 30;
|
||||
appRow.channelCount = 30;
|
||||
assertThat(mController.getNotificationSummary(appRow, mContext).toString())
|
||||
.isEqualTo("Off");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNotificationSummary_appNotBlocked() {
|
||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||
appRow.banned = false;
|
||||
appRow.blockedChannelCount = 30;
|
||||
appRow.channelCount = 60;
|
||||
assertThat(mController.getNotificationSummary(
|
||||
appRow, mContext).toString().contains("30")).isTrue();
|
||||
assertThat(mController.getNotificationSummary(
|
||||
appRow, mContext).toString().contains("On")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNotificationSummary_channelsNotBlocked() {
|
||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||
appRow.banned = false;
|
||||
appRow.blockedChannelCount = 0;
|
||||
appRow.channelCount = 10;
|
||||
assertThat(mController.getNotificationSummary(appRow, mContext).toString()).isEqualTo("On");
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.preference.Preference;
|
||||
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class BackupsEnabledPreferenceControllerTest {
|
||||
|
||||
private static final String KEY_BACKUPS_ENABLED = "backups_enabled";
|
||||
|
||||
private Context mContext;
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
|
||||
private BackupsEnabledPreferenceController mController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
mController = new BackupsEnabledPreferenceController(mContext);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAvailable() {
|
||||
when(mFeatureFactory.enterprisePrivacyFeatureProvider.areBackupsMandatory())
|
||||
.thenReturn(false);
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
|
||||
when(mFeatureFactory.enterprisePrivacyFeatureProvider.areBackupsMandatory())
|
||||
.thenReturn(true);
|
||||
assertThat(mController.isAvailable()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandlePreferenceTreeClick() {
|
||||
assertThat(mController.handlePreferenceTreeClick(new Preference(mContext, null, 0, 0)))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPreferenceKey() {
|
||||
assertThat(mController.getPreferenceKey()).isEqualTo(KEY_BACKUPS_ENABLED);
|
||||
}
|
||||
}
|
@@ -28,6 +28,7 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.ProxyInfo;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
@@ -36,7 +37,6 @@ import android.text.SpannableStringBuilder;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.wrapper.PackageManagerWrapper;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -72,7 +72,7 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
private @Mock PackageManagerWrapper mPackageManagerWrapper;
|
||||
private @Mock PackageManager mPackageManager;
|
||||
private @Mock UserManager mUserManager;
|
||||
private @Mock ConnectivityManagerWrapper mConnectivityManger;
|
||||
private @Mock ConnectivityManager mConnectivityManger;
|
||||
private Resources mResources;
|
||||
|
||||
private EnterprisePrivacyFeatureProvider mProvider;
|
||||
@@ -347,6 +347,15 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
.isEqualTo(3);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAreBackupsMandatory() {
|
||||
assertThat(mProvider.areBackupsMandatory()).isFalse();
|
||||
ComponentName transportComponent = new ComponentName("test", "test");
|
||||
when(mDevicePolicyManager.getMandatoryBackupTransport())
|
||||
.thenReturn(transportComponent);
|
||||
assertThat(mProvider.areBackupsMandatory()).isTrue();
|
||||
}
|
||||
|
||||
private void resetAndInitializePackageManagerWrapper() {
|
||||
reset(mPackageManagerWrapper);
|
||||
when(mPackageManagerWrapper.hasSystemFeature(PackageManager.FEATURE_DEVICE_ADMIN))
|
||||
|
@@ -98,7 +98,7 @@ public class EnterprisePrivacySettingsTest {
|
||||
|
||||
private void verifyPreferenceControllers(List<AbstractPreferenceController> controllers) {
|
||||
assertThat(controllers).isNotNull();
|
||||
assertThat(controllers.size()).isEqualTo(17);
|
||||
assertThat(controllers.size()).isEqualTo(18);
|
||||
int position = 0;
|
||||
assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class);
|
||||
assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class);
|
||||
@@ -125,6 +125,8 @@ public class EnterprisePrivacySettingsTest {
|
||||
CaCertsCurrentUserPreferenceController.class);
|
||||
assertThat(controllers.get(position++)).isInstanceOf(
|
||||
CaCertsManagedProfilePreferenceController.class);
|
||||
assertThat(controllers.get(position++)).isInstanceOf(
|
||||
BackupsEnabledPreferenceController.class);
|
||||
assertThat(controllers.get(position++)).isInstanceOf(
|
||||
PreferenceCategoryController.class);
|
||||
assertThat(controllers.get(position++)).isInstanceOf(
|
||||
|
@@ -17,8 +17,10 @@
|
||||
package com.android.settings.fuelgauge.batterytip.detectors;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -48,7 +50,8 @@ import java.util.List;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class HighUsageDetectorTest {
|
||||
private static final int UID = 123;
|
||||
private static final int UID_HIGH = 123;
|
||||
private static final int UID_ZERO = 345;
|
||||
private static final long SCREEN_ON_TIME_MS = DateUtils.HOUR_IN_MILLIS;
|
||||
private Context mContext;
|
||||
@Mock
|
||||
@@ -56,7 +59,9 @@ public class HighUsageDetectorTest {
|
||||
@Mock
|
||||
private BatteryUtils mBatteryUtils;
|
||||
@Mock
|
||||
private BatterySipper mBatterySipper;
|
||||
private BatterySipper mHighBatterySipper;
|
||||
@Mock
|
||||
private BatterySipper mZeroBatterySipper;
|
||||
@Mock
|
||||
private HighUsageDataParser mDataParser;
|
||||
|
||||
@@ -75,14 +80,25 @@ public class HighUsageDetectorTest {
|
||||
mHighUsageDetector.mBatteryUtils = mBatteryUtils;
|
||||
mHighUsageDetector.mDataParser = mDataParser;
|
||||
doNothing().when(mHighUsageDetector).parseBatteryData();
|
||||
doReturn(UID).when(mBatterySipper).getUid();
|
||||
doReturn(UID_HIGH).when(mHighBatterySipper).getUid();
|
||||
mHighBatterySipper.uidObj = mock(BatteryStats.Uid.class);
|
||||
mZeroBatterySipper.uidObj = mock(BatteryStats.Uid.class);
|
||||
doReturn(UID_ZERO).when(mZeroBatterySipper).getUid();
|
||||
mAppInfo = new AppInfo.Builder()
|
||||
.setUid(UID)
|
||||
.setUid(UID_HIGH)
|
||||
.setScreenOnTimeMs(SCREEN_ON_TIME_MS)
|
||||
.build();
|
||||
|
||||
doReturn(SCREEN_ON_TIME_MS).when(mBatteryUtils).getProcessTimeMs(
|
||||
BatteryUtils.StatusType.FOREGROUND, mHighBatterySipper.uidObj,
|
||||
BatteryStats.STATS_SINCE_CHARGED);
|
||||
doReturn(0L).when(mBatteryUtils).getProcessTimeMs(
|
||||
BatteryUtils.StatusType.FOREGROUND, mZeroBatterySipper.uidObj,
|
||||
BatteryStats.STATS_SINCE_CHARGED);
|
||||
|
||||
mUsageList = new ArrayList<>();
|
||||
mUsageList.add(mBatterySipper);
|
||||
mUsageList.add(mHighBatterySipper);
|
||||
when(mBatteryStatsHelper.getUsageList()).thenReturn(mUsageList);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -95,10 +111,16 @@ public class HighUsageDetectorTest {
|
||||
@Test
|
||||
public void testDetect_containsHighUsageApp_tipVisible() {
|
||||
doReturn(true).when(mDataParser).isDeviceHeavilyUsed();
|
||||
when(mBatteryStatsHelper.getUsageList()).thenReturn(mUsageList);
|
||||
doReturn(SCREEN_ON_TIME_MS).when(mBatteryUtils).getProcessTimeMs(
|
||||
BatteryUtils.StatusType.FOREGROUND, mBatterySipper.uidObj,
|
||||
BatteryStats.STATS_SINCE_CHARGED);
|
||||
|
||||
final HighUsageTip highUsageTip = (HighUsageTip) mHighUsageDetector.detect();
|
||||
assertThat(highUsageTip.isVisible()).isTrue();
|
||||
assertThat(highUsageTip.getHighUsageAppList()).containsExactly(mAppInfo);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDetect_containsHighUsageApp_removeZeroOne() {
|
||||
doReturn(true).when(mDataParser).isDeviceHeavilyUsed();
|
||||
mUsageList.add(mZeroBatterySipper);
|
||||
|
||||
final HighUsageTip highUsageTip = (HighUsageTip) mHighUsageDetector.detect();
|
||||
assertThat(highUsageTip.isVisible()).isTrue();
|
||||
|
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings;
|
||||
package com.android.settings.network;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@@ -40,7 +40,8 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.settings.ApnEditor.ApnData;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.network.ApnEditor.ApnData;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -52,7 +53,6 @@ import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class ApnEditorTest {
|
@@ -20,8 +20,9 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.net.ConnectivityManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -30,7 +31,7 @@ import org.junit.runner.RunWith;
|
||||
public final class VpnUtilsTest {
|
||||
@Test
|
||||
public void testIsAlwaysOnVpnSet() {
|
||||
final ConnectivityManagerWrapper cm = mock(ConnectivityManagerWrapper.class);
|
||||
final ConnectivityManager cm = mock(ConnectivityManager.class);
|
||||
when(cm.getAlwaysOnVpnPackageForUser(0)).thenReturn("com.example.vpn");
|
||||
assertThat(VpnUtils.isAlwaysOnVpnSet(cm, 0)).isTrue();
|
||||
|
||||
|
@@ -26,7 +26,6 @@ import android.net.wifi.WifiManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.widget.SwitchWidgetController;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -43,7 +42,7 @@ public class WifiEnablerTest {
|
||||
@Mock
|
||||
private WifiManager mWifiManager;
|
||||
@Mock
|
||||
private ConnectivityManagerWrapper mConnectivityManager;
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
|
||||
private WifiEnabler mEnabler;
|
||||
|
||||
|
@@ -51,7 +51,6 @@ import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.view.View;
|
||||
@@ -70,7 +69,6 @@ import com.android.settings.widget.ActionButtonPreference;
|
||||
import com.android.settings.widget.ActionButtonPreferenceTest;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settings.wifi.WifiDetailPreference;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
@@ -91,7 +89,6 @@ import java.net.Inet4Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@@ -119,8 +116,6 @@ public class WifiDetailPreferenceControllerTest {
|
||||
@Mock
|
||||
private ConnectivityManager mockConnectivityManager;
|
||||
@Mock
|
||||
private ConnectivityManagerWrapper mockConnectivityManagerWrapper;
|
||||
@Mock
|
||||
private Network mockNetwork;
|
||||
@Mock
|
||||
private NetworkInfo mockNetworkInfo;
|
||||
@@ -173,8 +168,6 @@ public class WifiDetailPreferenceControllerTest {
|
||||
private ArgumentCaptor<NetworkCallback> mCallbackCaptor;
|
||||
@Captor
|
||||
private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
|
||||
@Captor
|
||||
private ArgumentCaptor<Preference> mIpv6AddressCaptor;
|
||||
|
||||
private Context mContext;
|
||||
private Lifecycle mLifecycle;
|
||||
@@ -245,12 +238,9 @@ public class WifiDetailPreferenceControllerTest {
|
||||
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
|
||||
when(mockAccessPoint.getLevel()).thenReturn(LEVEL);
|
||||
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
|
||||
|
||||
when(mockConnectivityManagerWrapper.getConnectivityManager())
|
||||
.thenReturn(mockConnectivityManager);
|
||||
when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
|
||||
.thenReturn(mockNetworkInfo);
|
||||
doNothing().when(mockConnectivityManagerWrapper).registerNetworkCallback(
|
||||
doNothing().when(mockConnectivityManager).registerNetworkCallback(
|
||||
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
||||
mockButtonsPref = ActionButtonPreferenceTest.createMock();
|
||||
when(mockButtonsPref.setButton1OnClickListener(mForgetClickListener.capture()))
|
||||
@@ -281,7 +271,7 @@ public class WifiDetailPreferenceControllerTest {
|
||||
private WifiDetailPreferenceController newWifiDetailPreferenceController() {
|
||||
return new WifiDetailPreferenceController(
|
||||
mockAccessPoint,
|
||||
mockConnectivityManagerWrapper,
|
||||
mockConnectivityManager,
|
||||
mContext,
|
||||
mockFragment,
|
||||
null, // Handler
|
||||
@@ -362,7 +352,7 @@ public class WifiDetailPreferenceControllerTest {
|
||||
public void networkCallback_shouldBeRegisteredOnResume() {
|
||||
displayAndResume();
|
||||
|
||||
verify(mockConnectivityManagerWrapper, times(1)).registerNetworkCallback(
|
||||
verify(mockConnectivityManager, times(1)).registerNetworkCallback(
|
||||
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
||||
}
|
||||
|
||||
@@ -779,8 +769,6 @@ public class WifiDetailPreferenceControllerTest {
|
||||
|
||||
displayAndResume();
|
||||
|
||||
List<Preference> addrs = mIpv6AddressCaptor.getAllValues();
|
||||
|
||||
String expectedAddresses = String.join("\n",
|
||||
asString(Constants.IPV6_LINKLOCAL),
|
||||
asString(Constants.IPV6_GLOBAL1),
|
||||
@@ -826,7 +814,7 @@ public class WifiDetailPreferenceControllerTest {
|
||||
ArgumentCaptor<OnClickListener> captor = ArgumentCaptor.forClass(OnClickListener.class);
|
||||
verify(mockButtonsPref).setButton2OnClickListener(captor.capture());
|
||||
captor.getValue().onClick(null);
|
||||
verify(mockConnectivityManagerWrapper).startCaptivePortalApp(mockNetwork);
|
||||
verify(mockConnectivityManager).startCaptivePortalApp(mockNetwork);
|
||||
verify(mockMetricsFeatureProvider)
|
||||
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
||||
}
|
||||
|
Reference in New Issue
Block a user