Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15254095 authored by Svet Ganov's avatar Svet Ganov Committed by Android Git Automerger
Browse files

am 026e959d: am 0abcda59: am fdef09ec: Merge "Sometimes historical printers...

am 026e959d: am 0abcda59: am fdef09ec: Merge "Sometimes historical printers not properly ordered." into lmp-mr1-dev

* commit '026e959d':
  Sometimes historical printers not properly ordered.
parents 8508e691 026e959d
Loading
Loading
Loading
Loading
+7 −13
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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) {
@@ -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
@@ -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();