Merge "Layout refinement for app lists" into mnc-dev
This commit is contained in:
@@ -27,6 +27,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.pm.PermissionGroupInfo;
|
||||
import android.content.pm.PermissionInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -57,29 +58,15 @@ public class AppOpsDetails extends InstrumentedFragment {
|
||||
private PackageInfo mPackageInfo;
|
||||
private LayoutInflater mInflater;
|
||||
private View mRootView;
|
||||
private TextView mAppVersion;
|
||||
private LinearLayout mOperationsSection;
|
||||
|
||||
// Utility method to set application label and icon.
|
||||
private void setAppLabelAndIcon(PackageInfo pkgInfo) {
|
||||
final View appSnippet = mRootView.findViewById(R.id.app_snippet);
|
||||
appSnippet.setPaddingRelative(0, appSnippet.getPaddingTop(), 0, appSnippet.getPaddingBottom());
|
||||
|
||||
ImageView icon = (ImageView) appSnippet.findViewById(R.id.app_icon);
|
||||
icon.setImageDrawable(mPm.getApplicationIcon(pkgInfo.applicationInfo));
|
||||
// Set application name.
|
||||
TextView label = (TextView) appSnippet.findViewById(R.id.app_name);
|
||||
label.setText(mPm.getApplicationLabel(pkgInfo.applicationInfo));
|
||||
// Version number of application
|
||||
mAppVersion = (TextView) appSnippet.findViewById(R.id.app_summary);
|
||||
|
||||
if (pkgInfo.versionName != null) {
|
||||
mAppVersion.setVisibility(View.VISIBLE);
|
||||
mAppVersion.setText(getActivity().getString(R.string.version_text,
|
||||
String.valueOf(pkgInfo.versionName)));
|
||||
} else {
|
||||
mAppVersion.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
CharSequence label = mPm.getApplicationLabel(pkgInfo.applicationInfo);
|
||||
Drawable icon = mPm.getApplicationIcon(pkgInfo.applicationInfo);
|
||||
InstalledAppDetails.setupAppSnippet(appSnippet, label, icon,
|
||||
pkgInfo != null ? pkgInfo.versionName : null);
|
||||
}
|
||||
|
||||
private String retrieveAppEntry() {
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.applications;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
@@ -34,21 +35,21 @@ public class AppViewHolder {
|
||||
public ImageView appIcon;
|
||||
public TextView summary;
|
||||
public TextView disabled;
|
||||
public CheckBox checkBox;
|
||||
|
||||
static public AppViewHolder createOrRecycle(LayoutInflater inflater, View convertView) {
|
||||
if (convertView == null) {
|
||||
convertView = inflater.inflate(R.layout.manage_applications_item, null);
|
||||
convertView = inflater.inflate(R.layout.preference_app, null);
|
||||
inflater.inflate(R.layout.widget_text_views,
|
||||
(ViewGroup) convertView.findViewById(android.R.id.widget_frame));
|
||||
|
||||
// Creates a ViewHolder and store references to the two children views
|
||||
// we want to bind data to.
|
||||
AppViewHolder holder = new AppViewHolder();
|
||||
holder.rootView = convertView;
|
||||
holder.appName = (TextView) convertView.findViewById(R.id.app_name);
|
||||
holder.appIcon = (ImageView) convertView.findViewById(R.id.app_icon);
|
||||
holder.summary = (TextView) convertView.findViewById(R.id.app_summary);
|
||||
holder.disabled = (TextView) convertView.findViewById(R.id.app_disabled);
|
||||
holder.checkBox = (CheckBox) convertView.findViewById(R.id.app_on_sdcard);
|
||||
holder.appName = (TextView) convertView.findViewById(android.R.id.title);
|
||||
holder.appIcon = (ImageView) convertView.findViewById(android.R.id.icon);
|
||||
holder.summary = (TextView) convertView.findViewById(R.id.widget_text1);
|
||||
holder.disabled = (TextView) convertView.findViewById(R.id.widget_text2);
|
||||
convertView.setTag(holder);
|
||||
return holder;
|
||||
} else {
|
||||
|
@@ -36,6 +36,7 @@ import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.icu.text.ListFormatter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.INetworkStatsService;
|
||||
import android.net.INetworkStatsSession;
|
||||
import android.net.NetworkTemplate;
|
||||
@@ -49,13 +50,16 @@ import android.os.ServiceManager;
|
||||
import android.os.UserHandle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.Preference.OnPreferenceClickListener;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.DateUtils;
|
||||
import android.text.format.Formatter;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
@@ -130,7 +134,6 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
private LayoutPreference mHeader;
|
||||
private Button mUninstallButton;
|
||||
private boolean mUpdatedSysApp = false;
|
||||
private TextView mAppVersion;
|
||||
private Button mForceStopButton;
|
||||
private Preference mNotificationPreference;
|
||||
private Preference mStoragePreference;
|
||||
@@ -424,25 +427,9 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
// Utility method to set application label and icon.
|
||||
private void setAppLabelAndIcon(PackageInfo pkgInfo) {
|
||||
final View appSnippet = mHeader.findViewById(R.id.app_snippet);
|
||||
appSnippet.setPaddingRelative(0, appSnippet.getPaddingTop(), 0,
|
||||
appSnippet.getPaddingBottom());
|
||||
|
||||
ImageView icon = (ImageView) appSnippet.findViewById(R.id.app_icon);
|
||||
mState.ensureIcon(mAppEntry);
|
||||
icon.setImageDrawable(mAppEntry.icon);
|
||||
// Set application name.
|
||||
TextView label = (TextView) appSnippet.findViewById(R.id.app_name);
|
||||
label.setText(mAppEntry.label);
|
||||
// Version number of application
|
||||
mAppVersion = (TextView) appSnippet.findViewById(R.id.app_summary);
|
||||
|
||||
if (pkgInfo != null && pkgInfo.versionName != null) {
|
||||
mAppVersion.setVisibility(View.VISIBLE);
|
||||
mAppVersion.setText(getActivity().getString(R.string.version_text,
|
||||
String.valueOf(pkgInfo.versionName)));
|
||||
} else {
|
||||
mAppVersion.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
setupAppSnippet(appSnippet, mAppEntry.label, mAppEntry.icon,
|
||||
pkgInfo != null ? pkgInfo.versionName : null);
|
||||
}
|
||||
|
||||
private boolean signaturesMatch(String pkg1, String pkg2) {
|
||||
@@ -757,6 +744,28 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void setupAppSnippet(View appSnippet, CharSequence label, Drawable icon,
|
||||
CharSequence versionName) {
|
||||
LayoutInflater.from(appSnippet.getContext()).inflate(R.layout.widget_text_views,
|
||||
(ViewGroup) appSnippet.findViewById(android.R.id.widget_frame));
|
||||
|
||||
ImageView iconView = (ImageView) appSnippet.findViewById(android.R.id.icon);
|
||||
iconView.setImageDrawable(icon);
|
||||
// Set application name.
|
||||
TextView labelView = (TextView) appSnippet.findViewById(android.R.id.title);
|
||||
labelView.setText(label);
|
||||
// Version number of application
|
||||
TextView appVersion = (TextView) appSnippet.findViewById(R.id.widget_text1);
|
||||
|
||||
if (!TextUtils.isEmpty(versionName)) {
|
||||
appVersion.setVisibility(View.VISIBLE);
|
||||
appVersion.setText(appSnippet.getContext().getString(R.string.version_text,
|
||||
String.valueOf(versionName)));
|
||||
} else {
|
||||
appVersion.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
private static NetworkTemplate getTemplate(Context context) {
|
||||
if (DataUsageSummary.hasReadyMobileRadio(context)) {
|
||||
return NetworkTemplate.buildTemplateMobileWildcard();
|
||||
|
@@ -58,6 +58,11 @@ public class LayoutPreference extends Preference {
|
||||
return mRootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindView(View view) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
public View findViewById(int id) {
|
||||
return mRootView.findViewById(id);
|
||||
}
|
||||
|
@@ -993,7 +993,6 @@ public class ManageApplications extends InstrumentedFragment
|
||||
} else {
|
||||
holder.disabled.setVisibility(View.GONE);
|
||||
}
|
||||
holder.checkBox.setVisibility(View.GONE);
|
||||
}
|
||||
mActive.remove(convertView);
|
||||
mActive.add(convertView);
|
||||
|
@@ -105,8 +105,9 @@ public class ProcessStatsMemDetail extends InstrumentedFragment {
|
||||
private void addDetailsItem(ViewGroup parent, CharSequence title,
|
||||
float level, CharSequence value) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
ViewGroup item = (ViewGroup) inflater.inflate(R.layout.app_percentage_item,
|
||||
null);
|
||||
ViewGroup item = (ViewGroup) inflater.inflate(R.layout.app_item, null);
|
||||
inflater.inflate(R.layout.widget_progress_bar,
|
||||
(ViewGroup) item.findViewById(android.R.id.widget_frame));
|
||||
parent.addView(item);
|
||||
item.findViewById(android.R.id.icon).setVisibility(View.GONE);
|
||||
TextView titleView = (TextView) item.findViewById(android.R.id.title);
|
||||
|
@@ -19,40 +19,17 @@ package com.android.settings.applications;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.Formatter;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.AppProgressPreference;
|
||||
|
||||
public class ProcessStatsPreference extends Preference {
|
||||
public class ProcessStatsPreference extends AppProgressPreference {
|
||||
|
||||
private ProcStatsPackageEntry mEntry;
|
||||
private final int mColor;
|
||||
private final int mRemainingColor;
|
||||
private float mRatio;
|
||||
private float mRemainingRatio;
|
||||
|
||||
public ProcessStatsPreference(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public ProcessStatsPreference(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public ProcessStatsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
this(context, attrs, defStyleAttr, 0);
|
||||
}
|
||||
|
||||
public ProcessStatsPreference(Context context, AttributeSet attrs, int defStyleAttr,
|
||||
int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
setLayoutResource(R.layout.app_item_linear_color);
|
||||
mColor = context.getColor(R.color.memory_max_use);
|
||||
mRemainingColor = context.getColor(R.color.memory_remaining);
|
||||
super(context, null);
|
||||
}
|
||||
|
||||
public void init(ProcStatsPackageEntry entry, PackageManager pm, double maxMemory,
|
||||
@@ -68,20 +45,10 @@ public class ProcessStatsPreference extends Preference {
|
||||
double amount = avg ? (statsForeground ? entry.mRunWeight : entry.mBgWeight) * weightToRam
|
||||
: (statsForeground ? entry.mMaxRunMem : entry.mMaxBgMem) * totalScale * 1024;
|
||||
setSummary(Formatter.formatShortFileSize(getContext(), (long) amount));
|
||||
mRatio = (float) (amount / maxMemory);
|
||||
mRemainingRatio = 1 - mRatio;
|
||||
setProgress((int) (100 * amount / maxMemory));
|
||||
}
|
||||
|
||||
public ProcStatsPackageEntry getEntry() {
|
||||
return mEntry;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindView(View view) {
|
||||
super.onBindView(view);
|
||||
|
||||
LinearColorBar linearColorBar = (LinearColorBar) view.findViewById(R.id.linear_color_bar);
|
||||
linearColorBar.setColors(mColor, mColor, mRemainingColor);
|
||||
linearColorBar.setRatios(mRatio, 0, mRemainingRatio);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user