Add app icons to leasee view in shared data dev options.

Also disable clicking the header view and list items in the same view.

Bug: 156671006
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SharedDataPreferenceControllerTest
Test: manual (visual)
Change-Id: I2821bc6cdc523097283ab44b864088278850be53
This commit is contained in:
Varun Shah
2020-06-09 19:04:36 -07:00
parent c920a58d5f
commit 8d5cb9a2d0
4 changed files with 54 additions and 25 deletions

View File

@@ -23,8 +23,10 @@ import android.app.blob.BlobStoreManager;
import android.app.blob.LeaseInfo;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
@@ -90,6 +92,7 @@ public class LeaseInfoListView extends ListActivity {
private LinearLayout getHeaderView() {
final LinearLayout headerView = (LinearLayout) mInflater.inflate(
R.layout.blob_list_item_view , null);
headerView.setEnabled(false); // disable clicking
final TextView blobLabel = headerView.findViewById(R.id.blob_label);
final TextView blobId = headerView.findViewById(R.id.blob_id);
final TextView blobExpiry = headerView.findViewById(R.id.blob_expiry);
@@ -137,9 +140,12 @@ public class LeaseInfoListView extends ListActivity {
}
private class LeaseListAdapter extends ArrayAdapter<LeaseInfo> {
private Context mContext;
LeaseListAdapter(Context context) {
super(context, 0);
mContext = context;
final List<LeaseInfo> leases = mBlobInfo.getLeases();
if (CollectionUtils.isEmpty(leases)) {
return;
@@ -152,8 +158,17 @@ public class LeaseInfoListView extends ListActivity {
final LeaseInfoViewHolder holder = LeaseInfoViewHolder.createOrRecycle(
mInflater, convertView);
convertView = holder.rootView;
convertView.setEnabled(false); // disable clicking
final LeaseInfo lease = getItem(position);
Drawable appIcon;
try {
appIcon = mContext.getPackageManager().getApplicationIcon(lease.getPackageName());
} catch (PackageManager.NameNotFoundException e) {
// set to system default app icon
appIcon = mContext.getDrawable(android.R.drawable.sym_def_app_icon);
}
holder.appIcon.setImageDrawable(appIcon);
holder.leasePackageName.setText(lease.getPackageName());
holder.leaseDescription.setText(getDescriptionString(lease));
holder.leaseExpiry.setText(getString(R.string.accessor_expires_text,

View File

@@ -18,6 +18,7 @@ package com.android.settings.development.storage;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.android.settings.R;
@@ -27,6 +28,7 @@ import com.android.settings.R;
*/
class LeaseInfoViewHolder {
View rootView;
ImageView appIcon;
TextView leasePackageName;
TextView leaseDescription;
TextView leaseExpiry;
@@ -39,6 +41,7 @@ class LeaseInfoViewHolder {
final LeaseInfoViewHolder holder = new LeaseInfoViewHolder();
holder.rootView = convertView;
holder.appIcon = convertView.findViewById(R.id.app_icon);
holder.leasePackageName = convertView.findViewById(R.id.lease_package);
holder.leaseDescription = convertView.findViewById(R.id.lease_desc);
holder.leaseExpiry = convertView.findViewById(R.id.lease_expiry);