diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java index 855a988a178..dd522bfa1d2 100644 --- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java @@ -38,6 +38,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockSettingsHelper; +import com.android.settings.slices.Sliceable; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -91,7 +92,27 @@ public class BuildNumberPreferenceController extends BasePreferenceController im @Override public int getAvailabilityStatus() { - return AVAILABLE_UNSEARCHABLE; + return AVAILABLE; + } + + @Override + public boolean isSliceable() { + return true; + } + + @Override + public boolean isCopyableSlice() { + return true; + } + + @Override + public boolean useDynamicSliceSummary() { + return true; + } + + @Override + public void copy() { + Sliceable.setCopyContent(mContext, getSummary(), mContext.getText(R.string.build_number)); } @Override diff --git a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java index c568f073c7e..53f5ff9aa9d 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java @@ -16,16 +16,10 @@ package com.android.settings.deviceinfo.firmwareversion; -import static android.content.Context.CLIPBOARD_SERVICE; - -import android.content.ClipData; -import android.content.ClipboardManager; import android.content.Context; import android.os.Build; import android.text.BidiFormatter; -import android.widget.Toast; -import com.android.settings.R; import com.android.settings.core.BasePreferenceController; public class SimpleBuildNumberPreferenceController extends BasePreferenceController { @@ -37,38 +31,11 @@ public class SimpleBuildNumberPreferenceController extends BasePreferenceControl @Override public int getAvailabilityStatus() { - return AVAILABLE; + return AVAILABLE_UNSEARCHABLE; } @Override public CharSequence getSummary() { return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY); } - - @Override - public boolean isSliceable() { - return true; - } - - @Override - public boolean isCopyableSlice() { - return true; - } - - @Override - public boolean useDynamicSliceSummary() { - return true; - } - - @Override - public void copy() { - final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( - CLIPBOARD_SERVICE); - final ClipData clip = ClipData.newPlainText("text", getSummary()); - clipboard.setPrimaryClip(clip); - - final String toast = mContext.getString(R.string.copyable_slice_toast, - mContext.getText(R.string.build_number)); - Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); - } } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java index 18ddd8a6884..4543114432e 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java @@ -16,6 +16,8 @@ package com.android.settings.deviceinfo; +import static android.content.Context.CLIPBOARD_SERVICE; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -24,6 +26,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import android.app.Activity; +import android.content.ClipboardManager; import android.content.Context; import android.os.Process; import android.os.UserManager; @@ -190,4 +193,14 @@ public class BuildNumberPreferenceControllerTest { assertThat(activityResultHandled).isTrue(); assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue(); } + + @Test + public void copy_shouldCopyBuildNumberToClipboard() { + mController.copy(); + + final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( + CLIPBOARD_SERVICE); + final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText(); + assertThat(data.toString()).isEqualTo(mController.getSummary()); + } } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java index 3784f086da9..3f050db6ab4 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java @@ -16,11 +16,10 @@ package com.android.settings.deviceinfo.firmwareversion; -import static android.content.Context.CLIPBOARD_SERVICE; +import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; import static com.google.common.truth.Truth.assertThat; -import android.content.ClipboardManager; import android.content.Context; import org.junit.Before; @@ -45,12 +44,7 @@ public class SimpleBuildNumberPreferenceControllerTest { } @Test - public void copy_shouldCopyBuildNumberToClipboard() { - mController.copy(); - - final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( - CLIPBOARD_SERVICE); - final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText(); - assertThat(data.toString()).isEqualTo(mController.getSummary()); + public void getAvailabilityStatus_unsearchable() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); } }