summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAdrian Salido <salidoa@google.com>2018-12-05 17:19:57 -0800
committerAdrian Salido <salidoa@google.com>2018-12-05 17:19:57 -0800
commit7e84d33602bf8486df5db2fe1b3a2a50b3c8c428 (patch)
treedeaf2cf6c7fd79515d198d0614370471f650eaef /tests
parentb53030f983b8f606a6fed7527605073613895f67 (diff)
TouchLatency: add 60/90hz mode switch
Change-Id: I512579875530bd6c305310cd6ba50fcd0037e4d4
Diffstat (limited to 'tests')
-rw-r--r--tests/TouchLatency/app/build.gradle2
-rw-r--r--tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java47
-rw-r--r--tests/TouchLatency/app/src/main/res/layout/activity_touch_latency.xml1
-rw-r--r--tests/TouchLatency/app/src/main/res/menu/menu_touch_latency.xml12
-rw-r--r--tests/TouchLatency/app/src/main/res/values/strings.xml1
5 files changed, 60 insertions, 3 deletions
diff --git a/tests/TouchLatency/app/build.gradle b/tests/TouchLatency/app/build.gradle
index 2594322e3727..04a878896f47 100644
--- a/tests/TouchLatency/app/build.gradle
+++ b/tests/TouchLatency/app/build.gradle
@@ -6,7 +6,7 @@ android {
defaultConfig {
applicationId "com.prefabulated.touchlatency"
- minSdkVersion 21
+ minSdkVersion 28
targetSdkVersion 28
versionCode 1
versionName "1.0"
diff --git a/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java b/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java
index 360c22f832b3..ba77a74974d1 100644
--- a/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java
+++ b/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java
@@ -24,11 +24,15 @@ import android.graphics.Paint.Align;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
+import android.view.Display;
+import android.view.Display.Mode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.os.Trace;
+import android.view.Window;
+import android.view.WindowManager;
import java.math.RoundingMode;
import java.text.DecimalFormat;
@@ -219,14 +223,30 @@ class TouchLatencyView extends View implements View.OnTouchListener {
}
public class TouchLatencyActivity extends Activity {
+ private Mode mDisplayModes[];
+ private int mCurrentModeIndex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
Trace.beginSection("TouchLatencyActivity onCreate");
setContentView(R.layout.activity_touch_latency);
mTouchView = findViewById(R.id.canvasView);
+
+ WindowManager wm = getWindowManager();
+ Display display = wm.getDefaultDisplay();
+ mDisplayModes = display.getSupportedModes();
+ Mode currentMode = getWindowManager().getDefaultDisplay().getMode();
+
+ for (int i = 0; i < mDisplayModes.length; i++) {
+ if (currentMode.getModeId() == mDisplayModes[i].getModeId()) {
+ mCurrentModeIndex = i;
+ break;
+ }
+ }
+
Trace.endSection();
}
@@ -236,10 +256,35 @@ public class TouchLatencyActivity extends Activity {
Trace.beginSection("TouchLatencyActivity onCreateOptionsMenu");
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_touch_latency, menu);
+ if (mDisplayModes.length > 1) {
+ MenuItem menuItem = menu.findItem(R.id.display_mode);
+ Mode currentMode = getWindowManager().getDefaultDisplay().getMode();
+ updateDisplayMode(menuItem, currentMode);
+ }
Trace.endSection();
return true;
}
+
+ private void updateDisplayMode(MenuItem menuItem, Mode displayMode) {
+ int fps = (int) displayMode.getRefreshRate();
+ menuItem.setTitle(fps + "hz");
+ menuItem.setVisible(true);
+ }
+
+ public void changeDisplayMode(MenuItem item) {
+ Window w = getWindow();
+ WindowManager.LayoutParams params = w.getAttributes();
+
+ int modeIndex = (mCurrentModeIndex + 1) % mDisplayModes.length;
+ params.preferredDisplayModeId = mDisplayModes[modeIndex].getModeId();
+ w.setAttributes(params);
+
+ updateDisplayMode(item, mDisplayModes[modeIndex]);
+ mCurrentModeIndex = modeIndex;
+ }
+
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Trace.beginSection("TouchLatencyActivity onOptionsItemSelected");
@@ -251,6 +296,8 @@ public class TouchLatencyActivity extends Activity {
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
mTouchView.changeMode(item);
+ } else if (id == R.id.display_mode) {
+ changeDisplayMode(item);
}
Trace.endSection();
diff --git a/tests/TouchLatency/app/src/main/res/layout/activity_touch_latency.xml b/tests/TouchLatency/app/src/main/res/layout/activity_touch_latency.xml
index 8d20ff24bfe5..625757610154 100644
--- a/tests/TouchLatency/app/src/main/res/layout/activity_touch_latency.xml
+++ b/tests/TouchLatency/app/src/main/res/layout/activity_touch_latency.xml
@@ -18,6 +18,7 @@
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
+ android:keepScreenOn="true"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".TouchLatencyActivity">
<com.prefabulated.touchlatency.TouchLatencyView
diff --git a/tests/TouchLatency/app/src/main/res/menu/menu_touch_latency.xml b/tests/TouchLatency/app/src/main/res/menu/menu_touch_latency.xml
index 5aef72e8d383..52be91900ae8 100644
--- a/tests/TouchLatency/app/src/main/res/menu/menu_touch_latency.xml
+++ b/tests/TouchLatency/app/src/main/res/menu/menu_touch_latency.xml
@@ -15,6 +15,14 @@
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" tools:context=".TouchLatencyActivity">
- <item android:id="@+id/action_settings" android:title="@string/mode"
- android:orderInCategory="100" android:showAsAction="always" />
+ <item
+ android:id="@+id/action_settings"
+ android:orderInCategory="101"
+ android:showAsAction="always"
+ android:title="@string/mode"/>
+ <item
+ android:id="@+id/display_mode"
+ android:showAsAction="ifRoom"
+ android:title="@string/display_mode"
+ android:visible="false"/>
</menu>
diff --git a/tests/TouchLatency/app/src/main/res/values/strings.xml b/tests/TouchLatency/app/src/main/res/values/strings.xml
index b97f095d501e..771992c8e5d3 100644
--- a/tests/TouchLatency/app/src/main/res/values/strings.xml
+++ b/tests/TouchLatency/app/src/main/res/values/strings.xml
@@ -17,4 +17,5 @@
<string name="app_name">Touch Latency</string>
<string name="mode">Touch</string>
+ <string name="display_mode">Mode</string>
</resources>