diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-06-27 03:13:34 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-06-27 03:13:34 +0000 |
commit | 77c5450293e82576a1385bdac17ecc6c0baacf97 (patch) | |
tree | 7a92f9128ce76b7ae36a5cee13e6328dd87f287b | |
parent | 80510aa181c7e61b3c1fe1dcfe50fdddb6776d39 (diff) | |
parent | dbf9ada7d8c0241e1eac6b5a1541b7e7ee82cc07 (diff) | |
download | android_packages_wallpapers_LivePicker-77c5450293e82576a1385bdac17ecc6c0baacf97.tar.gz android_packages_wallpapers_LivePicker-77c5450293e82576a1385bdac17ecc6c0baacf97.tar.bz2 android_packages_wallpapers_LivePicker-77c5450293e82576a1385bdac17ecc6c0baacf97.zip |
Snap for 5691478 from dbf9ada7d8c0241e1eac6b5a1541b7e7ee82cc07 to qt-qpr1-release
Change-Id: Ia349637bc7da9587862dc50040c235a73fbe7b2c
-rw-r--r-- | src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java | 72 |
1 files changed, 34 insertions, 38 deletions
diff --git a/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java b/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java index 65e0e6c..fbae006 100644 --- a/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java +++ b/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java @@ -154,6 +154,13 @@ public class LiveWallpaperPreview extends Activity { mWallpaperManager = WallpaperManager.getInstance(this); mWallpaperConnection = new WallpaperConnection(mWallpaperIntent); + getWindow().getDecorView().post(new Runnable() { + public void run() { + if (!mWallpaperConnection.connect()) { + mWallpaperConnection = null; + } + } + }); if (!TextUtils.isEmpty(deleteAction)) { mDeleteIntent = new Intent(deleteAction); @@ -517,48 +524,17 @@ public class LiveWallpaperPreview extends Activity { @Override public void onResume() { super.onResume(); - if (mWallpaperConnection != null && mWallpaperConnection.mEngine != null) { - try { - mWallpaperConnection.mEngine.setVisibility(true); - } catch (RemoteException e) { - // Ignore - } + if (mWallpaperConnection != null) { + mWallpaperConnection.setVisibility(true); } } @Override public void onPause() { super.onPause(); - if (mWallpaperConnection != null && mWallpaperConnection.mEngine != null) { - try { - mWallpaperConnection.mEngine.setVisibility(false); - } catch (RemoteException e) { - // Ignore - } - } - } - - @Override - public void onAttachedToWindow() { - super.onAttachedToWindow(); - - getWindow().getDecorView().post(new Runnable() { - public void run() { - if (!mWallpaperConnection.connect()) { - mWallpaperConnection = null; - } - } - }); - } - - @Override - public void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (mWallpaperConnection != null) { - mWallpaperConnection.disconnect(); + mWallpaperConnection.setVisibility(false); } - mWallpaperConnection = null; } @Override @@ -567,6 +543,10 @@ public class LiveWallpaperPreview extends Activity { mLiveDataSettings.removeObserver(mSliceViewSettings); mLiveDataSettings = null; } + if (mWallpaperConnection != null) { + mWallpaperConnection.disconnect(); + } + mWallpaperConnection = null; super.onDestroy(); } @@ -610,6 +590,8 @@ public class LiveWallpaperPreview extends Activity { IWallpaperService mService; IWallpaperEngine mEngine; boolean mConnected; + boolean mIsVisible; + boolean mIsEngineVisible; WallpaperConnection(Intent intent) { mIntent = intent; @@ -675,10 +657,8 @@ public class LiveWallpaperPreview extends Activity { synchronized (this) { if (mConnected) { mEngine = engine; - try { - engine.setVisibility(true); - } catch (RemoteException e) { - // Ignore + if (mIsVisible) { + setEngineVisibility(true); } } else { try { @@ -712,6 +692,22 @@ public class LiveWallpaperPreview extends Activity { .withEndAction(() -> mLoading.setVisibility(View.INVISIBLE)); }); } + + public void setVisibility(boolean visible) { + mIsVisible = visible; + setEngineVisibility(visible); + } + + private void setEngineVisibility(boolean visible) { + if (mEngine != null && visible != mIsEngineVisible) { + try { + mEngine.setVisibility(visible); + mIsEngineVisible = visible; + } catch (RemoteException e) { + Log.w(LOG_TAG, "Failure setting wallpaper visibility ", e); + } + } + } } private static class WallpaperTargetAdapter extends ArrayAdapter<CharSequence> { |