From 322d55622031985c75f7e5db07964b7730a97dac Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 25 Jun 2015 19:35:49 -0700 Subject: [PATCH] Moving a few testing classes to a separate package Change-Id: Ied1c063de3e938695493e4937f554686e0719dad --- AndroidManifest.xml | 103 +++++++++--------- ...{dummy_widget.xml => zzz_dummy_widget.xml} | 0 res/layout/zzz_weight_watcher.xml | 4 + res/values/config.xml | 3 - res/values/strings.xml | 5 - src/com/android/launcher3/Launcher.java | 68 ++---------- .../android/launcher3/LauncherAppState.java | 5 +- .../launcher3/ToggleWeightWatcher.java | 7 -- .../launcher3/{ => testing}/DummyWidget.java | 7 +- .../{ => testing}/MemoryDumpActivity.java | 16 ++- .../{ => testing}/MemoryTracker.java | 22 ++-- .../testing/ToggleWeightWatcher.java | 32 ++++++ .../{ => testing}/WeightWatcher.java | 6 +- .../android/launcher3/util/TestingUtils.java | 73 +++++++++++++ 14 files changed, 197 insertions(+), 154 deletions(-) rename res/layout/{dummy_widget.xml => zzz_dummy_widget.xml} (100%) create mode 100644 res/layout/zzz_weight_watcher.xml delete mode 100644 src/com/android/launcher3/ToggleWeightWatcher.java rename src/com/android/launcher3/{ => testing}/DummyWidget.java (82%) rename src/com/android/launcher3/{ => testing}/MemoryDumpActivity.java (94%) rename src/com/android/launcher3/{ => testing}/MemoryTracker.java (93%) create mode 100644 src/com/android/launcher3/testing/ToggleWeightWatcher.java rename src/com/android/launcher3/{ => testing}/WeightWatcher.java (98%) create mode 100644 src/com/android/launcher3/util/TestingUtils.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ef210d4bb9..93bff5e2d1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -90,39 +90,6 @@ - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/res/layout/dummy_widget.xml b/res/layout/zzz_dummy_widget.xml similarity index 100% rename from res/layout/dummy_widget.xml rename to res/layout/zzz_dummy_widget.xml diff --git a/res/layout/zzz_weight_watcher.xml b/res/layout/zzz_weight_watcher.xml new file mode 100644 index 0000000000..07fd39e91f --- /dev/null +++ b/res/layout/zzz_weight_watcher.xml @@ -0,0 +1,4 @@ + + diff --git a/res/values/config.xml b/res/values/config.xml index 0f18dffb89..a1060b5b1d 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -67,9 +67,6 @@ true - - false - diff --git a/res/values/strings.xml b/res/values/strings.xml index fefadef282..7947fbd4a8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -45,8 +45,6 @@ Widgets disabled in Safe mode - Show Mem - Touch & hold to pick up a widget. @@ -158,9 +156,6 @@ Folder: %1$s - - * HPROF - Widgets diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 7ac034db5d..5f578f7810 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -70,7 +70,6 @@ import android.text.TextUtils; import android.text.method.TextKeyListener; import android.util.Log; import android.view.Display; -import android.view.Gravity; import android.view.HapticFeedbackConstants; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -89,7 +88,6 @@ import android.view.accessibility.AccessibilityEvent; import android.view.animation.OvershootInterpolator; import android.view.inputmethod.InputMethodManager; import android.widget.Advanceable; -import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; @@ -106,6 +104,7 @@ import com.android.launcher3.config.ProviderConfig; import com.android.launcher3.model.WidgetsModel; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.LongArrayMap; +import com.android.launcher3.util.TestingUtils; import com.android.launcher3.util.Thunk; import com.android.launcher3.widget.PendingAddWidgetInfo; import com.android.launcher3.widget.WidgetHostViewLoader; @@ -200,9 +199,6 @@ public class Launcher extends Activity static final String ACTION_FIRST_LOAD_COMPLETE = "com.android.launcher3.action.FIRST_LOAD_COMPLETE"; - public static final String SHOW_WEIGHT_WATCHER = "debug.show_mem"; - public static final boolean SHOW_WEIGHT_WATCHER_DEFAULT = false; - private static final String QSB_WIDGET_ID = "qsb_widget_id"; private static final String QSB_WIDGET_PROVIDER = "qsb_widget_provider"; @@ -243,7 +239,8 @@ public class Launcher extends Activity private View mPageIndicators; @Thunk DragLayer mDragLayer; private DragController mDragController; - private View mWeightWatcher; + + public View mWeightWatcher; private AppWidgetManagerCompat mAppWidgetManager; private LauncherAppWidgetHost mAppWidgetHost; @@ -347,10 +344,9 @@ public class Launcher extends Activity protected static HashMap sCustomAppWidgets = new HashMap(); - private static final boolean ENABLE_CUSTOM_WIDGET_TEST = false; static { - if (ENABLE_CUSTOM_WIDGET_TEST) { - sCustomAppWidgets.put(DummyWidget.class.getName(), new DummyWidget()); + if (TestingUtils.ENABLE_CUSTOM_WIDGET_TEST) { + TestingUtils.addDummyWidget(sCustomAppWidgets); } } @@ -1423,19 +1419,8 @@ public class Launcher extends Activity mSearchDropTargetBar.setQsbSearchBar(getOrCreateQsbBar()); } - if (getResources().getBoolean(R.bool.debug_memory_enabled)) { - Log.v(TAG, "adding WeightWatcher"); - mWeightWatcher = new WeightWatcher(this); - mWeightWatcher.setAlpha(0.5f); - ((FrameLayout) mLauncherView).addView(mWeightWatcher, - new FrameLayout.LayoutParams( - FrameLayout.LayoutParams.MATCH_PARENT, - FrameLayout.LayoutParams.WRAP_CONTENT, - Gravity.BOTTOM) - ); - - boolean show = shouldShowWeightWatcher(); - mWeightWatcher.setVisibility(show ? View.VISIBLE : View.GONE); + if (TestingUtils.MEMORY_DUMP_ENABLED) { + TestingUtils.addWeightWatcher(this); } } @@ -2587,21 +2572,6 @@ public class Launcher extends Activity return; } - final Intent intent = shortcut.intent; - - // Check for special shortcuts - if (intent.getComponent() != null) { - final String shortcutClass = intent.getComponent().getClassName(); - - if (shortcutClass.equals(MemoryDumpActivity.class.getName())) { - MemoryDumpActivity.startDump(this); - return; - } else if (shortcutClass.equals(ToggleWeightWatcher.class.getName())) { - toggleShowWeightWatcher(); - return; - } - } - // Check for abandoned promise if ((v instanceof BubbleTextView) && shortcut.isPromise() @@ -3642,30 +3612,6 @@ public class Launcher extends Activity } } - private boolean shouldShowWeightWatcher() { - String spKey = LauncherAppState.getSharedPreferencesKey(); - SharedPreferences sp = getSharedPreferences(spKey, Context.MODE_PRIVATE); - boolean show = sp.getBoolean(SHOW_WEIGHT_WATCHER, SHOW_WEIGHT_WATCHER_DEFAULT); - - return show; - } - - private void toggleShowWeightWatcher() { - String spKey = LauncherAppState.getSharedPreferencesKey(); - SharedPreferences sp = getSharedPreferences(spKey, Context.MODE_PRIVATE); - boolean show = sp.getBoolean(SHOW_WEIGHT_WATCHER, true); - - show = !show; - - SharedPreferences.Editor editor = sp.edit(); - editor.putBoolean(SHOW_WEIGHT_WATCHER, show); - editor.commit(); - - if (mWeightWatcher != null) { - mWeightWatcher.setVisibility(show ? View.VISIBLE : View.GONE); - } - } - public void bindAppsAdded(final ArrayList newScreens, final ArrayList addNotAnimated, final ArrayList addAnimated, diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index 5a7fadb5bf..3b207a9cf6 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -27,6 +27,7 @@ import com.android.launcher3.accessibility.LauncherAccessibilityDelegate; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.PackageInstallerCompat; import com.android.launcher3.compat.UserManagerCompat; +import com.android.launcher3.util.TestingUtils; import com.android.launcher3.util.Thunk; import java.lang.ref.WeakReference; @@ -78,8 +79,8 @@ public class LauncherAppState { Log.v(Launcher.TAG, "LauncherAppState inited"); - if (sContext.getResources().getBoolean(R.bool.debug_memory_enabled)) { - MemoryTracker.startTrackingMe(sContext, "L"); + if (TestingUtils.MEMORY_DUMP_ENABLED) { + TestingUtils.startTrackingMemory(sContext); } mInvariantDeviceProfile = new InvariantDeviceProfile(sContext); diff --git a/src/com/android/launcher3/ToggleWeightWatcher.java b/src/com/android/launcher3/ToggleWeightWatcher.java deleted file mode 100644 index 33701a2c43..0000000000 --- a/src/com/android/launcher3/ToggleWeightWatcher.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.android.launcher3; - -import android.app.Activity; - -public class ToggleWeightWatcher extends Activity { - -} diff --git a/src/com/android/launcher3/DummyWidget.java b/src/com/android/launcher3/testing/DummyWidget.java similarity index 82% rename from src/com/android/launcher3/DummyWidget.java rename to src/com/android/launcher3/testing/DummyWidget.java index 59cd805012..df887ac1fc 100644 --- a/src/com/android/launcher3/DummyWidget.java +++ b/src/com/android/launcher3/testing/DummyWidget.java @@ -1,7 +1,10 @@ -package com.android.launcher3; +package com.android.launcher3.testing; import android.appwidget.AppWidgetProviderInfo; +import com.android.launcher3.CustomAppWidget; +import com.android.launcher3.R; + public class DummyWidget implements CustomAppWidget { @Override public String getLabel() { @@ -20,7 +23,7 @@ public class DummyWidget implements CustomAppWidget { @Override public int getWidgetLayout() { - return R.layout.dummy_widget; + return R.layout.zzz_dummy_widget; } @Override diff --git a/src/com/android/launcher3/MemoryDumpActivity.java b/src/com/android/launcher3/testing/MemoryDumpActivity.java similarity index 94% rename from src/com/android/launcher3/MemoryDumpActivity.java rename to src/com/android/launcher3/testing/MemoryDumpActivity.java index d79be80073..9bcf92b1b2 100644 --- a/src/com/android/launcher3/MemoryDumpActivity.java +++ b/src/com/android/launcher3/testing/MemoryDumpActivity.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.launcher3; +package com.android.launcher3.testing; import android.app.Activity; import android.content.ComponentName; @@ -23,10 +23,20 @@ import android.content.Intent; import android.content.ServiceConnection; import android.content.pm.PackageManager; import android.net.Uri; -import android.os.*; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.os.IBinder; import android.util.Log; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.zip.ZipEntry; diff --git a/src/com/android/launcher3/MemoryTracker.java b/src/com/android/launcher3/testing/MemoryTracker.java similarity index 93% rename from src/com/android/launcher3/MemoryTracker.java rename to src/com/android/launcher3/testing/MemoryTracker.java index 067a50f970..ed2a3122c0 100644 --- a/src/com/android/launcher3/MemoryTracker.java +++ b/src/com/android/launcher3/testing/MemoryTracker.java @@ -14,22 +14,28 @@ * limitations under the License. */ -package com.android.launcher3; +package com.android.launcher3.testing; import android.app.ActivityManager; import android.app.Service; import android.content.Context; import android.content.Intent; -import android.os.*; +import android.os.Binder; +import android.os.Debug; +import android.os.Handler; +import android.os.IBinder; +import android.os.Message; +import android.os.SystemClock; import android.util.Log; import android.util.LongSparseArray; +import com.android.launcher3.util.TestingUtils; + import java.util.ArrayList; import java.util.List; public class MemoryTracker extends Service { public static final String TAG = MemoryTracker.class.getSimpleName(); - public static final String ACTION_START_TRACKING = "com.android.launcher3.action.START_TRACKING"; private static final long UPDATE_RATE = 5000; @@ -83,14 +89,6 @@ public class MemoryTracker extends Service { ActivityManager mAm; - public static void startTrackingMe(Context context, String name) { - context.startService(new Intent(context, MemoryTracker.class) - .setAction(MemoryTracker.ACTION_START_TRACKING) - .putExtra("pid", android.os.Process.myPid()) - .putExtra("name", name) - ); - } - public ProcessMemInfo getMemInfo(int pid) { return mData.get(pid); } @@ -190,7 +188,7 @@ public class MemoryTracker extends Service { Log.v(TAG, "Received start id " + startId + ": " + intent); if (intent != null) { - if (ACTION_START_TRACKING.equals(intent.getAction())) { + if (TestingUtils.ACTION_START_TRACKING.equals(intent.getAction())) { final int pid = intent.getIntExtra("pid", -1); final String name = intent.getStringExtra("name"); final long start = intent.getLongExtra("start", System.currentTimeMillis()); diff --git a/src/com/android/launcher3/testing/ToggleWeightWatcher.java b/src/com/android/launcher3/testing/ToggleWeightWatcher.java new file mode 100644 index 0000000000..15e55eea62 --- /dev/null +++ b/src/com/android/launcher3/testing/ToggleWeightWatcher.java @@ -0,0 +1,32 @@ +package com.android.launcher3.testing; + +import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; + +import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherAppState; +import com.android.launcher3.util.TestingUtils; + +public class ToggleWeightWatcher extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + String spKey = LauncherAppState.getSharedPreferencesKey(); + SharedPreferences sp = getSharedPreferences(spKey, Context.MODE_PRIVATE); + boolean show = sp.getBoolean(TestingUtils.SHOW_WEIGHT_WATCHER, true); + + show = !show; + sp.edit().putBoolean(TestingUtils.SHOW_WEIGHT_WATCHER, show).apply(); + + Launcher launcher = (Launcher) LauncherAppState.getInstance().getModel().getCallback(); + if (launcher != null && launcher.mWeightWatcher != null) { + launcher.mWeightWatcher.setVisibility(show ? View.VISIBLE : View.GONE); + } + finish(); + } +} diff --git a/src/com/android/launcher3/WeightWatcher.java b/src/com/android/launcher3/testing/WeightWatcher.java similarity index 98% rename from src/com/android/launcher3/WeightWatcher.java rename to src/com/android/launcher3/testing/WeightWatcher.java index 75684797fa..a26a2b6420 100644 --- a/src/com/android/launcher3/WeightWatcher.java +++ b/src/com/android/launcher3/testing/WeightWatcher.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.launcher3; +package com.android.launcher3.testing; import android.content.ComponentName; import android.content.Context; @@ -116,10 +116,6 @@ public class WeightWatcher extends LinearLayout { } } - public WeightWatcher(Context context) { - this(context, null); - } - @Override public void onAttachedToWindow() { super.onAttachedToWindow(); diff --git a/src/com/android/launcher3/util/TestingUtils.java b/src/com/android/launcher3/util/TestingUtils.java new file mode 100644 index 0000000000..39b80463d5 --- /dev/null +++ b/src/com/android/launcher3/util/TestingUtils.java @@ -0,0 +1,73 @@ +package com.android.launcher3.util; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.widget.FrameLayout; + +import com.android.launcher3.CustomAppWidget; +import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherAppState; +import com.android.launcher3.R; + +import java.util.HashMap; + +public class TestingUtils { + + public static final String MEMORY_TRACKER = "com.android.launcher3.testing.MemoryTracker"; + public static final String ACTION_START_TRACKING = "com.android.launcher3.action.START_TRACKING"; + + public static final boolean MEMORY_DUMP_ENABLED = false; + public static final String SHOW_WEIGHT_WATCHER = "debug.show_mem"; + + public static final boolean ENABLE_CUSTOM_WIDGET_TEST = false; + public static final String DUMMY_WIDGET = "com.android.launcher3.testing.DummyWidget"; + + public static void startTrackingMemory(Context context) { + if (MEMORY_DUMP_ENABLED) { + context.startService(new Intent() + .setComponent(new ComponentName(context.getPackageName(), MEMORY_TRACKER)) + .setAction(ACTION_START_TRACKING) + .putExtra("pid", android.os.Process.myPid()) + .putExtra("name", "L")); + } + } + + public static void addWeightWatcher(Launcher launcher) { + if (MEMORY_DUMP_ENABLED) { + String spKey = LauncherAppState.getSharedPreferencesKey(); + SharedPreferences sp = launcher.getSharedPreferences(spKey, Context.MODE_PRIVATE); + boolean show = sp.getBoolean(SHOW_WEIGHT_WATCHER, true); + + int id = launcher.getResources().getIdentifier("zzz_weight_watcher", "layout", + launcher.getPackageName()); + View watcher = launcher.getLayoutInflater().inflate(id, null); + watcher.setAlpha(0.5f); + ((FrameLayout) launcher.findViewById(R.id.launcher)).addView(watcher, + new FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.WRAP_CONTENT, + Gravity.BOTTOM) + ); + + watcher.setVisibility(show ? View.VISIBLE : View.GONE); + launcher.mWeightWatcher = watcher; + } + } + + public static void addDummyWidget(HashMap set) { + if (ENABLE_CUSTOM_WIDGET_TEST) { + try { + Class clazz = Class.forName(DUMMY_WIDGET); + CustomAppWidget widget = (CustomAppWidget) clazz.newInstance(); + set.put(widget.getClass().getName(), widget); + } catch (Exception e) { + Log.e("TestingUtils", "Error adding dummy widget", e); + } + } + } +}