RevisionInfo: Simplify comparator for sorting by number
"Spread out" each of the non-edit numbers so there is a gap in between each, and map the edit numbers into that gap. Change-Id: I24a0bff47c8a1107ee1f9e41b770392fb81e2d92
This commit is contained in:
@@ -254,27 +254,15 @@ public class ChangeInfo extends JavaScriptObject {
|
||||
public final native JsArray<WebLinkInfo> web_links() /*-{ return this.web_links; }-*/;
|
||||
|
||||
public static void sortRevisionInfoByNumber(JsArray<RevisionInfo> list) {
|
||||
final int parent_number = findEditParent(list);
|
||||
final int editParent = findEditParent(list);
|
||||
Collections.sort(Natives.asList(list), new Comparator<RevisionInfo>() {
|
||||
@Override
|
||||
public int compare(RevisionInfo a, RevisionInfo b) {
|
||||
int a_number = a._number();
|
||||
int b_number = b._number();
|
||||
if (a_number == 0) {
|
||||
if (b_number == parent_number + 1) {
|
||||
a_number = parent_number;
|
||||
} else {
|
||||
a_number = parent_number + 1;
|
||||
}
|
||||
}
|
||||
if (b_number == 0) {
|
||||
if (a_number == parent_number + 1) {
|
||||
b_number = parent_number;
|
||||
} else {
|
||||
b_number = parent_number + 1;
|
||||
}
|
||||
}
|
||||
return a_number - b_number;
|
||||
return num(a) - num(b);
|
||||
}
|
||||
|
||||
private int num(RevisionInfo r) {
|
||||
return !r.is_edit() ? 2 * (r._number() - 1) + 1 : 2 * editParent;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user