Merge "Import translations. DO NOT MERGE" into pi-dev
diff --git a/res/layout/video_preference.xml b/res/layout/video_preference.xml
index b71a1b5..17b867f 100644
--- a/res/layout/video_preference.xml
+++ b/res/layout/video_preference.xml
@@ -23,7 +23,8 @@
     android:clipToPadding="false"
     android:gravity="center"
     android:minHeight="?android:attr/listPreferredItemHeightSmall"
-    android:orientation="horizontal">
+    android:orientation="horizontal"
+    android:importantForAccessibility="noHideDescendants">
 
     <com.android.settings.widget.AspectRatioFrameLayout
         android:id="@+id/video_container"
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
index 05b5a8a..e422bdc 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
@@ -46,7 +46,7 @@
     @VisibleForTesting
     Preference mPreference;
     private LocalBluetoothManager mLocalManager;
-    private LocalBluetoothAdapter mLocalAdapter;
+    protected LocalBluetoothAdapter mLocalAdapter;
 
     /**
      * Constructor exclusively used for Slice.
@@ -77,8 +77,10 @@
 
     @Override
     public void onStart() {
-        mContext.registerReceiver(mReceiver,
-                new IntentFilter(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED));
+        final IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
+        intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        mContext.registerReceiver(mReceiver, intentFilter);
     }
 
     @Override
@@ -93,7 +95,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        updateDeviceName(preference);
+        updatePreferenceState(preference);
     }
 
     @Override
@@ -129,7 +131,7 @@
      *
      * @param preference to set the summary for
      */
-    protected void updateDeviceName(final Preference preference) {
+    protected void updatePreferenceState(final Preference preference) {
         preference.setSelectable(false);
         preference.setSummary(getSummary());
     }
@@ -150,8 +152,10 @@
 
             if (TextUtils.equals(action, BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED)) {
                 if (mPreference != null && mLocalAdapter != null && mLocalAdapter.isEnabled()) {
-                    updateDeviceName(mPreference);
+                    updatePreferenceState(mPreference);
                 }
+            } else if (TextUtils.equals(action, BluetoothAdapter.ACTION_STATE_CHANGED)) {
+                updatePreferenceState(mPreference);
             }
         }
     };
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
index 21f0487..d6221ef 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
@@ -58,8 +58,9 @@
     }
 
     @Override
-    protected void updateDeviceName(final Preference preference) {
+    protected void updatePreferenceState(final Preference preference) {
         preference.setSummary(getSummary());
+        preference.setVisible(mLocalAdapter != null && mLocalAdapter.isEnabled());
     }
 
     @Override
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
index 1d37883..1c61553 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
@@ -70,7 +70,7 @@
 
     @Test
     public void testUpdateDeviceName_showSummaryWithDeviceName() {
-        mController.updateDeviceName(mPreference);
+        mController.updatePreferenceState(mPreference);
 
         final CharSequence summary = mPreference.getSummary();
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
index 65eae2c..607842a 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
@@ -71,11 +71,13 @@
                 PREF_KEY));
         mController.setFragment(mFragment);
         doReturn(DEVICE_NAME).when(mController).getDeviceName();
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        mController.displayPreference(mScreen);
     }
 
     @Test
     public void testUpdateDeviceName_showSummaryWithDeviceName() {
-        mController.updateDeviceName(mPreference);
+        mController.updatePreferenceState(mPreference);
 
         final CharSequence summary = mPreference.getSummary();
 
@@ -94,10 +96,24 @@
 
     @Test
     public void displayPreference_shouldFindPreferenceWithMatchingPrefKey() {
-        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
-
-        mController.displayPreference(mScreen);
-
         assertThat(mController.mPreference.getKey()).isEqualTo(mController.getPreferenceKey());
     }
+
+    @Test
+    public void updatePreferenceState_whenBTisOnPreferenceShouldBeVisible() {
+        when(mLocalAdapter.isEnabled()).thenReturn(true);
+
+        mController.updatePreferenceState(mPreference);
+
+        assertThat(mPreference.isVisible()).isTrue();
+    }
+
+    @Test
+    public void updatePreferenceState_whenBTisOffPreferenceShouldBeHide() {
+        when(mLocalAdapter.isEnabled()).thenReturn(false);
+
+        mController.updatePreferenceState(mPreference);
+
+        assertThat(mPreference.isVisible()).isFalse();
+    }
 }