Delete "Show CPU usage"
am: fc4a5c2d85
Change-Id: I4da784d136601fb3458b8697a0a27a232cd89111
This commit is contained in:
@@ -32482,7 +32482,7 @@ package android.provider {
|
||||
field public static final java.lang.String RADIO_CELL = "cell";
|
||||
field public static final java.lang.String RADIO_NFC = "nfc";
|
||||
field public static final java.lang.String RADIO_WIFI = "wifi";
|
||||
field public static final java.lang.String SHOW_PROCESSES = "show_processes";
|
||||
field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
|
||||
field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
|
||||
field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
|
||||
field public static final java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
|
||||
|
||||
@@ -35238,7 +35238,7 @@ package android.provider {
|
||||
field public static final java.lang.String RADIO_CELL = "cell";
|
||||
field public static final java.lang.String RADIO_NFC = "nfc";
|
||||
field public static final java.lang.String RADIO_WIFI = "wifi";
|
||||
field public static final java.lang.String SHOW_PROCESSES = "show_processes";
|
||||
field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
|
||||
field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
|
||||
field public static final java.lang.String THEATER_MODE_ON = "theater_mode_on";
|
||||
field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
|
||||
|
||||
@@ -32560,7 +32560,7 @@ package android.provider {
|
||||
field public static final java.lang.String RADIO_CELL = "cell";
|
||||
field public static final java.lang.String RADIO_NFC = "nfc";
|
||||
field public static final java.lang.String RADIO_WIFI = "wifi";
|
||||
field public static final java.lang.String SHOW_PROCESSES = "show_processes";
|
||||
field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
|
||||
field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
|
||||
field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
|
||||
field public static final java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
|
||||
|
||||
@@ -1850,7 +1850,6 @@ public final class Settings {
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.CALL_AUTO_RETRY);
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.DEBUG_APP);
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.WAIT_FOR_DEBUGGER);
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.SHOW_PROCESSES);
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.ALWAYS_FINISH_ACTIVITIES);
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.TZINFO_UPDATE_CONTENT_URL);
|
||||
MOVED_TO_GLOBAL.add(Settings.Global.TZINFO_UPDATE_METADATA_URL);
|
||||
@@ -2787,7 +2786,8 @@ public final class Settings {
|
||||
/**
|
||||
* Control whether the process CPU usage meter should be shown.
|
||||
*
|
||||
* @deprecated Use {@link Global#SHOW_PROCESSES} instead
|
||||
* @deprecated This functionality is no longer available as of
|
||||
* {@link android.os.Build.VERSION_CODES#N_MR1}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String SHOW_PROCESSES = Global.SHOW_PROCESSES;
|
||||
@@ -8443,7 +8443,11 @@ public final class Settings {
|
||||
|
||||
/**
|
||||
* Control whether the process CPU usage meter should be shown.
|
||||
*
|
||||
* @deprecated This functionality is no longer available as of
|
||||
* {@link android.os.Build.VERSION_CODES#N_MR1}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String SHOW_PROCESSES = "show_processes";
|
||||
|
||||
/**
|
||||
|
||||
@@ -582,11 +582,6 @@
|
||||
<!-- UI debug setting: force right to left layout summary [CHAR LIMIT=100] -->
|
||||
<string name="force_rtl_layout_all_locales_summary">Force screen layout direction to RTL for all locales</string>
|
||||
|
||||
<!-- UI debug setting: show how CPU is being used? [CHAR LIMIT=25] -->
|
||||
<string name="show_cpu_usage">Show CPU usage</string>
|
||||
<!-- UI debug setting: show cpu usage summary [CHAR LIMIT=50] -->
|
||||
<string name="show_cpu_usage_summary">Screen overlay showing current CPU usage</string>
|
||||
|
||||
<!-- UI debug setting: force hardware acceleration to render apps [CHAR LIMIT=25] -->
|
||||
<string name="force_hw_ui">Force GPU rendering</string>
|
||||
<!-- UI debug setting: force hardware acceleration summary [CHAR LIMIT=50] -->
|
||||
|
||||
@@ -1483,7 +1483,6 @@ class DatabaseHelper extends SQLiteOpenHelper {
|
||||
Settings.Global.CALL_AUTO_RETRY,
|
||||
Settings.Global.DEBUG_APP,
|
||||
Settings.Global.WAIT_FOR_DEBUGGER,
|
||||
Settings.Global.SHOW_PROCESSES,
|
||||
Settings.Global.ALWAYS_FINISH_ACTIVITIES,
|
||||
};
|
||||
String[] secureToGlobal = {
|
||||
|
||||
@@ -213,9 +213,6 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<service android:name=".LoadAverageService"
|
||||
android:exported="true" />
|
||||
|
||||
<service android:name=".ImageWallpaper"
|
||||
android:permission="android.permission.BIND_WALLPAPER"
|
||||
android:exported="true" />
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2011 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.
|
||||
*/
|
||||
|
||||
package com.android.systemui;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Performs a number of miscellaneous, non-system-critical actions
|
||||
* after the system has finished booting.
|
||||
*/
|
||||
public class BootReceiver extends BroadcastReceiver {
|
||||
private static final String TAG = "SystemUIBootReceiver";
|
||||
|
||||
@Override
|
||||
public void onReceive(final Context context, Intent intent) {
|
||||
try {
|
||||
// Start the load average overlay, if activated
|
||||
ContentResolver res = context.getContentResolver();
|
||||
if (Settings.Global.getInt(res, Settings.Global.SHOW_PROCESSES, 0) != 0) {
|
||||
Intent loadavg = new Intent(context, com.android.systemui.LoadAverageService.class);
|
||||
context.startService(loadavg);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Can't start load average service", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,315 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2007 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.
|
||||
*/
|
||||
|
||||
package com.android.systemui;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.os.Message;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.android.internal.os.ProcessCpuTracker;
|
||||
|
||||
public class LoadAverageService extends Service {
|
||||
private View mView;
|
||||
|
||||
private static final class CpuTracker extends ProcessCpuTracker {
|
||||
String mLoadText;
|
||||
int mLoadWidth;
|
||||
|
||||
private final Paint mPaint;
|
||||
|
||||
CpuTracker(Paint paint) {
|
||||
super(false);
|
||||
mPaint = paint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadChanged(float load1, float load5, float load15) {
|
||||
mLoadText = load1 + " / " + load5 + " / " + load15;
|
||||
mLoadWidth = (int)mPaint.measureText(mLoadText);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onMeasureProcessName(String name) {
|
||||
return (int)mPaint.measureText(name);
|
||||
}
|
||||
}
|
||||
|
||||
private class LoadView extends View {
|
||||
private Handler mHandler = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
if (msg.what == 1) {
|
||||
mStats.update();
|
||||
updateDisplay();
|
||||
Message m = obtainMessage(1);
|
||||
sendMessageDelayed(m, 2000);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final CpuTracker mStats;
|
||||
|
||||
private Paint mLoadPaint;
|
||||
private Paint mAddedPaint;
|
||||
private Paint mRemovedPaint;
|
||||
private Paint mShadowPaint;
|
||||
private Paint mShadow2Paint;
|
||||
private Paint mIrqPaint;
|
||||
private Paint mSystemPaint;
|
||||
private Paint mUserPaint;
|
||||
private float mAscent;
|
||||
private int mFH;
|
||||
|
||||
private int mNeededWidth;
|
||||
private int mNeededHeight;
|
||||
|
||||
LoadView(Context c) {
|
||||
super(c);
|
||||
|
||||
setPadding(4, 4, 4, 4);
|
||||
//setBackgroundResource(com.android.internal.R.drawable.load_average_background);
|
||||
|
||||
// Need to scale text size by density... but we won't do it
|
||||
// linearly, because with higher dps it is nice to squeeze the
|
||||
// text a bit to fit more of it. And with lower dps, trying to
|
||||
// go much smaller will result in unreadable text.
|
||||
int textSize = 10;
|
||||
float density = c.getResources().getDisplayMetrics().density;
|
||||
if (density < 1) {
|
||||
textSize = 9;
|
||||
} else {
|
||||
textSize = (int)(10*density);
|
||||
if (textSize < 10) {
|
||||
textSize = 10;
|
||||
}
|
||||
}
|
||||
mLoadPaint = new Paint();
|
||||
mLoadPaint.setAntiAlias(true);
|
||||
mLoadPaint.setTextSize(textSize);
|
||||
mLoadPaint.setARGB(255, 255, 255, 255);
|
||||
|
||||
mAddedPaint = new Paint();
|
||||
mAddedPaint.setAntiAlias(true);
|
||||
mAddedPaint.setTextSize(textSize);
|
||||
mAddedPaint.setARGB(255, 128, 255, 128);
|
||||
|
||||
mRemovedPaint = new Paint();
|
||||
mRemovedPaint.setAntiAlias(true);
|
||||
mRemovedPaint.setStrikeThruText(true);
|
||||
mRemovedPaint.setTextSize(textSize);
|
||||
mRemovedPaint.setARGB(255, 255, 128, 128);
|
||||
|
||||
mShadowPaint = new Paint();
|
||||
mShadowPaint.setAntiAlias(true);
|
||||
mShadowPaint.setTextSize(textSize);
|
||||
//mShadowPaint.setFakeBoldText(true);
|
||||
mShadowPaint.setARGB(192, 0, 0, 0);
|
||||
mLoadPaint.setShadowLayer(4, 0, 0, 0xff000000);
|
||||
|
||||
mShadow2Paint = new Paint();
|
||||
mShadow2Paint.setAntiAlias(true);
|
||||
mShadow2Paint.setTextSize(textSize);
|
||||
//mShadow2Paint.setFakeBoldText(true);
|
||||
mShadow2Paint.setARGB(192, 0, 0, 0);
|
||||
mLoadPaint.setShadowLayer(2, 0, 0, 0xff000000);
|
||||
|
||||
mIrqPaint = new Paint();
|
||||
mIrqPaint.setARGB(0x80, 0, 0, 0xff);
|
||||
mIrqPaint.setShadowLayer(2, 0, 0, 0xff000000);
|
||||
mSystemPaint = new Paint();
|
||||
mSystemPaint.setARGB(0x80, 0xff, 0, 0);
|
||||
mSystemPaint.setShadowLayer(2, 0, 0, 0xff000000);
|
||||
mUserPaint = new Paint();
|
||||
mUserPaint.setARGB(0x80, 0, 0xff, 0);
|
||||
mSystemPaint.setShadowLayer(2, 0, 0, 0xff000000);
|
||||
|
||||
mAscent = mLoadPaint.ascent();
|
||||
float descent = mLoadPaint.descent();
|
||||
mFH = (int)(descent - mAscent + .5f);
|
||||
|
||||
mStats = new CpuTracker(mLoadPaint);
|
||||
mStats.init();
|
||||
updateDisplay();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
mHandler.sendEmptyMessage(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
mHandler.removeMessages(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
setMeasuredDimension(resolveSize(mNeededWidth, widthMeasureSpec),
|
||||
resolveSize(mNeededHeight, heightMeasureSpec));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
final int W = mNeededWidth;
|
||||
final int RIGHT = getWidth()-1;
|
||||
|
||||
final CpuTracker stats = mStats;
|
||||
final int userTime = stats.getLastUserTime();
|
||||
final int systemTime = stats.getLastSystemTime();
|
||||
final int iowaitTime = stats.getLastIoWaitTime();
|
||||
final int irqTime = stats.getLastIrqTime();
|
||||
final int softIrqTime = stats.getLastSoftIrqTime();
|
||||
final int idleTime = stats.getLastIdleTime();
|
||||
|
||||
final int totalTime = userTime+systemTime+iowaitTime+irqTime+softIrqTime+idleTime;
|
||||
if (totalTime == 0) {
|
||||
return;
|
||||
}
|
||||
int userW = (userTime*W)/totalTime;
|
||||
int systemW = (systemTime*W)/totalTime;
|
||||
int irqW = ((iowaitTime+irqTime+softIrqTime)*W)/totalTime;
|
||||
|
||||
int paddingRight = getPaddingRight();
|
||||
int x = RIGHT - paddingRight;
|
||||
int top = getPaddingTop() + 2;
|
||||
int bottom = getPaddingTop() + mFH - 2;
|
||||
|
||||
if (irqW > 0) {
|
||||
canvas.drawRect(x-irqW, top, x, bottom, mIrqPaint);
|
||||
x -= irqW;
|
||||
}
|
||||
if (systemW > 0) {
|
||||
canvas.drawRect(x-systemW, top, x, bottom, mSystemPaint);
|
||||
x -= systemW;
|
||||
}
|
||||
if (userW > 0) {
|
||||
canvas.drawRect(x-userW, top, x, bottom, mUserPaint);
|
||||
x -= userW;
|
||||
}
|
||||
|
||||
int y = getPaddingTop() - (int)mAscent;
|
||||
canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth-1,
|
||||
y-1, mShadowPaint);
|
||||
canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth-1,
|
||||
y+1, mShadowPaint);
|
||||
canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth+1,
|
||||
y-1, mShadow2Paint);
|
||||
canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth+1,
|
||||
y+1, mShadow2Paint);
|
||||
canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth,
|
||||
y, mLoadPaint);
|
||||
|
||||
int N = stats.countWorkingStats();
|
||||
for (int i=0; i<N; i++) {
|
||||
CpuTracker.Stats st = stats.getWorkingStats(i);
|
||||
y += mFH;
|
||||
top += mFH;
|
||||
bottom += mFH;
|
||||
|
||||
userW = (st.rel_utime*W)/totalTime;
|
||||
systemW = (st.rel_stime*W)/totalTime;
|
||||
x = RIGHT - paddingRight;
|
||||
if (systemW > 0) {
|
||||
canvas.drawRect(x-systemW, top, x, bottom, mSystemPaint);
|
||||
x -= systemW;
|
||||
}
|
||||
if (userW > 0) {
|
||||
canvas.drawRect(x-userW, top, x, bottom, mUserPaint);
|
||||
x -= userW;
|
||||
}
|
||||
|
||||
canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth-1,
|
||||
y-1, mShadowPaint);
|
||||
canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth-1,
|
||||
y+1, mShadowPaint);
|
||||
canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth+1,
|
||||
y-1, mShadow2Paint);
|
||||
canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth+1,
|
||||
y+1, mShadow2Paint);
|
||||
Paint p = mLoadPaint;
|
||||
if (st.added) p = mAddedPaint;
|
||||
if (st.removed) p = mRemovedPaint;
|
||||
canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth, y, p);
|
||||
}
|
||||
}
|
||||
|
||||
void updateDisplay() {
|
||||
final CpuTracker stats = mStats;
|
||||
final int NW = stats.countWorkingStats();
|
||||
|
||||
int maxWidth = stats.mLoadWidth;
|
||||
for (int i=0; i<NW; i++) {
|
||||
CpuTracker.Stats st = stats.getWorkingStats(i);
|
||||
if (st.nameWidth > maxWidth) {
|
||||
maxWidth = st.nameWidth;
|
||||
}
|
||||
}
|
||||
|
||||
int neededWidth = getPaddingLeft() + getPaddingRight() + maxWidth;
|
||||
int neededHeight = getPaddingTop() + getPaddingBottom() + (mFH*(1+NW));
|
||||
if (neededWidth != mNeededWidth || neededHeight != mNeededHeight) {
|
||||
mNeededWidth = neededWidth;
|
||||
mNeededHeight = neededHeight;
|
||||
requestLayout();
|
||||
} else {
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
mView = new LoadView(this);
|
||||
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
|
||||
WindowManager.LayoutParams.MATCH_PARENT,
|
||||
WindowManager.LayoutParams.WRAP_CONTENT,
|
||||
WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY,
|
||||
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|
|
||||
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
|
||||
PixelFormat.TRANSLUCENT);
|
||||
params.gravity = Gravity.END | Gravity.TOP;
|
||||
params.setTitle("Load Average");
|
||||
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
|
||||
wm.addView(mView, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
((WindowManager)getSystemService(WINDOW_SERVICE)).removeView(mView);
|
||||
mView = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -177,7 +177,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
static final boolean DEBUG_STARTING_WINDOW = false;
|
||||
static final boolean DEBUG_WAKEUP = false;
|
||||
static final boolean SHOW_STARTING_ANIMATIONS = true;
|
||||
static final boolean SHOW_PROCESSES_ON_ALT_MENU = false;
|
||||
|
||||
// Whether to allow dock apps with METADATA_DOCK_HOME to temporarily take over the Home key.
|
||||
// No longer recommended for desk docks;
|
||||
@@ -3274,21 +3273,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
mContext.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT,
|
||||
null, null, null, 0, null, null);
|
||||
return -1;
|
||||
} else if (SHOW_PROCESSES_ON_ALT_MENU &&
|
||||
(metaState & KeyEvent.META_ALT_ON) == KeyEvent.META_ALT_ON) {
|
||||
Intent service = new Intent();
|
||||
service.setClassName(mContext, "com.android.server.LoadAverageService");
|
||||
ContentResolver res = mContext.getContentResolver();
|
||||
boolean shown = Settings.Global.getInt(
|
||||
res, Settings.Global.SHOW_PROCESSES, 0) != 0;
|
||||
if (!shown) {
|
||||
mContext.startService(service);
|
||||
} else {
|
||||
mContext.stopService(service);
|
||||
}
|
||||
Settings.Global.putInt(
|
||||
res, Settings.Global.SHOW_PROCESSES, shown ? 0 : 1);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
} else if (keyCode == KeyEvent.KEYCODE_SEARCH) {
|
||||
|
||||
Reference in New Issue
Block a user