diff options
| author | 2009-03-27 16:10:37 -0700 | |
|---|---|---|
| committer | 2009-03-27 16:10:37 -0700 | |
| commit | 24fd77d44088011c88c55a5de459e75792bb2ecb (patch) | |
| tree | 9e814e309f97b869d3c558f719a05d63d4707edd /libs/surfaceflinger/OrientationAnimation.cpp | |
| parent | ecbeaa0cf1cd0bf1bcb00bb25502137db5a9847f (diff) | |
AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
  Original author: mathias
  Merged from: //branches/cupcake/...
Automated import of CL 143171
Diffstat (limited to 'libs/surfaceflinger/OrientationAnimation.cpp')
| -rw-r--r-- | libs/surfaceflinger/OrientationAnimation.cpp | 31 | 
1 files changed, 15 insertions, 16 deletions
diff --git a/libs/surfaceflinger/OrientationAnimation.cpp b/libs/surfaceflinger/OrientationAnimation.cpp index e59688e43a..70eec8d68e 100644 --- a/libs/surfaceflinger/OrientationAnimation.cpp +++ b/libs/surfaceflinger/OrientationAnimation.cpp @@ -44,10 +44,14 @@ OrientationAnimation::~OrientationAnimation()  {  } -void OrientationAnimation::onOrientationChanged() +void OrientationAnimation::onOrientationChanged(uint32_t type)  { -    if (mState == DONE) -        mState = PREPARE; +    if (mState == DONE) { +        mType = type; +        if (!(type & ISurfaceComposer::eOrientationAnimationDisable)) { +            mState = PREPARE; +        } +    }  }  void OrientationAnimation::onAnimationFinished() @@ -82,14 +86,7 @@ bool OrientationAnimation::run_impl()  bool OrientationAnimation::done()  { -    if (mFlinger->isFrozen()) { -        // we are not allowed to draw, but pause a bit to make sure -        // apps don't end up using the whole CPU, if they depend on -        // surfaceflinger for synchronization. -        usleep(8333); // 8.3ms ~ 120fps -        return true; -    } -    return false; +    return done_impl();  }  bool OrientationAnimation::prepare() @@ -115,11 +112,13 @@ bool OrientationAnimation::prepare()      LayerOrientationAnimBase* l; -    l = new LayerOrientationAnim( -            mFlinger.get(), 0, this, bitmap, bitmapIn); - -    //l = new LayerOrientationAnimRotate( -    //        mFlinger.get(), 0, this, bitmap, bitmapIn); +    if (mType & 0x80) { +        l = new LayerOrientationAnimRotate( +                mFlinger.get(), 0, this, bitmap, bitmapIn); +    } else { +        l = new LayerOrientationAnim( +                mFlinger.get(), 0, this, bitmap, bitmapIn); +    }      l->initStates(w, h, 0);      l->setLayer(INT_MAX-1);  |