diff options
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 14 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 25e80d7f08..51fcce43e6 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -148,7 +148,7 @@ void SurfaceFlinger::binderDied(const wp<IBinder>& who) setTransactionState(state, eOrientationDefault, 0); // restart the boot-animation - property_set("ctl.start", "bootanim"); + startBootAnim(); } sp<IMemoryHeap> SurfaceFlinger::getCblk() const @@ -201,7 +201,9 @@ void SurfaceFlinger::bootFinished() } // stop boot animation - property_set("ctl.stop", "bootanim"); + // formerly we would just kill the process, but we now ask it to exit so it + // can choose where to stop the animation. + property_set("service.bootanim.exit", "1"); } static inline uint16_t pack565(int r, int g, int b) { @@ -306,11 +308,17 @@ status_t SurfaceFlinger::readyToRun() mReadyToRunBarrier.open(); // start boot animation - property_set("ctl.start", "bootanim"); + startBootAnim(); return NO_ERROR; } +void SurfaceFlinger::startBootAnim() { + // start boot animation + property_set("service.bootanim.exit", "0"); + property_set("ctl.start", "bootanim"); +} + // ---------------------------------------------------------------------------- bool SurfaceFlinger::authenticateSurfaceTexture( diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index d9c20338ed..b20973bccc 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -351,6 +351,8 @@ private: void debugFlashRegions(); void drawWormhole() const; + void startBootAnim(); + void listLayersLocked(const Vector<String16>& args, size_t& index, String8& result, char* buffer, size_t SIZE) const; void dumpStatsLocked(const Vector<String16>& args, size_t& index, |