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

Commit c0a51758 authored by Svetoslav's avatar Svetoslav Committed by Android (Google) Code Review
Browse files

Merge "Adding search for dynamic print settings."

parents c9d4c6ae d78d44d3
Loading
Loading
Loading
Loading
+53 −8
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.print.PrintJobInfo;
import android.print.PrintManager;
import android.print.PrintManager.PrintJobStateChangeListener;
import android.printservice.PrintServiceInfo;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.text.TextUtils;
import android.text.format.DateUtils;
@@ -49,6 +50,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.Switch;
import android.widget.TextView;

@@ -56,6 +58,9 @@ import com.android.internal.content.PackageMonitor;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;;
import com.android.settings.search.SearchIndexableRaw;

import java.text.DateFormat;
import java.util.ArrayList;
@@ -64,7 +69,8 @@ import java.util.List;
/**
 * Fragment with the top level print settings.
 */
public class PrintSettingsFragment extends SettingsPreferenceFragment implements DialogCreatable {
public class PrintSettingsFragment extends SettingsPreferenceFragment
        implements DialogCreatable, Indexable {

    static final char ENABLED_PRINT_SERVICES_SEPARATOR = ':';

@@ -544,4 +550,43 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
            return false;
        }
    }

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
        @Override
        public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
            List<SearchIndexableRaw> indexables = new ArrayList<SearchIndexableRaw>();

            PackageManager packageManager = context.getPackageManager();
            PrintManager printManager = (PrintManager) context.getSystemService(
                    Context.PRINT_SERVICE);

            String screenTitle = context.getResources().getString(R.string.print_settings_title);

            // Indexing all services, reagardles if enabled.
            List<PrintServiceInfo> services = printManager.getInstalledPrintServices();
            final int serviceCount = services.size();
            for (int i = 0; i < serviceCount; i++) {
                PrintServiceInfo service = services.get(i);
                SearchIndexableRaw indexable = new SearchIndexableRaw(context);
                indexable.title = service.getResolveInfo().loadLabel(packageManager).toString();
                indexable.summaryOn = context.getString(R.string.print_feature_state_on);
                indexable.summaryOff = context.getString(R.string.print_feature_state_off);
                indexable.screenTitle = screenTitle;
                indexables.add(indexable);
            }

            return indexables;
        }

        @Override
        public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
                boolean enabled) {
            List<SearchIndexableResource> indexables = new ArrayList<SearchIndexableResource>();
            SearchIndexableResource indexable = new SearchIndexableResource(context);
            indexable.xmlResId = R.xml.print_settings;
            indexables.add(indexable);
            return indexables;
        }
    };
}
 No newline at end of file
+22 −0
Original line number Diff line number Diff line
@@ -28,12 +28,34 @@ import android.provider.SearchIndexableData;
 */
public class SearchIndexableRaw extends SearchIndexableData {

    /**
     * Title's raw data.
     */
    public String title;

    /**
     * Summary's raw data when the data is "ON".
     */
    public String summaryOn;

    /**
     * Summary's raw data when the data is "OFF".
     */
    public String summaryOff;

    /**
     * Entries associated with the raw data (when the data can have several values).
     */
    public String entries;

    /**
     * Keywords' raw data.
     */
    public String keywords;

    /**
     * Fragment's or Activity's title associated with the raw data.
     */
    public String screenTitle;

    public SearchIndexableRaw(Context context) {
+1 −1
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@ public final class SearchIndexableResources {

        sResMap.put(PrintSettingsFragment.class.getName(),
                new SearchIndexableResource(RANK_PRINTING,
                        R.xml.print_settings,
                        NO_DATA_RES_ID,
                        PrintSettingsFragment.class.getName(),
                        com.android.internal.R.drawable.ic_print));