Loading packages/PrintSpooler/src/com/android/printspooler/ui/FusedPrintersProvider.java +7 −13 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.IOException; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collections; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.Set; import java.util.Set; Loading Loading @@ -91,14 +92,14 @@ public final class FusedPrintersProvider extends Loader<List<PrinterInfo>> { mPersistenceManager.addPrinterAndWritePrinterHistory(printer); mPersistenceManager.addPrinterAndWritePrinterHistory(printer); } } private void computeAndDeliverResult(ArrayMap<PrinterId, PrinterInfo> discoveredPrinters, private void computeAndDeliverResult(Map<PrinterId, PrinterInfo> discoveredPrinters, ArrayMap<PrinterId, PrinterInfo> favoritePrinters) { List<PrinterInfo> favoritePrinters) { List<PrinterInfo> printers = new ArrayList<>(); List<PrinterInfo> printers = new ArrayList<>(); // Add the updated favorite printers. // Add the updated favorite printers. final int favoritePrinterCount = favoritePrinters.size(); final int favoritePrinterCount = favoritePrinters.size(); for (int i = 0; i < favoritePrinterCount; i++) { for (int i = 0; i < favoritePrinterCount; i++) { PrinterInfo favoritePrinter = favoritePrinters.valueAt(i); PrinterInfo favoritePrinter = favoritePrinters.get(i); PrinterInfo updatedPrinter = discoveredPrinters.remove( PrinterInfo updatedPrinter = discoveredPrinters.remove( favoritePrinter.getId()); favoritePrinter.getId()); if (updatedPrinter != null) { if (updatedPrinter != null) { Loading Loading @@ -215,21 +216,14 @@ public final class FusedPrintersProvider extends Loader<List<PrinterInfo>> { // printer to use its current name instead of the historical one. // printer to use its current name instead of the historical one. mPersistenceManager.updatePrintersHistoricalNamesIfNeeded(printers); mPersistenceManager.updatePrintersHistoricalNamesIfNeeded(printers); ArrayMap<PrinterId, PrinterInfo> printersMap = new ArrayMap<>(); Map<PrinterId, PrinterInfo> printersMap = new LinkedHashMap<>(); final int printerCount = printers.size(); final int printerCount = printers.size(); for (int i = 0; i < printerCount; i++) { for (int i = 0; i < printerCount; i++) { PrinterInfo printer = printers.get(i); PrinterInfo printer = printers.get(i); printersMap.put(printer.getId(), printer); printersMap.put(printer.getId(), printer); } } ArrayMap<PrinterId, PrinterInfo> favoritePrintersMap = new ArrayMap<>(); computeAndDeliverResult(printersMap, favoritePrinters); final int favoritePrinterCount = favoritePrinters.size(); for (int i = 0; i < favoritePrinterCount; i++) { PrinterInfo favoritePrinter = favoritePrinters.get(i); favoritePrintersMap.put(favoritePrinter.getId(), favoritePrinter); } computeAndDeliverResult(printersMap, favoritePrintersMap); } } @Override @Override Loading Loading @@ -544,7 +538,7 @@ public final class FusedPrintersProvider extends Loader<List<PrinterInfo>> { mReadHistoryCompleted = true; mReadHistoryCompleted = true; // Deliver the printers. // Deliver the printers. updatePrinters(mDiscoverySession.getPrinters(), mHistoricalPrinters); updatePrinters(mDiscoverySession.getPrinters(), mFavoritePrinters); // Loading the available printers if needed. // Loading the available printers if needed. loadInternal(); loadInternal(); Loading Loading
packages/PrintSpooler/src/com/android/printspooler/ui/FusedPrintersProvider.java +7 −13 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.IOException; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collections; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.Set; import java.util.Set; Loading Loading @@ -91,14 +92,14 @@ public final class FusedPrintersProvider extends Loader<List<PrinterInfo>> { mPersistenceManager.addPrinterAndWritePrinterHistory(printer); mPersistenceManager.addPrinterAndWritePrinterHistory(printer); } } private void computeAndDeliverResult(ArrayMap<PrinterId, PrinterInfo> discoveredPrinters, private void computeAndDeliverResult(Map<PrinterId, PrinterInfo> discoveredPrinters, ArrayMap<PrinterId, PrinterInfo> favoritePrinters) { List<PrinterInfo> favoritePrinters) { List<PrinterInfo> printers = new ArrayList<>(); List<PrinterInfo> printers = new ArrayList<>(); // Add the updated favorite printers. // Add the updated favorite printers. final int favoritePrinterCount = favoritePrinters.size(); final int favoritePrinterCount = favoritePrinters.size(); for (int i = 0; i < favoritePrinterCount; i++) { for (int i = 0; i < favoritePrinterCount; i++) { PrinterInfo favoritePrinter = favoritePrinters.valueAt(i); PrinterInfo favoritePrinter = favoritePrinters.get(i); PrinterInfo updatedPrinter = discoveredPrinters.remove( PrinterInfo updatedPrinter = discoveredPrinters.remove( favoritePrinter.getId()); favoritePrinter.getId()); if (updatedPrinter != null) { if (updatedPrinter != null) { Loading Loading @@ -215,21 +216,14 @@ public final class FusedPrintersProvider extends Loader<List<PrinterInfo>> { // printer to use its current name instead of the historical one. // printer to use its current name instead of the historical one. mPersistenceManager.updatePrintersHistoricalNamesIfNeeded(printers); mPersistenceManager.updatePrintersHistoricalNamesIfNeeded(printers); ArrayMap<PrinterId, PrinterInfo> printersMap = new ArrayMap<>(); Map<PrinterId, PrinterInfo> printersMap = new LinkedHashMap<>(); final int printerCount = printers.size(); final int printerCount = printers.size(); for (int i = 0; i < printerCount; i++) { for (int i = 0; i < printerCount; i++) { PrinterInfo printer = printers.get(i); PrinterInfo printer = printers.get(i); printersMap.put(printer.getId(), printer); printersMap.put(printer.getId(), printer); } } ArrayMap<PrinterId, PrinterInfo> favoritePrintersMap = new ArrayMap<>(); computeAndDeliverResult(printersMap, favoritePrinters); final int favoritePrinterCount = favoritePrinters.size(); for (int i = 0; i < favoritePrinterCount; i++) { PrinterInfo favoritePrinter = favoritePrinters.get(i); favoritePrintersMap.put(favoritePrinter.getId(), favoritePrinter); } computeAndDeliverResult(printersMap, favoritePrintersMap); } } @Override @Override Loading Loading @@ -544,7 +538,7 @@ public final class FusedPrintersProvider extends Loader<List<PrinterInfo>> { mReadHistoryCompleted = true; mReadHistoryCompleted = true; // Deliver the printers. // Deliver the printers. updatePrinters(mDiscoverySession.getPrinters(), mHistoricalPrinters); updatePrinters(mDiscoverySession.getPrinters(), mFavoritePrinters); // Loading the available printers if needed. // Loading the available printers if needed. loadInternal(); loadInternal(); Loading