Merge "Modify Comparator in ZonePicker" am: 3c03207f9f

am: cd2e1c1535

Change-Id: I97ec8751980a29d953f1a49b36cc78b66461e3e7
This commit is contained in:
tiansiming
2017-11-13 19:52:12 +00:00
committed by android-build-merger
2 changed files with 137 additions and 2 deletions

View File

@@ -22,6 +22,7 @@ import android.app.AlarmManager;
import android.app.ListFragment;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -38,6 +39,7 @@ import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settingslib.datetime.ZoneGetter;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
@@ -257,15 +259,21 @@ public class ZonePicker extends ListFragment implements Instrumentable {
mVisibilityLoggerMixin.onPause();
}
private static class MyComparator implements Comparator<Map<?, ?>> {
@VisibleForTesting
static class MyComparator implements Comparator<Map<?, ?>> {
private final Collator mCollator;
private String mSortingKey;
private boolean mSortedByName;
public MyComparator(String sortingKey) {
mCollator = Collator.getInstance();
mSortingKey = sortingKey;
mSortedByName = ZoneGetter.KEY_DISPLAY_LABEL.equals(sortingKey);
}
public void setSortingKey(String sortingKey) {
mSortingKey = sortingKey;
mSortedByName = ZoneGetter.KEY_DISPLAY_LABEL.equals(sortingKey);
}
public int compare(Map<?, ?> map1, Map<?, ?> map2) {
@@ -282,7 +290,11 @@ public class ZonePicker extends ListFragment implements Instrumentable {
return -1;
}
return ((Comparable) value1).compareTo(value2);
if (mSortedByName) {
return mCollator.compare(value1, value2);
} else {
return ((Comparable) value1).compareTo(value2);
}
}
private boolean isComparable(Object value) {