Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java

Issue 2004633002: Add drawer with state information (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Format_old Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
diff --git a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
index 4b890bd5e1279cb2437a205d581b54aa04dffabc..0dee3e041d88b904c9623954fb794fc56e13b1c8 100644
--- a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
+++ b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
@@ -12,6 +12,7 @@ import android.app.Application;
public class ViewerApplication extends Application {
private long mNativeHandle = 0;
private ViewerActivity mViewerActivity;
+ private String mStateJsonStr;
static {
System.loadLibrary("skia_android");
@@ -41,7 +42,12 @@ public class ViewerApplication extends Application {
}
public void setViewerActivity(ViewerActivity viewerActivity) {
- this.mViewerActivity = viewerActivity;
+ mViewerActivity = viewerActivity;
+ // Note that viewerActivity might be null (called by onDestroy)
+ if (mStateJsonStr != null && mViewerActivity != null) {
+ // A new ViewerActivity is created, initialize its state
+ mViewerActivity.updateState(mStateJsonStr);
+ }
}
public void setTitle(String title) {
@@ -55,4 +61,18 @@ public class ViewerApplication extends Application {
});
}
}
+
+ public void updateState(String stateJsonStr) {
+ // We have to store this state because ViewerActivity may be destroyed while the native app
+ // is still running. When a new ViewerActivity is created, we'll pass the state to it.
+ mStateJsonStr = stateJsonStr;
+ if (mViewerActivity != null) {
+ mViewerActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mViewerActivity.updateState(mStateJsonStr);
+ }
+ });
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698