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

Commit 0ad40283 authored by Svetoslav's avatar Svetoslav
Browse files

Offer to enable a print service after it is installed (Settings).

The user has to explicitly enable a print service from the settings UI
before using it. Usually, users very rarely if at all interact with print
services, therefore all print service management task are performed from
the print settings. We also have to get user consent warning that the
user's data is about to be given to a third-party app. We now post a
notification allowing the user to go directly to the settings screen to
turn the service on.

bug:10447510

Change-Id: Ibfb5368a09b1e012dd6dd0f3d33a5ad10e5ee00e
parent d8f4eb50
Loading
Loading
Loading
Loading

res/drawable-hdpi/ic_print.png

deleted100644 → 0
−1.03 KiB
Loading image diff...

res/drawable-mdpi/ic_print.png

deleted100644 → 0
−799 B
Loading image diff...

res/drawable-xhdpi/ic_print.png

deleted100644 → 0
−1.11 KiB
Loading image diff...
+1 −1
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@
    <header
        android:id="@+id/print_settings"
        android:fragment="com.android.settings.print.PrintSettingsFragment"
        android:icon="@drawable/ic_print"
        android:icon="@*android:drawable/ic_print"
        android:title="@string/print_settings" />

    <!-- Development -->
+18 −0
Original line number Diff line number Diff line
@@ -65,6 +65,9 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
    static final String EXTRA_ADD_PRINTERS_COMPONENT_NAME = "add_printers_component_name";
    static final String EXTRA_SERVICE_COMPONENT_NAME = "service_component_name";

    private static final String EXTRA_PRINT_SERVICE_COMPONENT_NAME =
            "EXTRA_PRINT_SERVICE_COMPONENT_NAME";

    private final PackageMonitor mSettingsPackageMonitor = new SettingsPackageMonitor();

    private final Handler mHandler = new Handler() {
@@ -97,6 +100,7 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
        mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
        mSettingsContentObserver.register(getContentResolver());
        updateServicesPreferences();
        startPrintServiceSettingsIfNeeded();
        setHasOptionsMenu(true);
    }

@@ -213,6 +217,20 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
        }
    }

    private void startPrintServiceSettingsIfNeeded() {
        if (getArguments() == null) {
            return;
        }
        String componentName = getArguments().getString(EXTRA_PRINT_SERVICE_COMPONENT_NAME);
        if (componentName != null) {
            getArguments().remove(EXTRA_PRINT_SERVICE_COMPONENT_NAME);
            Preference prereference = findPreference(componentName);
            if (prereference != null) {
                prereference.performClick(getPreferenceScreen());
            }
        }
    }

    private class SettingsPackageMonitor extends PackageMonitor {
        @Override
        public void onPackageAdded(String packageName, int uid) {