Support search for work profile settings page.
Test: manual, robotest Bug: 254192800 Change-Id: Id8ec76557fc170fcf727da1971cd90f494c7ecd4
This commit is contained in:
@@ -17,10 +17,13 @@ import static android.provider.Settings.Secure.MANAGED_PROFILE_CONTACT_REMOTE_SE
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.slices.SliceData;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
@@ -34,9 +37,14 @@ public class ContactSearchPreferenceController extends BasePreferenceController
|
||||
|
||||
public ContactSearchPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
// Set default managed profile for the current user, otherwise isAvailable will be false and
|
||||
// the setting won't be searchable.
|
||||
UserManager userManager = context.getSystemService(UserManager.class);
|
||||
mManagedUser = Utils.getManagedProfile(userManager);
|
||||
}
|
||||
|
||||
public void setManagedUser(UserHandle managedUser) {
|
||||
@VisibleForTesting
|
||||
void setManagedUser(UserHandle managedUser) {
|
||||
mManagedUser = managedUser;
|
||||
}
|
||||
|
||||
|
@@ -19,10 +19,14 @@ import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
|
||||
import java.util.Set;
|
||||
@@ -35,9 +39,14 @@ public class CrossProfileCalendarPreferenceController extends TogglePreferenceCo
|
||||
|
||||
public CrossProfileCalendarPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
// Set default managed profile for the current user, otherwise isAvailable will be false and
|
||||
// the setting won't be searchable.
|
||||
UserManager userManager = context.getSystemService(UserManager.class);
|
||||
mManagedUser = Utils.getManagedProfile(userManager);
|
||||
}
|
||||
|
||||
public void setManagedUser(UserHandle managedUser) {
|
||||
@VisibleForTesting
|
||||
void setManagedUser(UserHandle managedUser) {
|
||||
mManagedUser = managedUser;
|
||||
}
|
||||
|
||||
|
@@ -72,12 +72,10 @@ public class ManagedProfileSettings extends DashboardFragment {
|
||||
super.onAttach(context);
|
||||
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||
mManagedUser = getManagedUserFromArgument();
|
||||
|
||||
if (mManagedUser == null) {
|
||||
getActivity().finish();
|
||||
}
|
||||
use(WorkModePreferenceController.class).setManagedUser(mManagedUser);
|
||||
use(ContactSearchPreferenceController.class).setManagedUser(mManagedUser);
|
||||
use(CrossProfileCalendarPreferenceController.class).setManagedUser(mManagedUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -140,8 +138,11 @@ public class ManagedProfileSettings extends DashboardFragment {
|
||||
}
|
||||
@Override
|
||||
protected boolean isPageSearchEnabled(Context context) {
|
||||
return false;
|
||||
UserManager userManager = context.getSystemService(UserManager.class);
|
||||
UserHandle managedUser = Utils.getManagedProfile(userManager);
|
||||
return managedUser != null;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private class ManagedProfileBroadcastReceiver extends BroadcastReceiver {
|
||||
|
@@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.slices.SliceData;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
@@ -56,9 +57,13 @@ public class WorkModePreferenceController extends BasePreferenceController imple
|
||||
mIntentFilter = new IntentFilter();
|
||||
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
|
||||
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
|
||||
// Set default managed profile for the current user, otherwise isAvailable will be false and
|
||||
// the setting won't be searchable.
|
||||
mManagedUser = Utils.getManagedProfile(mUserManager);
|
||||
}
|
||||
|
||||
public void setManagedUser(UserHandle managedUser) {
|
||||
@VisibleForTesting
|
||||
void setManagedUser(UserHandle managedUser) {
|
||||
mManagedUser = managedUser;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user