diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java index 6d443ee4044..ef7a86f4a77 100644 --- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java @@ -23,6 +23,7 @@ import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.os.Bundle; +import android.os.UserManager; import android.provider.DeviceConfig; import android.util.Log; import android.view.Menu; @@ -62,6 +63,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment interface TestDataFactory { CachedBluetoothDevice getDevice(String deviceAddress); LocalBluetoothManager getManager(Context context); + UserManager getUserManager(); } @VisibleForTesting @@ -74,6 +76,8 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment @VisibleForTesting CachedBluetoothDevice mCachedDevice; + private UserManager mUserManager; + public BluetoothDeviceDetailsFragment() { super(DISALLOW_CONFIG_BLUETOOTH); } @@ -96,6 +100,15 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment return mManager.getCachedDeviceManager().findDevice(remoteDevice); } + @VisibleForTesting + UserManager getUserManager() { + if (sTestDataFactory != null) { + return sTestDataFactory.getUserManager(); + } + + return getSystemService(UserManager.class); + } + public static BluetoothDeviceDetailsFragment newInstance(String deviceAddress) { Bundle args = new Bundle(1); args.putString(KEY_DEVICE_ADDRESS, deviceAddress); @@ -109,6 +122,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment mDeviceAddress = getArguments().getString(KEY_DEVICE_ADDRESS); mManager = getLocalBluetoothManager(context); mCachedDevice = getCachedDevice(mDeviceAddress); + mUserManager = getUserManager(); super.onAttach(context); if (mCachedDevice == null) { // Close this page if device is null with invalid device mac address @@ -160,9 +174,12 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - MenuItem item = menu.add(0, EDIT_DEVICE_NAME_ITEM_ID, 0, R.string.bluetooth_rename_button); - item.setIcon(com.android.internal.R.drawable.ic_mode_edit); - item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + if (!mUserManager.isGuestUser()) { + MenuItem item = menu.add(0, EDIT_DEVICE_NAME_ITEM_ID, 0, + R.string.bluetooth_rename_button); + item.setIcon(com.android.internal.R.drawable.ic_mode_edit); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } super.onCreateOptionsMenu(menu, inflater); } diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java index fac8b584f0a..53317a9800f 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.os.Bundle; +import android.os.UserManager; import android.view.MenuInflater; import android.view.MenuItem; @@ -52,9 +53,12 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; import org.robolectric.fakes.RoboMenu; +import org.robolectric.shadows.ShadowUserManager; @RunWith(RobolectricTestRunner.class) +@Config(shadows = ShadowUserManager.class) public class BluetoothDeviceDetailsFragmentTest { private static final String TEST_ADDRESS = "55:66:77:88:99:AA"; @@ -71,6 +75,8 @@ public class BluetoothDeviceDetailsFragmentTest { private LocalBluetoothManager mLocalManager; @Mock private PreferenceScreen mPreferenceScreen; + @Mock + private UserManager mUserManager; @Before public void setUp() { @@ -82,6 +88,7 @@ public class BluetoothDeviceDetailsFragmentTest { doReturn(mLocalManager).when(mFragment).getLocalBluetoothManager(any()); doReturn(mCachedDevice).when(mFragment).getCachedDevice(any()); doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen(); + doReturn(mUserManager).when(mFragment).getUserManager(); FragmentManager fragmentManager = mock(FragmentManager.class); when(mFragment.getFragmentManager()).thenReturn(fragmentManager);