Fix a bug where device index is not skipped correct.

When checking language/build fingerprint to skip reindex, language check
was comparing Locale object and String object, so they would never be
equal, so we accidentally reindex every time.

- Switched Objects.equal to TextUtils.equal, this catches the error at
compiler level.

Bug: 80065409
Test: compile/robotest
Change-Id: I2b3c68bb1c2fd876338f42321605567d7e64d64b
This commit is contained in:
Fan Zhang
2018-05-25 16:05:58 -07:00
parent 2357c1cd84
commit 548485336f
2 changed files with 12 additions and 8 deletions

View File

@@ -23,7 +23,6 @@ import static org.mockito.Mockito.when;
import android.app.Activity;
import android.app.job.JobScheduler;
import android.os.Build;
import android.provider.Settings;
import com.android.settings.testutils.FakeFeatureFactory;
@@ -113,15 +112,19 @@ public class DeviceIndexFeatureProviderTest {
@Test
public void updateIndex_enabled_provisioned_sameBuild_sameLang_shouldNotIndex() {
// Enabled
when(mProvider.isIndexingEnabled()).thenReturn(true);
// Provisioned
Settings.Global.putInt(mActivity.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
// Same build and same language
DeviceIndexFeatureProvider.setIndexState(mActivity);
JobScheduler jobScheduler = mock(JobScheduler.class);
when(mProvider.isIndexingEnabled()).thenReturn(true);
final JobScheduler jobScheduler = mock(JobScheduler.class);
when(mActivity.getSystemService(JobScheduler.class)).thenReturn(jobScheduler);
mProvider.updateIndex(mActivity, false);
verify(mProvider, never()).index(any(), any(), any(), any(), any());
verify(jobScheduler, never()).schedule(any());
}
}