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

Commit a749adae authored by Svetoslav's avatar Svetoslav
Browse files

Add icons to the printer list items in settings.

bug:10955751

Change-Id: Iea87a9a07624d6e26274030a51f912f8d2ef0e10
parent bc2c3db8
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 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.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="48dip"
    android:gravity="center_vertical"
    android:paddingStart="@*android:dimen/preference_item_padding_side"
    android:paddingEnd="?android:attr/scrollbarSize"
    android:background="?android:attr/selectableItemBackground">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="32dip"
        android:layout_height="32dip"
        android:layout_gravity="center_vertical"
        android:layout_marginEnd="8dip"
        android:duplicateParentState="true"
        android:contentDescription="@null"
        android:visibility="gone">
    </ImageView>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:fadingEdge="horizontal"
            android:textIsSelectable="false">
        </TextView>

        <TextView
            android:id="@+id/subtitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:singleLine="true"
            android:ellipsize="end"
            android:textIsSelectable="false"
            android:visibility="gone"
            android:textColor="?android:attr/textColorSecondary">
        </TextView>

    </LinearLayout>

</LinearLayout>
+18 −4
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.database.ContentObserver;
import android.database.DataSetObserver;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -54,6 +57,7 @@ import android.widget.BaseAdapter;
import android.widget.CompoundButton;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.TextView;
@@ -293,7 +297,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
            }
        });

        getListView().setEnabled(false);
        getListView().setSelector(new ColorDrawable(Color.TRANSPARENT));
        getListView().setAdapter(mPrintersAdapter);
    }

@@ -531,24 +535,26 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = getActivity().getLayoutInflater().inflate(
                        R.layout.preference, parent, false);
                        R.layout.printer_dropdown_item, parent, false);
            }

            PrinterInfo printer = (PrinterInfo) getItem(position);
            CharSequence title = printer.getName();
            CharSequence subtitle = null;
            Drawable icon = null;
            try {
                PackageInfo packageInfo = getPackageManager().getPackageInfo(
                        printer.getId().getServiceName().getPackageName(), 0);
                        subtitle = packageInfo.applicationInfo.loadLabel(getPackageManager());
                        icon = packageInfo.applicationInfo.loadIcon(getPackageManager());
            } catch (NameNotFoundException nnfe) {
                /* ignore */
            }

            TextView titleView = (TextView) convertView.findViewById(android.R.id.title);
            TextView titleView = (TextView) convertView.findViewById(R.id.title);
            titleView.setText(title);

            TextView subtitleView = (TextView) convertView.findViewById(android.R.id.summary);
            TextView subtitleView = (TextView) convertView.findViewById(R.id.subtitle);
            if (!TextUtils.isEmpty(subtitle)) {
                subtitleView.setText(subtitle);
                subtitleView.setVisibility(View.VISIBLE);
@@ -557,6 +563,14 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
                subtitleView.setVisibility(View.GONE);
            }

            ImageView iconView = (ImageView) convertView.findViewById(R.id.icon);
            if (icon != null) {
                iconView.setImageDrawable(icon);
                iconView.setVisibility(View.VISIBLE);
            } else {
                iconView.setVisibility(View.GONE);
            }

            return convertView;
        }