Sort devices list before output.

Makes copy of the transport list and sorts it by type and serial before
printing.

Bug: 70748433
Test: adb devices displays all connected devices
Change-Id: I917728a102972f2f38f2e370a0c6011c1eb883c7
This commit is contained in:
Artem Iglikov 2017-12-17 10:56:07 +00:00
parent 742fc190c8
commit 04398a9b23

View file

@ -952,10 +952,18 @@ static void append_transport(const atransport* t, std::string* result, bool long
}
std::string list_transports(bool long_listing) {
std::string result;
std::lock_guard<std::recursive_mutex> lock(transport_lock);
for (const auto& t : transport_list) {
auto sorted_transport_list = transport_list;
sorted_transport_list.sort([](atransport*& x, atransport*& y) {
if (x->type != y->type) {
return x->type < y->type;
}
return strcmp(x->serial, y->serial) < 0;
});
std::string result;
for (const auto& t : sorted_transport_list) {
append_transport(t, &result, long_listing);
}
return result;