Home | History | Annotate | Download | only in util
      1 package com.android.launcher3.util;
      2 
      3 import android.content.ComponentName;
      4 import android.content.Context;
      5 import android.content.Intent;
      6 import android.content.SharedPreferences;
      7 import android.util.Log;
      8 import android.view.Gravity;
      9 import android.view.View;
     10 import android.widget.FrameLayout;
     11 
     12 import com.android.launcher3.CustomAppWidget;
     13 import com.android.launcher3.Launcher;
     14 import com.android.launcher3.LauncherAppState;
     15 import com.android.launcher3.R;
     16 import com.android.launcher3.Utilities;
     17 
     18 import java.util.HashMap;
     19 
     20 public class TestingUtils {
     21 
     22     public static final String MEMORY_TRACKER = "com.android.launcher3.testing.MemoryTracker";
     23     public static final String ACTION_START_TRACKING = "com.android.launcher3.action.START_TRACKING";
     24 
     25     public static final boolean MEMORY_DUMP_ENABLED = false;
     26     public static final String SHOW_WEIGHT_WATCHER = "debug.show_mem";
     27 
     28     public static final boolean ENABLE_CUSTOM_WIDGET_TEST = false;
     29     public static final String DUMMY_WIDGET = "com.android.launcher3.testing.DummyWidget";
     30 
     31     public static void startTrackingMemory(Context context) {
     32         if (MEMORY_DUMP_ENABLED) {
     33             context.startService(new Intent()
     34                 .setComponent(new ComponentName(context.getPackageName(), MEMORY_TRACKER))
     35                 .setAction(ACTION_START_TRACKING)
     36                 .putExtra("pid", android.os.Process.myPid())
     37                 .putExtra("name", "L"));
     38         }
     39     }
     40 
     41     public static void addWeightWatcher(Launcher launcher) {
     42         if (MEMORY_DUMP_ENABLED) {
     43             boolean show = Utilities.getPrefs(launcher).getBoolean(SHOW_WEIGHT_WATCHER, true);
     44 
     45             int id = launcher.getResources().getIdentifier("zzz_weight_watcher", "layout",
     46                     launcher.getPackageName());
     47             View watcher = launcher.getLayoutInflater().inflate(id, null);
     48             watcher.setAlpha(0.5f);
     49             ((FrameLayout) launcher.findViewById(R.id.launcher)).addView(watcher,
     50                     new FrameLayout.LayoutParams(
     51                             FrameLayout.LayoutParams.MATCH_PARENT,
     52                             FrameLayout.LayoutParams.WRAP_CONTENT,
     53                             Gravity.BOTTOM)
     54             );
     55 
     56             watcher.setVisibility(show ? View.VISIBLE : View.GONE);
     57             launcher.mWeightWatcher = watcher;
     58         }
     59     }
     60 
     61     public static void addDummyWidget(HashMap<String, CustomAppWidget> set) {
     62         if (ENABLE_CUSTOM_WIDGET_TEST) {
     63             try {
     64                 Class<?> clazz = Class.forName(DUMMY_WIDGET);
     65                 CustomAppWidget widget = (CustomAppWidget) clazz.newInstance();
     66                 set.put(widget.getClass().getName(), widget);
     67             } catch (Exception e) {
     68                 Log.e("TestingUtils", "Error adding dummy widget", e);
     69             }
     70         }
     71     }
     72 }
     73