package com.ov3rk1ll.kinocast.utils; import android.util.SparseIntArray; import com.ov3rk1ll.kinocast.api.mirror.Host; import java.util.Comparator; public class WeightedHostComparator implements Comparator<Host> { private SparseIntArray weightedList; public WeightedHostComparator(SparseIntArray weightedList){ this.weightedList = weightedList; } @Override public int compare(Host o1, Host o2) { if(weightedList == null) return compate(o1.getMirror(), o2.getMirror()); int w1 = weightedList.get(o1.getId(), o1.getId()); int w2 = weightedList.get(o2.getId(), o2.getId()); if(w1 == w2){ // Same host, sort by mirror compate(o1.getMirror(), o2.getMirror()); } return compate(w1, w2); } private int compate(int x, int y){ return (x < y) ? -1 : ((x == y) ? 0 : 1); } }