Add the print service recommendation service
This service connects through the print manager to the print spooler:
PrintSpooler.AddPrintersActivity <-> PrintManager <-> PrintManagerService <-> UserState <-> RemotePrintServiceRecommendationService <-> PrintRecommendationService <-> PrintRecommendationServiceImpl
Hence there is a lot of mindless plumming.
The actual changes are only in the AddPrintersActivity which is extended
to show another list of services: The recommended services.
The PrintServiceRecommendationService is based on the experimenal print
service stubs provider. This provider was contributed the Android by
Mopria. As this services uses Android own network discovery service most
code from the experimental provider goes away. In fact the only logic
left over is the selections of mdns-txt fields to look at and the
printer vendor configuration.
This relies on the Android MDNS to get fixed (Bug: 27696905). This also
does not deal with how to update the recommendation service.
Bug: 24533249
Change-Id: I6edc6e25fc08a50d478b61c71bb8ea158b08624c
diff --git a/packages/PrintServiceRecommendationService/res/xml/vendorconfigs.xml b/packages/PrintServiceRecommendationService/res/xml/vendorconfigs.xml
new file mode 100644
index 0000000..fda2768
--- /dev/null
+++ b/packages/PrintServiceRecommendationService/res/xml/vendorconfigs.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ (c) Copyright 2016 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<vendors>
+ <vendor>
+ <name>@string/plugin_vendor_hp</name>
+ <package>com.hp.android.printservice</package>
+ <mdns-names>
+ <mdns-name>HP</mdns-name>
+ <mdns-name>Hewlett-Packard</mdns-name>
+ <mdns-name>Hewlett Packard</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_lexmark</name>
+ <package>com.lexmark.print.plugin</package>
+ <mdns-names>
+ <mdns-name>Lexmark</mdns-name>
+ <mdns-name>Lexmark International</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_brother</name>
+ <package>com.brother.printservice</package>
+ <mdns-names>
+ <mdns-name>Brother</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_canon</name>
+ <package>com.xerox.printservice</package>
+ <mdns-names>
+ <mdns-name>Canon</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_xerox</name>
+ <package>jp.co.canon.android.printservice.plugin</package>
+ <mdns-names>
+ <mdns-name>Xerox</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_samsung</name>
+ <package>com.sec.app.samsungprintservice</package>
+ <mdns-names>
+ <mdns-name>Samsung</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_epson</name>
+ <package>com.epson.mobilephone.android.epsonprintserviceplugin</package>
+ <mdns-names>
+ <mdns-name>Epson</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_konika_minolta</name>
+ <package>com.kmbt.printservice</package>
+ <mdns-names>
+ <mdns-name>kmkmkm</mdns-name>
+ <mdns-name>Konica Minolta</mdns-name>
+ <mdns-name>Minolta</mdns-name>
+ </mdns-names>
+ </vendor>
+
+ <vendor>
+ <name>@string/plugin_vendor_fuji</name>
+ <package>jp.co.fujixerox.prt.PrintUtil.PCL</package>
+ <mdns-names>
+ <mdns-name>FUJI XEROX</mdns-name>
+ </mdns-names>
+ </vendor>
+</vendors>