Move "Build Number" slice to a different controller.

There are 2 build number tiles in settings: Android version -> Build
number and About phone -> build number.

The way we index breadcrumb for each slice is making some client
confused. So this change moves the slice capability from Androi
version>BuildNumber to About phone.

Fixes: 130652710
Test: reindex, robotest
Change-Id: I9054d0db124b706e7984cd3d19774bb604bd7fd3
This commit is contained in:
Fan Zhang
2019-04-17 16:25:34 -07:00
parent 7af19fcb86
commit 6dade8e430
4 changed files with 39 additions and 44 deletions

View File

@@ -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

View File

@@ -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();
}
}

View File

@@ -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());
}
}

View File

@@ -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);
}
}