Loading core/java/android/print/IPrintSpooler.aidl +7 −1 Original line number Diff line number Diff line Loading @@ -98,5 +98,11 @@ oneway interface IPrintSpooler { void writePrintJobData(in ParcelFileDescriptor fd, in PrintJobId printJobId); void setClient(IPrintSpoolerClient client); void setPrintJobCancelling(in PrintJobId printJobId, boolean cancelling); void removeApprovedPrintService(in ComponentName serviceToRemove); /** * Remove all approved print services that are not in the given set. * * @param servicesToKeep The names of the services to keep */ void pruneApprovedPrintServices(in List<ComponentName> servicesToKeep); } core/java/android/printservice/PrintServiceInfo.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.printservice; import android.annotation.NonNull; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; Loading Loading @@ -93,6 +94,16 @@ public final class PrintServiceInfo implements Parcelable { mAdvancedPrintOptionsActivityName = advancedPrintOptionsActivityName; } /** * Return the component name for this print service. * * @return The component name for this print service. */ public @NonNull ComponentName getComponentName() { return new ComponentName(mResolveInfo.serviceInfo.packageName, mResolveInfo.serviceInfo.name); } /** * Creates a new instance. * Loading core/java/android/provider/Settings.java +8 −5 Original line number Diff line number Diff line Loading @@ -4974,19 +4974,22 @@ public final class Settings { /** * List of the enabled print services. * * N and beyond uses {@link #DISABLED_PRINT_SERVICES}. But this might be used in an upgrade * from pre-N. * * @hide */ public static final String ENABLED_PRINT_SERVICES = "enabled_print_services"; /** * List of the system print services we enabled on first boot. On * first boot we enable all system, i.e. bundled print services, * once, so they work out-of-the-box. * List of the disabled print services. * * @hide */ public static final String ENABLED_ON_FIRST_BOOT_SYSTEM_PRINT_SERVICES = "enabled_on_first_boot_system_print_services"; public static final String DISABLED_PRINT_SERVICES = "disabled_print_services"; /** * Setting to always use the default text-to-speech settings regardless Loading packages/PrintSpooler/src/com/android/printspooler/model/PrintSpoolerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -1416,9 +1416,9 @@ public final class PrintSpoolerService extends Service { } @Override public void removeApprovedPrintService(ComponentName serviceToRemove) { public void pruneApprovedPrintServices(List<ComponentName> servicesToKeep) { (new ApprovedPrintServices(PrintSpoolerService.this)) .removeApprovedService(serviceToRemove); .pruneApprovedServices(servicesToKeep); } @Override Loading packages/PrintSpooler/src/com/android/printspooler/ui/SelectPrinterActivity.java +30 −11 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import android.widget.ListView; import android.widget.SearchView; import android.widget.TextView; import com.android.internal.content.PackageMonitor; import com.android.printspooler.R; import java.util.ArrayList; Loading Loading @@ -101,7 +102,8 @@ public final class SelectPrinterActivity extends Activity { private AnnounceFilterResult mAnnounceFilterResult; /** Monitor if new print services get enabled or disabled */ private ContentObserver mPrintServicesObserver; private ContentObserver mPrintServicesDisabledObserver; private PackageMonitor mPackageObserver; @Override public void onCreate(Bundle savedInstanceState) { Loading Loading @@ -245,28 +247,45 @@ public final class SelectPrinterActivity extends Activity { * Register listener for changes to the enabled print services. */ private void registerServiceMonitor() { mPrintServicesObserver = new ContentObserver(new Handler()) { // Listen for services getting disabled mPrintServicesDisabledObserver = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { onPrintServicesUpdate(); } }; // Listen for services getting installed or uninstalled mPackageObserver = new PackageMonitor() { @Override public void onPackageModified(String packageName) { onPrintServicesUpdate(); } @Override public void onPackageRemoved(String packageName, int uid) { onPrintServicesUpdate(); } @Override public void onPackageAdded(String packageName, int uid) { onPrintServicesUpdate(); } }; getContentResolver().registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.ENABLED_PRINT_SERVICES), false, mPrintServicesObserver); Settings.Secure.getUriFor(Settings.Secure.DISABLED_PRINT_SERVICES), false, mPrintServicesDisabledObserver); mPackageObserver.register(this, getMainLooper(), false); } /** * Unregister {@link #mPrintServicesObserver listener for changes to the enabled print services} * or nothing if the listener is not registered. * Unregister the listeners for changes to the enabled print services. */ private void unregisterServiceMonitorIfNeeded() { if (mPrintServicesObserver != null) { getContentResolver().unregisterContentObserver(mPrintServicesObserver); mPrintServicesObserver = null; } getContentResolver().unregisterContentObserver(mPrintServicesDisabledObserver); mPackageObserver.unregister(); } @Override Loading Loading
core/java/android/print/IPrintSpooler.aidl +7 −1 Original line number Diff line number Diff line Loading @@ -98,5 +98,11 @@ oneway interface IPrintSpooler { void writePrintJobData(in ParcelFileDescriptor fd, in PrintJobId printJobId); void setClient(IPrintSpoolerClient client); void setPrintJobCancelling(in PrintJobId printJobId, boolean cancelling); void removeApprovedPrintService(in ComponentName serviceToRemove); /** * Remove all approved print services that are not in the given set. * * @param servicesToKeep The names of the services to keep */ void pruneApprovedPrintServices(in List<ComponentName> servicesToKeep); }
core/java/android/printservice/PrintServiceInfo.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.printservice; import android.annotation.NonNull; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; Loading Loading @@ -93,6 +94,16 @@ public final class PrintServiceInfo implements Parcelable { mAdvancedPrintOptionsActivityName = advancedPrintOptionsActivityName; } /** * Return the component name for this print service. * * @return The component name for this print service. */ public @NonNull ComponentName getComponentName() { return new ComponentName(mResolveInfo.serviceInfo.packageName, mResolveInfo.serviceInfo.name); } /** * Creates a new instance. * Loading
core/java/android/provider/Settings.java +8 −5 Original line number Diff line number Diff line Loading @@ -4974,19 +4974,22 @@ public final class Settings { /** * List of the enabled print services. * * N and beyond uses {@link #DISABLED_PRINT_SERVICES}. But this might be used in an upgrade * from pre-N. * * @hide */ public static final String ENABLED_PRINT_SERVICES = "enabled_print_services"; /** * List of the system print services we enabled on first boot. On * first boot we enable all system, i.e. bundled print services, * once, so they work out-of-the-box. * List of the disabled print services. * * @hide */ public static final String ENABLED_ON_FIRST_BOOT_SYSTEM_PRINT_SERVICES = "enabled_on_first_boot_system_print_services"; public static final String DISABLED_PRINT_SERVICES = "disabled_print_services"; /** * Setting to always use the default text-to-speech settings regardless Loading
packages/PrintSpooler/src/com/android/printspooler/model/PrintSpoolerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -1416,9 +1416,9 @@ public final class PrintSpoolerService extends Service { } @Override public void removeApprovedPrintService(ComponentName serviceToRemove) { public void pruneApprovedPrintServices(List<ComponentName> servicesToKeep) { (new ApprovedPrintServices(PrintSpoolerService.this)) .removeApprovedService(serviceToRemove); .pruneApprovedServices(servicesToKeep); } @Override Loading
packages/PrintSpooler/src/com/android/printspooler/ui/SelectPrinterActivity.java +30 −11 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import android.widget.ListView; import android.widget.SearchView; import android.widget.TextView; import com.android.internal.content.PackageMonitor; import com.android.printspooler.R; import java.util.ArrayList; Loading Loading @@ -101,7 +102,8 @@ public final class SelectPrinterActivity extends Activity { private AnnounceFilterResult mAnnounceFilterResult; /** Monitor if new print services get enabled or disabled */ private ContentObserver mPrintServicesObserver; private ContentObserver mPrintServicesDisabledObserver; private PackageMonitor mPackageObserver; @Override public void onCreate(Bundle savedInstanceState) { Loading Loading @@ -245,28 +247,45 @@ public final class SelectPrinterActivity extends Activity { * Register listener for changes to the enabled print services. */ private void registerServiceMonitor() { mPrintServicesObserver = new ContentObserver(new Handler()) { // Listen for services getting disabled mPrintServicesDisabledObserver = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { onPrintServicesUpdate(); } }; // Listen for services getting installed or uninstalled mPackageObserver = new PackageMonitor() { @Override public void onPackageModified(String packageName) { onPrintServicesUpdate(); } @Override public void onPackageRemoved(String packageName, int uid) { onPrintServicesUpdate(); } @Override public void onPackageAdded(String packageName, int uid) { onPrintServicesUpdate(); } }; getContentResolver().registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.ENABLED_PRINT_SERVICES), false, mPrintServicesObserver); Settings.Secure.getUriFor(Settings.Secure.DISABLED_PRINT_SERVICES), false, mPrintServicesDisabledObserver); mPackageObserver.register(this, getMainLooper(), false); } /** * Unregister {@link #mPrintServicesObserver listener for changes to the enabled print services} * or nothing if the listener is not registered. * Unregister the listeners for changes to the enabled print services. */ private void unregisterServiceMonitorIfNeeded() { if (mPrintServicesObserver != null) { getContentResolver().unregisterContentObserver(mPrintServicesObserver); mPrintServicesObserver = null; } getContentResolver().unregisterContentObserver(mPrintServicesDisabledObserver); mPackageObserver.unregister(); } @Override Loading