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.content.Context;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.slices.SliceData;
|
import com.android.settings.slices.SliceData;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
@@ -34,9 +37,14 @@ public class ContactSearchPreferenceController extends BasePreferenceController
|
|||||||
|
|
||||||
public ContactSearchPreferenceController(Context context, String key) {
|
public ContactSearchPreferenceController(Context context, String key) {
|
||||||
super(context, 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;
|
mManagedUser = managedUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -19,10 +19,14 @@ import android.app.admin.DevicePolicyManager;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.TogglePreferenceController;
|
import com.android.settings.core.TogglePreferenceController;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -35,9 +39,14 @@ public class CrossProfileCalendarPreferenceController extends TogglePreferenceCo
|
|||||||
|
|
||||||
public CrossProfileCalendarPreferenceController(Context context, String key) {
|
public CrossProfileCalendarPreferenceController(Context context, String key) {
|
||||||
super(context, 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;
|
mManagedUser = managedUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -72,12 +72,10 @@ public class ManagedProfileSettings extends DashboardFragment {
|
|||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||||
mManagedUser = getManagedUserFromArgument();
|
mManagedUser = getManagedUserFromArgument();
|
||||||
|
|
||||||
if (mManagedUser == null) {
|
if (mManagedUser == null) {
|
||||||
getActivity().finish();
|
getActivity().finish();
|
||||||
}
|
}
|
||||||
use(WorkModePreferenceController.class).setManagedUser(mManagedUser);
|
|
||||||
use(ContactSearchPreferenceController.class).setManagedUser(mManagedUser);
|
|
||||||
use(CrossProfileCalendarPreferenceController.class).setManagedUser(mManagedUser);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -140,8 +138,11 @@ public class ManagedProfileSettings extends DashboardFragment {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected boolean isPageSearchEnabled(Context context) {
|
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 {
|
private class ManagedProfileBroadcastReceiver extends BroadcastReceiver {
|
||||||
|
@@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import androidx.preference.TwoStatePreference;
|
import androidx.preference.TwoStatePreference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.slices.SliceData;
|
import com.android.settings.slices.SliceData;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
@@ -56,9 +57,13 @@ public class WorkModePreferenceController extends BasePreferenceController imple
|
|||||||
mIntentFilter = new IntentFilter();
|
mIntentFilter = new IntentFilter();
|
||||||
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
|
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
|
||||||
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
|
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;
|
mManagedUser = managedUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user