Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e174a94c authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Merge commit 'd60b539d' into HEAD"

parents 697e762e 276b675e
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.HashMap;
import org.codeaurora.Performance;

/**
 * An activity is a single, focused thing that the user can do.  Almost all
@@ -662,7 +663,15 @@ public class Activity extends ContextThemeWrapper
        Window.Callback, KeyEvent.Callback,
        OnCreateContextMenuListener, ComponentCallbacks2,
        Window.OnWindowDismissedCallback {

    private static Performance mPerf = null;
    private static int mDragBoostPossible = -1;
    private static int mPerfLockDuration = -1;
    private static int mAsCpuBoost = -1;
    private static int mAsSchedBoost = -1;
    private static int mAsPcDisblBoost = -1;
    private static final String TAG = "Activity";

    private static final boolean DEBUG_LIFECYCLE = false;

    /** Standard activity result: operation canceled. */
@@ -2733,6 +2742,42 @@ public class Activity extends ContextThemeWrapper
     * @return boolean Return true if this event was consumed.
     */
    public boolean dispatchTouchEvent(MotionEvent ev) {
        String currentActivity = getPackageName();
        if(mDragBoostPossible == -1)
        {
            mDragBoostPossible = 0;
            String[] activityList = getResources().getStringArray(
                com.android.internal.R.array.boost_activityList);
            if(activityList != null){
                for (String match : activityList) {
                    if (currentActivity.indexOf(match) != -1){
                        mDragBoostPossible = 1;
                        break;
                    }
                }
            }
        }
        if (mDragBoostPossible == 1)
        {
            if (mPerf == null){
                mPerf = new Performance();
            }
            if(mPerfLockDuration == -1){
                mPerfLockDuration = getResources().getInteger(
                    com.android.internal.R.integer.ascrollboost_timeout);
                mAsCpuBoost = getResources().getInteger(
                    com.android.internal.R.integer.ascrollboost_cpuboost);
                mAsSchedBoost = getResources().getInteger(
                    com.android.internal.R.integer.ascrollboost_schedboost);
                mAsPcDisblBoost = getResources().getInteger(
                    com.android.internal.R.integer.ascrollboost_pcdisbl);
            }
            mPerf.perfLockAcquireTouch(ev,
                getResources().getDisplayMetrics(),
                mPerfLockDuration,
                mAsSchedBoost, mAsCpuBoost, mAsPcDisblBoost);
        }

        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            onUserInteraction();
        }
+4 −1
Original line number Diff line number Diff line
@@ -616,6 +616,7 @@ public class OverScroller {
        private int lBoostSchedBoost = 0;
        private int lBoostPcDisblBoost = 0;
        private int lBoostKsmBoost = 0;
        private int lBoostPreferIdle = 0;

        static {
            float x_min = 0.0f;
@@ -675,6 +676,8 @@ public class OverScroller {
                   com.android.internal.R.integer.flingboost_pcdisbl_param);
            lBoostKsmBoost = context.getResources().getInteger(
                   com.android.internal.R.integer.flingboost_ksmboost_param);
            lBoostPreferIdle = context.getResources().getInteger(
                   com.android.internal.R.integer.flingboost_preferidle_param);
            }
        }

@@ -808,7 +811,7 @@ public class OverScroller {
                        lBoostTimeOut = mDuration;
                    }
                    mPerf.perfLockAcquire(lBoostTimeOut, lBoostPcDisblBoost, lBoostSchedBoost,
                                          lBoostCpuBoost, lBoostKsmBoost);
                                          lBoostCpuBoost, lBoostKsmBoost,lBoostPreferIdle);

                }
            }
+4 −1
Original line number Diff line number Diff line
@@ -121,6 +121,7 @@ public class Scroller {
    private int lBoostSchedBoost = 0;
    private int lBoostPcDisblBoost = 0;
    private int lBoostKsmBoost = 0;
    private int lBoostPreferIdle =0;


    // A context-specific coefficient adjusted to physical values.
@@ -207,6 +208,8 @@ public class Scroller {
               com.android.internal.R.integer.scrollboost_pcdisbl_param);
        lBoostKsmBoost = context.getResources().getInteger(
               com.android.internal.R.integer.scrollboost_ksmboost_param);
        lBoostPreferIdle = context.getResources().getInteger(
               com.android.internal.R.integer.scrollboost_preferidle_param);
        }


@@ -437,7 +440,7 @@ public class Scroller {
                lBoostTimeOut = mDuration;
            }
            mPerf.perfLockAcquire(lBoostTimeOut, lBoostPcDisblBoost, lBoostSchedBoost,
                                          lBoostCpuBoost, lBoostKsmBoost);
                                          lBoostCpuBoost, lBoostKsmBoost,lBoostPreferIdle);
        }
    }

+6 −6
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ public class NetlinkTracker extends BaseNetworkObserver {
    private final String TAG;

    public interface Callback {
        public void update();
        public void update(LinkProperties lp);
    }

    private final String mInterfaceName;
@@ -112,7 +112,7 @@ public class NetlinkTracker extends BaseNetworkObserver {
                changed = mLinkProperties.addLinkAddress(address);
            }
            if (changed) {
                mCallback.update();
                mCallback.update(new LinkProperties(mLinkProperties));
            }
        }
    }
@@ -126,7 +126,7 @@ public class NetlinkTracker extends BaseNetworkObserver {
                changed = mLinkProperties.removeLinkAddress(address);
            }
            if (changed) {
                mCallback.update();
                mCallback.update(new LinkProperties(mLinkProperties));
            }
        }
    }
@@ -140,7 +140,7 @@ public class NetlinkTracker extends BaseNetworkObserver {
                changed = mLinkProperties.addRoute(route);
            }
            if (changed) {
                mCallback.update();
                mCallback.update(new LinkProperties(mLinkProperties));
            }
        }
    }
@@ -154,7 +154,7 @@ public class NetlinkTracker extends BaseNetworkObserver {
                changed = mLinkProperties.removeRoute(route);
            }
            if (changed) {
                mCallback.update();
                mCallback.update(new LinkProperties(mLinkProperties));
            }
        }
    }
@@ -168,7 +168,7 @@ public class NetlinkTracker extends BaseNetworkObserver {
                synchronized (this) {
                    mDnsServerRepository.setDnsServersOn(mLinkProperties);
                }
                mCallback.update();
                mCallback.update(new LinkProperties(mLinkProperties));
            }
        }
    }
+142 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@
package org.codeaurora;

import android.util.Log;
import android.view.MotionEvent;
import android.util.DisplayMetrics;

public class Performance
{
@@ -72,6 +74,9 @@ public class Performance
    /** @hide */ public static final int CPUS_ON_LIMIT_2 = 0x8FD;
    /** @hide */ public static final int CPUS_ON_LIMIT_3 = 0x8FC;

    /** @hide */ public static final int SCHED_PREFER_IDLE = 0x3E01;
    /** @hide */ public static final int SCHED_MIGRATE_COST = 0x3F01;

    /* The following are the PerfLock API return values*/
    /** @hide */ public static final int REQUEST_FAILED = -1;
    /** @hide */ public static final int REQUEST_SUCCEEDED = 0;
@@ -88,6 +93,143 @@ public class Performance
        return rc;
    }

    private static boolean isFlingEnabled = false;

    /* Tunables Begin. Can be moved to config.xml */
    /* Division factor */
    private int mDivFact = 6;
    /* Min drag in horizontal,vertical (abs pixels) */
    private int mWDragPix = 12;
    private int mHDragPix = 12;
    /* fling boost duration (msec) */
    private int mFlingBoostDuration = 1500;
    /* Tunables End. */

    class TouchInfo {
        /* Touch start position */
        private int mStartX = 0;
        private int mStartY = 0;

        /* Touch current position */
        private int mCurX = 0;
        private int mCurY = 0;

        /* Width, Height to declare fling */
        private int mMinFlingW = 0;
        private int mMinFlingH = 0;

        /* Width, Height to declare drag */
        private int mMinDragW = 0;
        private int mMinDragH = 0;

        /* Note: All coordinates are density normalized values */
        private void reset() {
            mStartX = mStartY = mCurX = mCurY = 0;
            mMinFlingH = mMinFlingW = mMinDragH = mMinDragW = 0;
            isFlingEnabled = false;
        }
        /* update current x,y coordinates */
        private void setXY(int dx, int dy) {
            mCurX = dx;
            mCurY = dy;
        }
        /* Set fling min width, height */
        private void setFlingWH(int dw, int dh) {
            mMinFlingW = dw;
            mMinFlingH = dh;
        }
        /* Set drag min width, height */
        private void setDragWH(int dw, int dh) {
            mMinDragW = dw;
            mMinDragH = dh;
        }
        private void setStartXY(int dx, int dy) {
            mStartX = mCurX = dx;
            mStartY = mCurY = dy;
        }
    };
    private static TouchInfo mTouchInfo = null;


    /* The following two functions are the PerfLock APIs*/
    /** &hide */
    public int perfLockAcquireTouch(MotionEvent ev, DisplayMetrics metrics, int duration, int... list) {
        int rc = REQUEST_FAILED;
        if (mTouchInfo == null)
            mTouchInfo = new TouchInfo();
        final int actionMasked = ev.getActionMasked();
        final int pointerIndex = ev.getActionIndex();

        final int y = (int) ev.getY(pointerIndex);
        final int x = (int) ev.getX(pointerIndex);

        int dx = (int)((x * 1f)/metrics.density);
        int dy = (int)((y * 1f)/metrics.density);

        boolean ret = true;

        switch (actionMasked) {
            case MotionEvent.ACTION_DOWN: {
                mTouchInfo.reset();
                mTouchInfo.setStartXY(dx, dy);
                mTouchInfo.setFlingWH(
                       (int)((metrics.widthPixels * 1f)/(mDivFact * metrics.density)),
                       (int)((metrics.heightPixels * 1f)/(mDivFact * metrics.density)));
                mTouchInfo.setDragWH((int)(mWDragPix * 1f/metrics.density),
                                     (int)(mHDragPix * 1f/metrics.density));
                return rc;
            }

            case MotionEvent.ACTION_MOVE: {
                int xdiff = dx - mTouchInfo.mCurX;
                int ydiff = dy - mTouchInfo.mCurY;
                if (xdiff < 0) xdiff *= -1;
                if (ydiff < 0) ydiff *= -1;

                mTouchInfo.setXY(dx, dy);
                if ((xdiff > mTouchInfo.mMinDragW) ||
                    (ydiff > mTouchInfo.mMinDragH)){
                    ret = false;
                }

                if (ret == true)
                    return rc;
                break;
            }

            case MotionEvent.ACTION_UP: {
                int xdiff = dx - mTouchInfo.mCurX;
                int ydiff = dy - mTouchInfo.mCurY;
                if (xdiff < 0) xdiff *= -1;
                if (ydiff < 0) ydiff *= -1;
                if ((xdiff > mTouchInfo.mMinDragW) ||
                    (ydiff > mTouchInfo.mMinDragH)){
                    ret = false;
                }

                mTouchInfo.reset();
                if (ret == true){
                    return rc;
                }
                break;
            }

            case MotionEvent.ACTION_CANCEL: {
                mTouchInfo.reset();
                return rc;
            }

            default:
                return rc;
        }

        rc = REQUEST_SUCCEEDED;
        handle = native_perf_lock_acq(handle, duration, list);
        if (handle == 0)
            rc = REQUEST_FAILED;
        return rc;
    }

    /** &hide */
    public int perfLockRelease() {
        return native_perf_lock_rel(handle);
Loading