From 6aa653a46dd8774ceb01e24a004551b57d98937b Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Thu, 16 Aug 2018 13:35:38 +0200 Subject: [PATCH] Show animation status --- .../src/main/java/com/mozilla/servo/MainActivity.java | 11 +++++++++++ .../servoapp/src/main/res/layout/activity_main.xml | 11 +++++++++++ .../src/main/java/com/mozilla/servoview/Servo.java | 6 ++++++ .../main/java/com/mozilla/servoview/ServoView.java | 9 +++++++++ 4 files changed, 37 insertions(+) diff --git a/support/android/apk/servoapp/src/main/java/com/mozilla/servo/MainActivity.java b/support/android/apk/servoapp/src/main/java/com/mozilla/servo/MainActivity.java index 794e8ae5564..15a0d49e0c8 100644 --- a/support/android/apk/servoapp/src/main/java/com/mozilla/servo/MainActivity.java +++ b/support/android/apk/servoapp/src/main/java/com/mozilla/servo/MainActivity.java @@ -18,6 +18,7 @@ import android.webkit.URLUtil; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; +import android.widget.TextView; import com.mozilla.servoview.ServoView; import com.mozilla.servoview.Servo; @@ -35,6 +36,7 @@ public class MainActivity extends Activity implements Servo.Client { Button mStopButton; EditText mUrlField; ProgressBar mProgressBar; + TextView mIdleText; @Override @@ -49,6 +51,7 @@ public class MainActivity extends Activity implements Servo.Client { mStopButton = findViewById(R.id.stopbutton); mUrlField = findViewById(R.id.urlfield); mProgressBar = findViewById(R.id.progressbar); + mIdleText = findViewById(R.id.redrawing); mBackButton.setEnabled(false); mFwdButton.setEnabled(false); @@ -151,6 +154,14 @@ public class MainActivity extends Activity implements Servo.Client { mFwdButton.setEnabled(canGoForward); } + public void onRedrawing(boolean redrawing) { + if (redrawing) { + mIdleText.setText("LOOP"); + } else { + mIdleText.setText("IDLE"); + } + } + @Override public void onPause() { mServoView.onPause(); diff --git a/support/android/apk/servoapp/src/main/res/layout/activity_main.xml b/support/android/apk/servoapp/src/main/res/layout/activity_main.xml index 2d8fab9c663..b8ae7fb94c3 100644 --- a/support/android/apk/servoapp/src/main/res/layout/activity_main.xml +++ b/support/android/apk/servoapp/src/main/res/layout/activity_main.xml @@ -82,6 +82,17 @@ android:text="Rld" android:textSize="10sp" /> + + mClient.onHistoryChanged(canGoBack, canGoForward)); } + public void onRedrawing(boolean redrawing) { + mRunCallback.inUIThread(() -> mClient.onRedrawing(redrawing)); + } + public byte[] readfile(String file) { try { InputStream stream = mAssetMgr.open(file); diff --git a/support/android/apk/servoview/src/main/java/com/mozilla/servoview/ServoView.java b/support/android/apk/servoview/src/main/java/com/mozilla/servoview/ServoView.java index ffc0c4504b7..c886b44ea4a 100644 --- a/support/android/apk/servoview/src/main/java/com/mozilla/servoview/ServoView.java +++ b/support/android/apk/servoview/src/main/java/com/mozilla/servoview/ServoView.java @@ -55,6 +55,8 @@ public class ServoView extends GLSurfaceView private boolean mZooming; private float mZoomFactor = 1; + private boolean mRedrawing; + public ServoView(Context context, AttributeSet attrs) { super(context, attrs); mActivity = (Activity) context; @@ -152,6 +154,10 @@ public class ServoView extends GLSurfaceView } public void doFrame(long frameTimeNanos) { + if (!mRedrawing) { + mRedrawing = true; + mClient.onRedrawing(mRedrawing); + } // 3 reasons to be here: animating or scrolling/flinging or pinching @@ -191,6 +197,9 @@ public class ServoView extends GLSurfaceView if (mZooming || mScrolling || mAnimating) { Choreographer.getInstance().postFrameCallback(this); + } else { + mRedrawing = false; + mClient.onRedrawing(mRedrawing); } }