diff options
author | Dianne Hackborn <hackbod@google.com> | 2014-07-23 13:38:41 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2014-07-23 13:50:07 -0700 |
commit | fe9590bb19e3acf6b68b67b40f43de8bc094d1b6 (patch) | |
tree | a4129ce41ed8c17e46bb2ad65e99e5ac532027b4 | |
parent | b125caa7ed29f1ecf5062452191d061fa890decb (diff) | |
download | packages_apps_Settings-fe9590bb19e3acf6b68b67b40f43de8bc094d1b6.zip packages_apps_Settings-fe9590bb19e3acf6b68b67b40f43de8bc094d1b6.tar.gz packages_apps_Settings-fe9590bb19e3acf6b68b67b40f43de8bc094d1b6.tar.bz2 |
Work on issue #16135174: Apps page "smoke" gradient footer must be removed
New header in running services. Not yet done.
Change-Id: Ibe2f4145796c7863ec80e0ea2d8d87dc910bac7e
-rw-r--r-- | res/layout/manage_applications_apps.xml | 44 | ||||
-rw-r--r-- | res/layout/running_processes_header.xml | 178 | ||||
-rw-r--r-- | res/layout/running_processes_view.xml | 48 | ||||
-rw-r--r-- | res/values/colors.xml | 4 | ||||
-rw-r--r-- | res/values/strings.xml | 22 | ||||
-rw-r--r-- | src/com/android/settings/applications/ManageApplications.java | 26 | ||||
-rw-r--r-- | src/com/android/settings/applications/RunningProcessesView.java | 71 |
7 files changed, 248 insertions, 145 deletions
diff --git a/res/layout/manage_applications_apps.xml b/res/layout/manage_applications_apps.xml index ce2b6c6..5bfdb69 100644 --- a/res/layout/manage_applications_apps.xml +++ b/res/layout/manage_applications_apps.xml @@ -39,50 +39,6 @@ android:text="@string/no_applications" android:textAppearance="?android:attr/textAppearanceLarge" /> </FrameLayout> - <!-- Force layout direction to LTR for now as we want the text to be at the same position in - any Locale included the RTL ones. Will need to fix LinearColorBar RTL support later. - Please also note the left/right gravities that would also need to be changed for proper - RTL support --> - <view class="com.android.settings.applications.LinearColorBar" - android:id="@+id/storage_color_bar" - android:layout_marginStart="@dimen/settings_side_margin" - android:layout_marginEnd="@dimen/settings_side_margin" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="-5dp" - android:orientation="horizontal" - android:clipChildren="false" - android:clipToPadding="false" - android:paddingTop="30dp" - android:paddingBottom="1dp" - android:layoutDirection="ltr"> - <TextView android:id="@+id/usedStorageText" - android:layout_width="0px" - android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="left" - android:textAppearance="?android:attr/textAppearanceSmallInverse" - android:textColor="#000" - android:singleLine="true" /> - <TextView android:id="@+id/storageChartLabel" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="0" - android:layout_marginTop="-20dp" - android:textAppearance="?android:attr/textAppearanceSmallInverse" - android:textColor="?android:attr/textColorPrimary" - android:singleLine="true" - android:text="@string/internal_storage" /> - <TextView android:id="@+id/freeStorageText" - android:layout_gravity="center_vertical|end" - android:layout_width="0px" - android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="right" - android:textAppearance="?android:attr/textAppearanceSmallInverse" - android:textColor="#000" - android:singleLine="true" /> - </view> </LinearLayout> <LinearLayout android:id="@+id/loading_container" diff --git a/res/layout/running_processes_header.xml b/res/layout/running_processes_header.xml new file mode 100644 index 0000000..a5a2bc7 --- /dev/null +++ b/res/layout/running_processes_header.xml @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2014, 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:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:orientation="vertical"> + + <TextView + android:id="@+id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:singleLine="true" + android:ellipsize="marquee" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textAlignment="viewStart" + android:text="@string/running_processes_header_title" /> + + <view class="com.android.settings.applications.LinearColorBar" + android:id="@+id/color_bar" + android:layout_width="match_parent" + android:layout_height="18sp" + android:layout_marginTop="8dp" + android:orientation="horizontal" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:orientation="horizontal" + android:baselineAligned="true"> + <ImageView + android:layout_width="16sp" + android:layout_height="16sp" + android:scaleType="centerInside" + android:baselineAlignBottom="true" + android:src="@color/running_processes_system_ram" + android:contentDescription="@null" /> + <TextView + android:id="@+id/systemSizePrefix" + android:text="@string/running_processes_header_system_prefix" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_marginLeft="16dp" + android:maxLines="1" /> + <ImageView + android:src="@drawable/dotted_line_480px" + android:layout_width="0dip" + android:layout_weight="1" + android:layout_height="1px" + android:layout_marginStart="1dip" + android:layout_marginEnd="1dip" + android:baselineAlignBottom="true" + android:scaleType="center" + android:contentDescription="@null" /> + <TextView + android:id="@+id/systemSize" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:maxLines="1" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + android:orientation="horizontal" + android:baselineAligned="true"> + <ImageView + android:layout_width="16sp" + android:layout_height="16sp" + android:baselineAlignBottom="true" + android:scaleType="centerInside" + android:src="@color/running_processes_apps_ram" + android:contentDescription="@null" /> + <TextView + android:id="@+id/appsSizePrefix" + android:text="@string/running_processes_header_apps_prefix" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_marginLeft="16dp" + android:maxLines="1" + android:paddingTop="6dip" /> + <ImageView + android:src="@drawable/dotted_line_480px" + android:layout_width="0dip" + android:layout_weight="1" + android:layout_height="1px" + android:baselineAlignBottom="true" + android:layout_marginStart="1dip" + android:layout_marginEnd="1dip" + android:scaleType="center" + android:contentDescription="@null" /> + <TextView + android:id="@+id/appsSize" + android:paddingTop="6dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:maxLines="1" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + android:orientation="horizontal" + android:baselineAligned="true"> + <ImageView + android:layout_width="16sp" + android:layout_height="16sp" + android:baselineAlignBottom="true" + android:scaleType="centerInside" + android:src="@color/running_processes_free_ram" + android:contentDescription="@null" /> + <TextView + android:id="@+id/freeSizePrefix" + android:text="@string/running_processes_header_free_prefix" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_marginLeft="16dp" + android:maxLines="1" + android:paddingTop="6dip" /> + <ImageView + android:src="@drawable/dotted_line_480px" + android:layout_width="0dip" + android:layout_weight="1" + android:layout_height="1px" + android:baselineAlignBottom="true" + android:layout_marginStart="1dip" + android:layout_marginEnd="1dip" + android:scaleType="center" + android:contentDescription="@null" /> + <TextView + android:id="@+id/freeSize" + android:paddingTop="6dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:maxLines="1" /> + </LinearLayout> + + <TextView + android:id="@+id/listHeader" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginBottom="16dp" + android:singleLine="true" + android:ellipsize="marquee" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textAlignment="viewStart" + android:text="@string/running_processes_header_footer" /> + +</LinearLayout> diff --git a/res/layout/running_processes_view.xml b/res/layout/running_processes_view.xml index 68967e4..19293ab 100644 --- a/res/layout/running_processes_view.xml +++ b/res/layout/running_processes_view.xml @@ -37,52 +37,4 @@ android:text="@string/no_running_services" android:textAppearance="?android:attr/textAppearanceLarge" /> </FrameLayout> - <!-- Force layout direction to LTR for now as we want the text to be at the same position in - any Locale included the RTL ones. Will need to fix LinearColorBar RTL support later. - Please also note the left/right gravities that would also need to be changed for proper - RTL support --> - <view class="com.android.settings.applications.LinearColorBar" - android:id="@+id/color_bar" - android:layout_marginStart="@dimen/settings_side_margin" - android:layout_marginEnd="@dimen/settings_side_margin" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="-5dp" - android:orientation="horizontal" - android:clipChildren="false" - android:clipToPadding="false" - android:paddingTop="30dp" - android:paddingStart="4dp" - android:paddingEnd="4dp" - android:paddingBottom="1dp" - android:layoutDirection="ltr"> - <TextView android:id="@+id/foregroundText" - android:layout_width="0px" - android:layout_height="wrap_content" - android:layout_weight="1" - android:focusable="true" - android:gravity="left|bottom" - android:textAppearance="?android:attr/textAppearanceSmallInverse" - android:textColor="#000" - android:singleLine="true" /> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="0" - android:layout_marginTop="-20dp" - android:textAppearance="?android:attr/textAppearanceSmallInverse" - android:textColor="?android:attr/textColorPrimary" - android:singleLine="true" - android:text="@string/memory" /> - <TextView android:id="@+id/backgroundText" - android:layout_gravity="center_vertical|end" - android:layout_width="0px" - android:layout_height="wrap_content" - android:layout_weight="1" - android:focusable="true" - android:gravity="right|bottom" - android:textAppearance="?android:attr/textAppearanceSmallInverse" - android:textColor="#000" - android:singleLine="true" /> - </view> </LinearLayout> diff --git a/res/values/colors.xml b/res/values/colors.xml index d1e892e..2fbc591 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -56,6 +56,10 @@ <color name="unlock_pattern_view_success_color">@color/theme_accent</color> <color name="unlock_pattern_view_error_color">#fff4511e</color> + <color name="running_processes_system_ram">#ff384248</color> + <color name="running_processes_apps_ram">#ff009587</color> + <color name="running_processes_free_ram">#ffced7db</color> + <!-- Palette colors referenced by top-level themes. --> <color name="theme_primary">#ff263238</color> <color name="theme_primary_dark">#ff21272b</color> diff --git a/res/values/strings.xml b/res/values/strings.xml index 77fd6de..cfb73b2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3096,6 +3096,28 @@ <!-- Descriptive text of a running process: plural process, plural service. --> <string name="running_processes_item_description_p_p"><xliff:g id="numprocess">%1$d</xliff:g> processes and <xliff:g id="numservices">%2$d</xliff:g> services</string> + <!-- [CHAR LIMIT=NONE] Top title of the header of the running processes/services list. --> + <string name="running_processes_header_title">Device memory</string> + <!-- [CHAR LIMIT=NONE] Bottom test of the header leading in to the running + processes/services list. --> + <string name="running_processes_header_footer">App RAM usage</string> + <!-- [CHAR LIMIT=20] Running processes/services header: prefix for line showing RAM + used by system. --> + <string name="running_processes_header_system_prefix">System</string> + <!-- [CHAR LIMIT=20] Running processes/services header: prefix for line showing RAM + used by apps. --> + <string name="running_processes_header_apps_prefix">Apps</string> + <!-- [CHAR LIMIT=20] Running processes/services header: prefix for line showing RAM + that is free. --> + <string name="running_processes_header_free_prefix">Free</string> + <!-- [CHAR LIMIT=20] Running processes/services header: prefix for line showing total RAM + used by everything. --> + <string name="running_processes_header_used_prefix">Used</string> + <!-- [CHAR LIMIT=20] Running processes/services header: prefix for line showing portion + of free RAM that is used by cached apps. --> + <string name="running_processes_header_cached_prefix">Cached</string> + <!-- [CHAR_LIMIT=20] Running processes/services header: formatter for RAM use amount. --> + <string name="running_processes_header_ram"><xliff:g id="ram">%1$s</xliff:g> of RAM</string> <!-- Details about an application's running services. --> <string name="runningservicedetails_settings_title">Running app</string> diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java index 48e2d5e..e40ad25 100644 --- a/src/com/android/settings/applications/ManageApplications.java +++ b/src/com/android/settings/applications/ManageApplications.java @@ -199,10 +199,10 @@ public class ManageApplications extends Fragment implements // Custom view used to display running processes private RunningProcessesView mRunningProcessesView; - private LinearColorBar mColorBar; - private TextView mStorageChartLabel; - private TextView mUsedStorageText; - private TextView mFreeStorageText; + //private LinearColorBar mColorBar; + //private TextView mStorageChartLabel; + //private TextView mUsedStorageText; + //private TextView mFreeStorageText; private long mFreeStorage = 0, mAppStorage = 0, mTotalStorage = 0; private long mLastUsedStorage, mLastAppStorage, mLastFreeStorage; @@ -263,17 +263,17 @@ public class ManageApplications extends Fragment implements mApplications = new ApplicationsAdapter(mApplicationsState, this, mFilter); mListView.setAdapter(mApplications); mListView.setRecyclerListener(mApplications); - mColorBar = (LinearColorBar)mListContainer.findViewById(R.id.storage_color_bar); - mStorageChartLabel = (TextView)mListContainer.findViewById(R.id.storageChartLabel); - mUsedStorageText = (TextView)mListContainer.findViewById(R.id.usedStorageText); - mFreeStorageText = (TextView)mListContainer.findViewById(R.id.freeStorageText); + //mColorBar = (LinearColorBar)mListContainer.findViewById(R.id.storage_color_bar); + //mStorageChartLabel = (TextView)mListContainer.findViewById(R.id.storageChartLabel); + //mUsedStorageText = (TextView)mListContainer.findViewById(R.id.usedStorageText); + //mFreeStorageText = (TextView)mListContainer.findViewById(R.id.freeStorageText); Utils.prepareCustomPreferencesList(contentParent, contentChild, mListView, false); if (mFilter == FILTER_APPS_SDCARD) { - mStorageChartLabel.setText(mOwner.getActivity().getText( - R.string.sd_card_storage)); + //mStorageChartLabel.setText(mOwner.getActivity().getText( + // R.string.sd_card_storage)); } else { - mStorageChartLabel.setText(mOwner.getActivity().getText( - R.string.internal_storage)); + //mStorageChartLabel.setText(mOwner.getActivity().getText( + // R.string.internal_storage)); } applyCurrentStorage(); } @@ -389,6 +389,7 @@ public class ManageApplications extends Fragment implements if (mRootView == null) { return; } + /* if (mTotalStorage > 0) { BidiFormatter bidiFormatter = BidiFormatter.getInstance(); mColorBar.setRatios((mTotalStorage-mFreeStorage-mAppStorage)/(float)mTotalStorage, @@ -419,6 +420,7 @@ public class ManageApplications extends Fragment implements mFreeStorageText.setText(""); } } + */ } @Override diff --git a/src/com/android/settings/applications/RunningProcessesView.java b/src/com/android/settings/applications/RunningProcessesView.java index caa5450..d0da04b 100644 --- a/src/com/android/settings/applications/RunningProcessesView.java +++ b/src/com/android/settings/applications/RunningProcessesView.java @@ -16,6 +16,7 @@ package com.android.settings.applications; +import android.content.res.Resources; import android.text.BidiFormatter; import com.android.internal.util.MemInfoReader; import com.android.settings.R; @@ -71,9 +72,11 @@ public class RunningProcessesView extends FrameLayout RunningState.BaseItem mCurSelected; ListView mListView; + View mHeader; ServiceListAdapter mAdapter; LinearColorBar mColorBar; TextView mBackgroundProcessText; + TextView mAppsProcessText; TextView mForegroundProcessText; int mLastNumBackgroundProcesses = -1; @@ -316,7 +319,7 @@ public class RunningProcessesView extends FrameLayout void refreshUi(boolean dataChanged) { if (dataChanged) { - ServiceListAdapter adapter = (ServiceListAdapter)(mListView.getAdapter()); + ServiceListAdapter adapter = mAdapter; adapter.refreshItems(); adapter.notifyDataSetChanged(); } @@ -338,38 +341,35 @@ public class RunningProcessesView extends FrameLayout synchronized (mState.mLock) { if (mLastNumBackgroundProcesses != mState.mNumBackgroundProcesses || mLastBackgroundProcessMemory != mState.mBackgroundProcessMemory + || mLastNumForegroundProcesses != mState.mNumForegroundProcesses + || mLastForegroundProcessMemory != mState.mForegroundProcessMemory + || mLastNumServiceProcesses != mState.mNumServiceProcesses + || mLastServiceProcessMemory != mState.mServiceProcessMemory || mLastAvailMemory != availMem) { mLastNumBackgroundProcesses = mState.mNumBackgroundProcesses; mLastBackgroundProcessMemory = mState.mBackgroundProcessMemory; + mLastForegroundProcessMemory = mState.mForegroundProcessMemory; + mLastServiceProcessMemory = mState.mServiceProcessMemory; mLastAvailMemory = availMem; long freeMem = mLastAvailMemory + mLastBackgroundProcessMemory; BidiFormatter bidiFormatter = BidiFormatter.getInstance(); String sizeStr = bidiFormatter.unicodeWrap( Formatter.formatShortFileSize(getContext(), freeMem)); mBackgroundProcessText.setText(getResources().getString( - R.string.service_background_processes, sizeStr)); + R.string.running_processes_header_ram, sizeStr)); sizeStr = bidiFormatter.unicodeWrap( Formatter.formatShortFileSize(getContext(), - mMemInfoReader.getTotalSize() - freeMem)); - mForegroundProcessText.setText(getResources().getString( - R.string.service_foreground_processes, sizeStr)); - } - if (mLastNumForegroundProcesses != mState.mNumForegroundProcesses - || mLastForegroundProcessMemory != mState.mForegroundProcessMemory - || mLastNumServiceProcesses != mState.mNumServiceProcesses - || mLastServiceProcessMemory != mState.mServiceProcessMemory) { - mLastNumForegroundProcesses = mState.mNumForegroundProcesses; - mLastForegroundProcessMemory = mState.mForegroundProcessMemory; - mLastNumServiceProcesses = mState.mNumServiceProcesses; - mLastServiceProcessMemory = mState.mServiceProcessMemory; - /* - String sizeStr = Formatter.formatShortFileSize(getContext(), - mLastForegroundProcessMemory + mLastServiceProcessMemory); + mLastForegroundProcessMemory + mLastServiceProcessMemory)); + mAppsProcessText.setText(getResources().getString( + R.string.running_processes_header_ram, sizeStr)); + sizeStr = bidiFormatter.unicodeWrap( + Formatter.formatShortFileSize(getContext(), + mMemInfoReader.getTotalSize() - freeMem + - mLastForegroundProcessMemory - mLastServiceProcessMemory)); mForegroundProcessText.setText(getResources().getString( - R.string.service_foreground_processes, sizeStr)); - */ + R.string.running_processes_header_ram, sizeStr)); } - + float totalMem = mMemInfoReader.getTotalSize(); float totalShownMem = availMem + mLastBackgroundProcessMemory + mLastServiceProcessMemory; @@ -428,27 +428,16 @@ public class RunningProcessesView extends FrameLayout mListView.setRecyclerListener(this); mAdapter = new ServiceListAdapter(mState); mListView.setAdapter(mAdapter); - mColorBar = (LinearColorBar)findViewById(R.id.color_bar); - mBackgroundProcessText = (TextView)findViewById(R.id.backgroundText); - mBackgroundProcessText.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mAdapter.setShowBackground(true); - if (mOwner != null) { - mOwner.getActivity().invalidateOptionsMenu(); - } - } - }); - mForegroundProcessText = (TextView)findViewById(R.id.foregroundText); - mForegroundProcessText.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mAdapter.setShowBackground(false); - if (mOwner != null) { - mOwner.getActivity().invalidateOptionsMenu(); - } - } - }); + mHeader = inflater.inflate(R.layout.running_processes_header, null); + mListView.addHeaderView(mHeader); + mColorBar = (LinearColorBar)mHeader.findViewById(R.id.color_bar); + Resources res = getResources(); + mColorBar.setColors(res.getColor(R.color.running_processes_system_ram), + res.getColor(R.color.running_processes_apps_ram), + res.getColor(R.color.running_processes_free_ram)); + mBackgroundProcessText = (TextView)mHeader.findViewById(R.id.freeSize); + mAppsProcessText = (TextView)mHeader.findViewById(R.id.appsSize); + mForegroundProcessText = (TextView)mHeader.findViewById(R.id.systemSize); ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo(); mAm.getMemoryInfo(memInfo); |