diff options
55 files changed, 350 insertions, 232 deletions
@@ -3,3 +3,4 @@ alehmer@google.com spfetsch@google.com gkasten@google.com +taikuo@google.com diff --git a/android/WALT/app/build.gradle b/android/WALT/app/build.gradle index 71a473c..d3fd5ae 100644 --- a/android/WALT/app/build.gradle +++ b/android/WALT/app/build.gradle @@ -36,18 +36,19 @@ android { } dependencies { - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:design:27.1.1' - implementation 'com.android.support:preference-v7:27.1.1' - implementation 'com.android.support:preference-v14:27.1.1' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.1.0' + implementation 'androidx.preference:preference:1.1.1' + implementation 'androidx.legacy:legacy-preference-v14:1.0.0' implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1' - testImplementation 'junit:junit:4.12' + implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' + testImplementation 'junit:junit:4.13' testImplementation 'org.mockito:mockito-core:1.10.19' - testImplementation ('org.powermock:powermock-api-mockito:1.6.2') { + testImplementation ('org.powermock:powermock-api-mockito:1.6.6') { exclude module: 'hamcrest-core' exclude module: 'objenesis' } - testImplementation ('org.powermock:powermock-module-junit4:1.6.2') { + testImplementation ('org.powermock:powermock-module-junit4:1.6.6') { exclude module: 'hamcrest-core' exclude module: 'objenesis' } diff --git a/android/WALT/app/src/main/AndroidManifest.xml b/android/WALT/app/src/main/AndroidManifest.xml index 869b5e8..992d368 100644 --- a/android/WALT/app/src/main/AndroidManifest.xml +++ b/android/WALT/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" package="org.chromium.latency.walt"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> @@ -9,9 +10,12 @@ <application android:allowBackup="true" + android:supportsRtl="true" + android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + tools:ignore="LockedOrientationActivity"> <activity android:name="org.chromium.latency.walt.MainActivity" android:label="@string/app_name" diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java index 08b4e4f..2dce815 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java @@ -19,11 +19,13 @@ package org.chromium.latency.walt; import android.os.Build; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import java.util.Locale; + +import androidx.fragment.app.Fragment; /** @@ -46,7 +48,7 @@ public class AboutFragment extends Fragment { public void onResume() { super.onResume(); TextView textView = (TextView) getActivity().findViewById(R.id.txt_build_info); - String text = String.format("WALT v%s (versionCode=%d)\n", + String text = String.format(Locale.US, "WALT v%s (versionCode=%d)\n", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE); text += "WALT protocol version: " + WaltDevice.PROTOCOL_VERSION + "\n"; text += "Android Build ID: " + Build.DISPLAY + "\n"; diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java index 3ed677c..4f39547 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java @@ -16,6 +16,12 @@ package org.chromium.latency.walt; +import static org.chromium.latency.walt.Utils.argmax; +import static org.chromium.latency.walt.Utils.interp; +import static org.chromium.latency.walt.Utils.max; +import static org.chromium.latency.walt.Utils.mean; +import static org.chromium.latency.walt.Utils.min; + import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -27,7 +33,6 @@ import android.hardware.SensorManager; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; @@ -35,6 +40,8 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; +import androidx.fragment.app.Fragment; + import com.github.mikephil.charting.charts.ScatterChart; import com.github.mikephil.charting.components.Description; import com.github.mikephil.charting.data.Entry; @@ -44,12 +51,7 @@ import com.github.mikephil.charting.data.ScatterDataSet; import java.io.IOException; import java.util.ArrayList; import java.util.List; - -import static org.chromium.latency.walt.Utils.argmax; -import static org.chromium.latency.walt.Utils.interp; -import static org.chromium.latency.walt.Utils.max; -import static org.chromium.latency.walt.Utils.mean; -import static org.chromium.latency.walt.Utils.min; +import java.util.Locale; public class AccelerometerFragment extends Fragment implements View.OnClickListener, SensorEventListener { @@ -310,7 +312,7 @@ public class AccelerometerFragment extends Fragment implements double[] shifts = findShifts(phoneEntries, waltSmoothEntries); double bestShift = argmax(shifts) / 10d; - logger.log(String.format("Accelerometer latency: %.1fms", bestShift)); + logger.log(String.format(Locale.US, "Accelerometer latency: %.1fms", bestShift)); double[] deltasKernelToCallback = new double[phoneAccelerometerData.size()]; for (int i = 0; i < deltasKernelToCallback.length; i++) { @@ -319,7 +321,7 @@ public class AccelerometerFragment extends Fragment implements } logger.log(String.format( - "Mean kernel-to-callback latency: %.1fms", mean(deltasKernelToCallback))); + Locale.US, "Mean kernel-to-callback latency: %.1fms", mean(deltasKernelToCallback))); List<Entry> phoneEntriesShifted = new ArrayList<>(); for (Entry e : phoneEntries) { diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java index 65452ff..3db3723 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java @@ -16,6 +16,8 @@ package org.chromium.latency.walt; +import static org.chromium.latency.walt.Utils.getIntPreference; + import android.Manifest; import android.content.BroadcastReceiver; import android.content.Context; @@ -24,8 +26,6 @@ import android.content.pm.PackageManager; import android.graphics.Color; import android.media.AudioManager; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; @@ -34,6 +34,9 @@ import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; + import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.components.Description; import com.github.mikephil.charting.components.LimitLine; @@ -45,8 +48,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import static org.chromium.latency.walt.Utils.getIntPreference; - /** * A simple {@link Fragment} subclass. */ diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java index f2f2a7f..71f5979 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java @@ -21,14 +21,15 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; + import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java index f0e6c62..4726d12 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java @@ -24,7 +24,8 @@ import android.content.IntentFilter; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbManager; -import android.support.v4.content.LocalBroadcastManager; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; import java.util.HashMap; import java.util.Locale; @@ -44,7 +45,7 @@ public abstract class BaseUsbConnection { protected UsbDeviceConnection usbConnection; public BaseUsbConnection(Context context) { - this.context = context; + this.context = context.getApplicationContext(); usbManager = (UsbManager) this.context.getSystemService(Context.USB_SERVICE); logger = SimpleLogger.getInstance(context); broadcastManager = LocalBroadcastManager.getInstance(context); @@ -184,7 +185,8 @@ public abstract class BaseUsbConnection { public UsbDevice findUsbDevice() { - logger.log(String.format("Looking for TeensyUSB VID=0x%x PID=0x%x", getVid(), getPid())); + logger.log(String.format(Locale.US, + "Looking for TeensyUSB VID=0x%x PID=0x%x", getVid(), getPid())); HashMap<String, UsbDevice> deviceHash = usbManager.getDeviceList(); if (deviceHash.size() == 0) { diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java index 00e80ed..f2ce3d1 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java @@ -17,10 +17,11 @@ package org.chromium.latency.walt; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.text.method.ScrollingMovementMethod; import android.widget.TextView; +import androidx.appcompat.app.AppCompatActivity; + /** * A separate activity to display exception trace on the screen in case of a crash. diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java index 65ec3bf..17b0f2f 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java @@ -21,13 +21,14 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.fragment.app.Fragment; + /** * This screen allows to perform different tasks useful for diagnostics. diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java index af03e36..9453c04 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java @@ -16,12 +16,12 @@ package org.chromium.latency.walt; +import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -29,6 +29,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.fragment.app.Fragment; + import com.github.mikephil.charting.charts.ScatterChart; import com.github.mikephil.charting.components.Description; import com.github.mikephil.charting.data.Entry; @@ -67,6 +69,7 @@ public class DragLatencyFragment extends Fragment } }; + @SuppressLint("ClickableViewAccessibility") private View.OnTouchListener touchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { @@ -143,6 +146,7 @@ public class DragLatencyFragment extends Fragment /** * @return true if measurement was successfully started */ + @SuppressLint("ClickableViewAccessibility") boolean startMeasurement() { logger.log("Starting drag latency test"); try { @@ -185,6 +189,7 @@ public class DragLatencyFragment extends Fragment updateCountsDisplay(); } + @SuppressLint("ClickableViewAccessibility") void finishAndShowStats() { touchCatcher.stopAnimation(); waltDevice.stopListener(); diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java index 449627f..0c5ad59 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java @@ -22,13 +22,14 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.os.Build; -import android.support.annotation.RequiresApi; import android.util.AttributeSet; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.widget.Toast; +import androidx.annotation.RequiresApi; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java index cb125e3..84fbbbe 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java @@ -18,13 +18,14 @@ package org.chromium.latency.walt; import android.graphics.Color; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import androidx.fragment.app.Fragment; + /** * A simple {@link Fragment} subclass. diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java index 069d032..1e26b32 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java @@ -17,25 +17,26 @@ package org.chromium.latency.walt; -import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; + /** * A screen that shows the log. */ public class LogFragment extends Fragment { - private Activity activity; + private AppCompatActivity activity; private SimpleLogger logger; TextView textView; @@ -56,7 +57,7 @@ public class LogFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - activity = getActivity(); + activity = (AppCompatActivity) getActivity(); logger = SimpleLogger.getInstance(getContext()); // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_log, container, false); diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java index a73f456..aa10f74 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java @@ -17,7 +17,8 @@ package org.chromium.latency.walt; import android.content.Context; -import android.support.v4.content.AsyncTaskLoader; + +import androidx.loader.content.AsyncTaskLoader; import java.io.BufferedOutputStream; import java.io.IOException; diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java index e0d0d75..81a637b 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java @@ -16,6 +16,8 @@ package org.chromium.latency.walt; +import static org.chromium.latency.walt.Utils.getBooleanPreference; + import android.Manifest; import android.content.DialogInterface; import android.content.Intent; @@ -30,18 +32,6 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.StrictMode; -import android.preference.PreferenceManager; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.content.ContextCompat; -import android.support.v4.content.Loader; -import android.support.v4.content.LocalBroadcastManager; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -49,7 +39,18 @@ import android.view.View; import android.widget.EditText; import android.widget.Toast; -import org.chromium.latency.walt.programmer.Programmer; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; +import androidx.loader.content.Loader; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.preference.PreferenceManager; import java.io.File; import java.io.FileOutputStream; @@ -59,7 +60,7 @@ import java.io.StringWriter; import java.util.Date; import java.util.Locale; -import static org.chromium.latency.walt.Utils.getBooleanPreference; +import org.chromium.latency.walt.programmer.Programmer; public class MainActivity extends AppCompatActivity { private static final String TAG = "WALT"; @@ -218,7 +219,7 @@ public class MainActivity extends AppCompatActivity { broadcastManager = LocalBroadcastManager.getInstance(this); // Add basic version and device info to the log - logger.log(String.format("WALT v%s (versionCode=%d)", + logger.log(String.format(Locale.US, "WALT v%s (versionCode=%d)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)); logger.log("WALT protocol version " + WaltDevice.PROTOCOL_VERSION); logger.log("DEVICE INFO:"); @@ -354,13 +355,8 @@ public class MainActivity extends AppCompatActivity { } public void onClickPing(View view) { - long t1 = waltDevice.clock.micros(); try { - waltDevice.command(WaltDevice.CMD_PING); - long dt = waltDevice.clock.micros() - t1; - logger.log(String.format(Locale.US, - "Ping reply in %.1fms", dt / 1000. - )); + waltDevice.ping(); } catch (IOException e) { logger.log("Error sending ping: " + e.getMessage()); } @@ -492,7 +488,7 @@ public class MainActivity extends AppCompatActivity { // A reasonable world readable location,on many phones it's /storage/emulated/Documents // TODO: make this location configurable? - File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); + File path = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS); File file = null; FileOutputStream outStream = null; @@ -516,7 +512,7 @@ public class MainActivity extends AppCompatActivity { } public void clearLogFile() { - File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); + File path = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS); try { File file = new File(path, LOG_FILENAME); file.delete(); @@ -546,7 +542,8 @@ public class MainActivity extends AppCompatActivity { } private static boolean startsWithHttp(String url) { - return url.toLowerCase().startsWith("http://") || url.toLowerCase().startsWith("https://"); + return url.toLowerCase(Locale.getDefault()).startsWith("http://") || + url.toLowerCase(Locale.getDefault()).startsWith("https://"); } private void showUploadLogDialog() { diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java index c6f1118..8d3fe6a 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java @@ -20,13 +20,14 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.fragment.app.Fragment; + import java.util.Locale; public class MidiFragment extends Fragment diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java index 9d71d42..cf4ef55 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java @@ -19,13 +19,15 @@ package org.chromium.latency.walt; import android.content.Context; import android.content.res.TypedArray; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v7.preference.DialogPreference; -import android.support.v7.preference.PreferenceDialogFragmentCompat; import android.util.AttributeSet; import android.view.View; +import androidx.annotation.NonNull; +import androidx.preference.DialogPreference; +import androidx.preference.PreferenceDialogFragmentCompat; + public class NumberPickerPreference extends DialogPreference { + private boolean isInitSet = false; private int currentValue; private int maxValue; private int minValue; @@ -62,9 +64,13 @@ public class NumberPickerPreference extends DialogPreference { } public void setValue(int value) { - currentValue = value; - persistInt(currentValue); - setSummary(String.format(defaultSummary, getValue())); + boolean changed = (currentValue != value); + if (changed || !isInitSet) { + isInitSet = true; + currentValue = value; + persistInt(currentValue); + setSummary(String.format(defaultSummary, getValue())); + } } @Override @@ -73,8 +79,8 @@ public class NumberPickerPreference extends DialogPreference { } @Override - protected void onSetInitialValue(boolean restorePersistedValue, Object defaultValue) { - setValue(restorePersistedValue ? getPersistedInt(currentValue) : (Integer) defaultValue); + protected void onSetInitialValue(Object defaultValue) { + setValue((Integer) defaultValue); } public static class NumberPickerPreferenceDialogFragmentCompat diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java index 629ed7d..d1ebfac 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java @@ -16,16 +16,15 @@ package org.chromium.latency.walt; +import static org.chromium.latency.walt.Utils.getBooleanPreference; +import static org.chromium.latency.walt.Utils.getIntPreference; + import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; -import android.support.v4.app.Fragment; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; import android.text.method.ScrollingMovementMethod; import android.view.Choreographer; import android.view.LayoutInflater; @@ -36,6 +35,11 @@ import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; + import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.components.Description; import com.github.mikephil.charting.data.Entry; @@ -47,9 +51,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import static org.chromium.latency.walt.Utils.getBooleanPreference; -import static org.chromium.latency.walt.Utils.getIntPreference; - /** * Measurement of screen response time when switching between black and white. */ diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java index 4f74fc4..ace30cc 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java @@ -18,19 +18,21 @@ package org.chromium.latency.walt; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.content.ContextCompat; -import android.support.v7.preference.Preference; -import android.support.v7.preference.PreferenceFragmentCompat; -import android.support.v7.preference.PreferenceScreen; -import android.support.v7.widget.Toolbar; import android.view.View; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceScreen; -public class SettingsFragment extends PreferenceFragmentCompat implements PreferenceFragmentCompat.OnPreferenceStartScreenCallback { + +public class SettingsFragment extends PreferenceFragmentCompat implements + PreferenceFragmentCompat.OnPreferenceStartScreenCallback { private Toolbar toolbar; @@ -70,8 +72,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer DialogFragment fragment = NumberPickerPreference. NumberPickerPreferenceDialogFragmentCompat.newInstance(preference.getKey()); fragment.setTargetFragment(this, 0); - fragment.show(getFragmentManager(), - "android.support.v7.preference.PreferenceFragment.DIALOG"); + fragment.show(getParentFragmentManager(), + "androidx.preference.PreferenceFragment.DIALOG"); } else { super.onDisplayPreferenceDialog(preference); } @@ -90,7 +92,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer args.putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, preferenceScreen.getKey()); fragment.setArguments(args); - FragmentTransaction ft = preferenceFragmentCompat.getFragmentManager().beginTransaction(); + FragmentTransaction ft = preferenceFragmentCompat. + getParentFragmentManager().beginTransaction(); ft.add(R.id.fragment_container, fragment, preferenceScreen.getKey()); ft.addToBackStack(preferenceScreen.getTitle().toString()); ft.commit(); diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java index 6059e0f..9244377 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java @@ -20,7 +20,9 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.support.v4.content.LocalBroadcastManager; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + import android.util.Log; /** diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java index e26a328..ca0e80b 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java @@ -16,11 +16,11 @@ package org.chromium.latency.walt; +import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -29,6 +29,8 @@ import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.TextView; +import androidx.fragment.app.Fragment; + import java.io.IOException; import java.util.ArrayList; import java.util.Locale; @@ -71,6 +73,7 @@ public class TapLatencyFragment extends Fragment } }; + @SuppressLint("ClickableViewAccessibility") private View.OnTouchListener touchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { @@ -212,6 +215,7 @@ public class TapLatencyFragment extends Fragment moveCountsView.setText(String.format(Locale.US, "⇄ %d", moveCount)); } + @SuppressLint("ClickableViewAccessibility") void restartMeasurement() { logger.log("\n## Restarting tap latency measurement. Re-sync clocks ..."); try { @@ -241,6 +245,7 @@ public class TapLatencyFragment extends Fragment tapCatcherView.setOnTouchListener(touchListener); } + @SuppressLint("ClickableViewAccessibility") void finishAndShowStats() { tapCatcherView.setOnTouchListener(null); waltDevice.checkDrift(); diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java index 6fdb8d9..964e9c6 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.Locale; /** * Used to log events for Android systrace @@ -58,12 +59,13 @@ class TraceLogger { StringBuilder sb = new StringBuilder(); int pid = android.os.Process.myPid(); for (TraceEvent e : traceEvents) { - sb.append(String.format( - "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: B|%d|%s|description=%s|WALT\n", - pid, df.format(e.startTimeMicros / 1e6), pid, e.title, e.description)); - sb.append(String.format( - "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: E|%d|%s||WALT\n", - pid, df.format(e.finishTimeMicros / 1e6), pid, e.title)); + sb.append(String.format(Locale.US, + "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: " + + "B|%d|%s|description=%s|WALT\n", + pid, df.format(e.startTimeMicros / 1e6), pid, e.title, e.description)); + sb.append(String.format(Locale.US, + "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: E|%d|%s||WALT\n", + pid, df.format(e.finishTimeMicros / 1e6), pid, e.title)); } return sb.toString(); } @@ -85,7 +87,7 @@ class TraceLogger { OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file, true)); writer.write(getLogText()); writer.close(); - logger.log(String.format("TraceLogger wrote %d events to %s", + logger.log(String.format(Locale.US, "TraceLogger wrote %d events to %s", traceEvents.size(), file.getAbsolutePath())); } catch (IOException e) { logger.log("ERROR: IOException writing to trace.txt"); diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java index e961949..f68e461 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java @@ -20,6 +20,7 @@ import android.util.Log; import android.view.MotionEvent; import java.lang.reflect.Method; +import java.util.Locale; /** * A convenient representation of MotionEvent events @@ -71,13 +72,13 @@ public class UsMotionEvent { public String toString() { - return String.format("%d %f %f", + return String.format(Locale.US, "%d %f %f", kernelTime, x, y); } public String toStringLong() { - return String.format("Event: t=%d x=%.1f y=%.1f slot=%d num=%d %s", + return String.format(Locale.US, "Event: t=%d x=%.1f y=%.1f slot=%d num=%d %s", kernelTime, x, y, slot, num, actionToString(action)); } @@ -119,7 +120,7 @@ public class UsMotionEvent { private long getEventTimeMicro(MotionEvent event) { long t_nanos = -1; try { - Class cls = Class.forName("android.view.MotionEvent"); + Class<?> cls = Class.forName("android.view.MotionEvent"); Method myTimeGetter = cls.getMethod("getEventTimeNano"); t_nanos = (long) myTimeGetter.invoke(event); } catch (Exception e) { @@ -132,7 +133,7 @@ public class UsMotionEvent { private long getHistoricalEventTimeMicro(MotionEvent event, int pos) { long t_nanos = -1; try { - Class cls = Class.forName("android.view.MotionEvent"); + Class<?> cls = Class.forName("android.view.MotionEvent"); Method myTimeGetter = cls.getMethod("getHistoricalEventTimeNano", new Class[] {int.class}); t_nanos = (long) myTimeGetter.invoke(event, new Object[]{pos}); } catch (Exception e) { diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java index 97738ce..46796e2 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java @@ -18,8 +18,9 @@ package org.chromium.latency.walt; import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.support.annotation.StringRes; + +import androidx.preference.PreferenceManager; +import androidx.annotation.StringRes; import com.github.mikephil.charting.data.Entry; diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java index 566a890..631afb8 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java @@ -23,6 +23,7 @@ import android.os.Handler; import android.util.Log; import java.io.IOException; +import java.util.Locale; /** * A singleton used as an interface for the physical WALT device. @@ -222,6 +223,19 @@ public class WaltDevice implements WaltConnection.ConnectionStateListener { } } + public void ping() throws IOException { + if (!isConnected() || clock == null) { + throw new IOException("Not connected to WALT"); + } + + long t1 = clock.micros(); + command(CMD_PING); + long dt = clock.micros() - t1; + logger.log(String.format(Locale.US, + "Ping reply in %.1fms", dt / 1000. + )); + } + public void syncClock() throws IOException { clock = connection.syncClock(); } @@ -248,7 +262,7 @@ public class WaltDevice implements WaltConnection.ConnectionStateListener { return; } int drift = Math.abs(clock.getMeanLag()); - String msg = String.format("Remote clock delayed between %d and %d us", + String msg = String.format(Locale.US, "Remote clock delayed between %d and %d us", clock.minLag, clock.maxLag); // TODO: Convert the limit to user editable preference if (drift > DEFAULT_DRIFT_LIMIT_US) { diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java index d2feb01..0f8b1ef 100644 --- a/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java +++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java @@ -24,6 +24,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.text.ParseException; import java.util.Arrays; +import java.util.Locale; class FirmwareImage { private static final String TAG = "FirmwareImage"; @@ -89,7 +90,8 @@ class FirmwareImage { return; } default: { - throw new ParseException(String.format("Unknown code '%x'", code), cur); + throw new ParseException(String.format( + Locale.US, "Unknown code '%x'", code), cur); } } } @@ -119,8 +121,8 @@ class FirmwareImage { dest[addr + i] = parseByte(line, pos + i * 2); mask[addr + i] = true; } catch (ArrayIndexOutOfBoundsException e) { - throw new ParseException(String.format("Address '%x' out of range", addr + i), - pos + i * 2); + throw new ParseException(String.format(Locale.US, + "Address '%x' out of range", addr + i), pos + i * 2); } } } diff --git a/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml index 2e5b3cc..fb95660 100644 --- a/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml +++ b/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml @@ -5,5 +5,5 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> <path android:fillColor="#FF000000" - android:pathData="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"/> + android:pathData="M12 3v10.55c-0.59-0.34-1.27-0.55-2-0.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"/> </vector>
\ No newline at end of file diff --git a/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml index ace746c..896ea9d 100644 --- a/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml +++ b/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml @@ -5,5 +5,5 @@ android:viewportHeight="24.0"> <path android:fillColor="#FF000000" - android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/> + android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/> </vector> diff --git a/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml index ec96a71..6ce20c7 100644 --- a/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml +++ b/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml @@ -5,5 +5,5 @@ android:viewportHeight="24.0"> <path android:fillColor="#FF000000" - android:pathData="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"/> + android:pathData="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h18c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z"/> </vector> diff --git a/android/WALT/app/src/main/res/layout/activity_main.xml b/android/WALT/app/src/main/res/layout/activity_main.xml index 57e7679..ad9a864 100644 --- a/android/WALT/app/src/main/res/layout/activity_main.xml +++ b/android/WALT/app/src/main/res/layout/activity_main.xml @@ -1,27 +1,20 @@ -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:orientation="vertical" tools:context=".MainActivity"> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - - <include - android:id="@+id/toolbar_main" - layout="@layout/toolbar" /> - - <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/fragment_container" - android:layout_width="match_parent" - android:layout_height="match_parent"> + <include + android:id="@+id/toolbar_main" + layout="@layout/toolbar" /> + <FrameLayout + android:id="@+id/fragment_container" + android:layout_width="match_parent" + android:layout_height="match_parent"> - </FrameLayout> - </LinearLayout> + </FrameLayout> -</RelativeLayout> +</LinearLayout>
\ No newline at end of file diff --git a/android/WALT/app/src/main/res/layout/dialog_upload.xml b/android/WALT/app/src/main/res/layout/dialog_upload.xml index be990a2..88983d7 100644 --- a/android/WALT/app/src/main/res/layout/dialog_upload.xml +++ b/android/WALT/app/src/main/res/layout/dialog_upload.xml @@ -9,7 +9,8 @@ android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Enter URL" + android:hint="@string/hint_url" + android:autofillHints="Enter URL" android:inputType="textUri" /> <ProgressBar diff --git a/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml b/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml index 664e246..693287f 100644 --- a/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml +++ b/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml @@ -1,4 +1,5 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -23,7 +24,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/button_tint" - android:src="@drawable/ic_play_arrow_black_24dp" /> + app:srcCompat="@drawable/ic_play_arrow_black_24dp" + android:contentDescription="@string/start" /> </LinearLayout> @@ -55,11 +57,11 @@ android:id="@+id/button_close_chart" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" - android:layout_alignParentTop="true" + android:layout_alignTop="@id/latency_chart" + android:layout_alignEnd="@id/latency_chart" android:tint="@color/button_tint" android:layout_margin="5dp" - android:text="Close" /> + android:text="@string/close" /> </RelativeLayout> <TextView diff --git a/android/WALT/app/src/main/res/layout/fragment_audio.xml b/android/WALT/app/src/main/res/layout/fragment_audio.xml index e11f157..190f658 100644 --- a/android/WALT/app/src/main/res/layout/fragment_audio.xml +++ b/android/WALT/app/src/main/res/layout/fragment_audio.xml @@ -19,24 +19,26 @@ android:id="@+id/button_stop_audio" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" android:tint="@color/button_tint" - android:src="@drawable/ic_stop_black_24dp" /> + walt:srcCompat="@drawable/ic_stop_black_24dp" + android:contentDescription="@string/stop" /> <ImageButton android:id="@+id/button_start_audio" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" android:tint="@color/button_tint" - android:src="@drawable/ic_play_arrow_black_24dp" /> + walt:srcCompat="@drawable/ic_play_arrow_black_24dp" + android:contentDescription="@string/start" /> <Spinner android:id="@+id/spinner_audio_mode" android:layout_height="45dp" android:layout_width="fill_parent" - android:layout_toRightOf="@id/button_stop_audio" - android:layout_toLeftOf="@id/button_start_audio" + android:layout_toEndOf="@id/button_stop_audio" + android:layout_toStartOf="@id/button_start_audio" android:prompt="@string/audio_mode"/> </RelativeLayout> diff --git a/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml b/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml index 82a3cae..2950bac 100644 --- a/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml +++ b/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml @@ -1,4 +1,5 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -23,7 +24,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_usb_black_24dp" /> + app:srcCompat="@drawable/ic_usb_black_24dp" + android:contentDescription="@string/reconnect" /> <LinearLayout android:layout_width="match_parent" @@ -33,12 +35,12 @@ <TextView style="@style/MenuTextTop" - android:text="Reconnect" /> + android:text="@string/reconnect" /> <TextView android:visibility="gone" style="@style/MenuTextBottom" - android:text="TBD: Conn status" /> + android:text="@string/tbd_conn_status" /> </LinearLayout> @@ -54,7 +56,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_swap_horiz_black_24dp" /> + app:srcCompat="@drawable/ic_swap_horiz_black_24dp" + android:contentDescription="@string/ping" /> <LinearLayout android:layout_width="match_parent" @@ -64,11 +67,11 @@ <TextView style="@style/MenuTextTop" - android:text="Ping" /> + android:text="@string/ping" /> <TextView style="@style/MenuTextBottom" - android:text="Ping over USB with 1 byte" /> + android:text="@string/ping_over_usb_with_1_byte" /> </LinearLayout> @@ -84,7 +87,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_schedule_black_24dp" /> + app:srcCompat="@drawable/ic_schedule_black_24dp" + android:contentDescription="@string/re_sync_clocks" /> <LinearLayout android:layout_width="match_parent" @@ -94,7 +98,7 @@ <TextView style="@style/MenuTextTop" - android:text="Re-sync clocks" /> + android:text="@string/re_sync_clocks" /> </LinearLayout> </LinearLayout> @@ -109,7 +113,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_timelapse_black_24dp" /> + app:srcCompat="@drawable/ic_timelapse_black_24dp" + android:contentDescription="@string/check_clock_drift" /> <LinearLayout android:layout_width="match_parent" @@ -119,11 +124,11 @@ <TextView style="@style/MenuTextTop" - android:text="Check clock drift" /> + android:text="@string/check_clock_drift" /> <TextView style="@style/MenuTextBottom" - android:text="Check how much clocks diverged" /> + android:text="@string/check_how_much_clocks_diverged" /> </LinearLayout> @@ -139,7 +144,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_system_update_alt_black_24dp" /> + app:srcCompat="@drawable/ic_system_update_alt_black_24dp" + android:contentDescription="@string/update_walt_firmware" /> <LinearLayout android:layout_width="match_parent" @@ -149,11 +155,11 @@ <TextView style="@style/MenuTextTop" - android:text="Update WALT Firmware" /> + android:text="@string/update_walt_firmware" /> <TextView style="@style/MenuTextBottom" - android:text="Please press the button on the Teensy first" /> + android:text="@string/please_press_the_button_on_the_teensy_first" /> </LinearLayout> diff --git a/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml b/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml index f9b65d0..a5e36c6 100644 --- a/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml +++ b/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml @@ -1,4 +1,5 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -19,21 +20,24 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/button_tint" - android:src="@drawable/ic_refresh_black_24dp" /> + app:srcCompat="@drawable/ic_refresh_black_24dp" + android:contentDescription="@string/restart" /> <ImageButton android:id="@+id/button_start_drag" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/button_tint" - android:src="@drawable/ic_play_arrow_black_24dp" /> + app:srcCompat="@drawable/ic_play_arrow_black_24dp" + android:contentDescription="@string/start" /> <ImageButton android:id="@+id/button_finish_drag" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/button_tint" - android:src="@drawable/ic_check_black_24dp" /> + app:srcCompat="@drawable/ic_check_black_24dp" + android:contentDescription="@string/finish" /> </LinearLayout> <FrameLayout @@ -49,7 +53,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000000" - android:gravity="right" + android:gravity="end" android:orientation="horizontal"> <TextView @@ -92,11 +96,11 @@ android:id="@+id/button_close_chart" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" - android:layout_alignParentTop="true" + android:layout_alignEnd="@id/latency_chart" + android:layout_alignTop="@id/latency_chart" android:tint="@color/button_tint" android:layout_margin="5dp" - android:text="Close" /> + android:text="@string/close" /> </RelativeLayout> <TextView diff --git a/android/WALT/app/src/main/res/layout/fragment_front_page.xml b/android/WALT/app/src/main/res/layout/fragment_front_page.xml index c4fba96..43ef542 100644 --- a/android/WALT/app/src/main/res/layout/fragment_front_page.xml +++ b/android/WALT/app/src/main/res/layout/fragment_front_page.xml @@ -1,4 +1,5 @@ <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" @@ -16,7 +17,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_search_black_24dp" /> + app:srcCompat="@drawable/ic_search_black_24dp" + android:contentDescription="@string/diagnostics" /> <LinearLayout android:layout_width="match_parent" @@ -26,11 +28,11 @@ <TextView style="@style/MenuTextTop" - android:text="Diagnostics" /> + android:text="@string/diagnostics" /> <TextView style="@style/MenuTextBottom" - android:text="TBD: Connection/sync status" + android:text="@string/tbd_connection_sync_status" android:visibility="gone" /> @@ -47,7 +49,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_radio_button_checked_black_24dp" /> + app:srcCompat="@drawable/ic_radio_button_checked_black_24dp" + android:contentDescription="@string/tap_latency" /> <LinearLayout android:layout_width="match_parent" @@ -57,7 +60,7 @@ <TextView style="@style/MenuTextTop" - android:text="Tap latency" /> + android:text="@string/tap_latency" /> </LinearLayout> </LinearLayout> @@ -72,7 +75,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_swap_vert_black_24dp" /> + app:srcCompat="@drawable/ic_swap_vert_black_24dp" + android:contentDescription="@string/drag_latency" /> <LinearLayout android:layout_width="match_parent" @@ -82,7 +86,7 @@ <TextView style="@style/MenuTextTop" - android:text="Drag latency" /> + android:text="@string/drag_latency" /> </LinearLayout> </LinearLayout> @@ -97,7 +101,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_brightness_medium_black_24dp" /> + app:srcCompat="@drawable/ic_brightness_medium_black_24dp" + android:contentDescription="@string/screen_response" /> <LinearLayout android:layout_width="match_parent" @@ -107,7 +112,7 @@ <TextView style="@style/MenuTextTop" - android:text="Screen response" /> + android:text="@string/screen_response" /> </LinearLayout> </LinearLayout> @@ -122,7 +127,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_volume_up_black_24dp" /> + app:srcCompat="@drawable/ic_volume_up_black_24dp" + android:contentDescription="@string/audio_latency" /> <LinearLayout android:layout_width="match_parent" @@ -132,7 +138,7 @@ <TextView style="@style/MenuTextTop" - android:text="Audio latency" /> + android:text="@string/audio_latency" /> </LinearLayout> </LinearLayout> @@ -149,7 +155,8 @@ android:id="@+id/midi_image" style="@style/MenuIconStyle" android:tint="@color/ColorDisabled" - android:src="@drawable/ic_music_note_black_24dp" /> + app:srcCompat="@drawable/ic_music_note_black_24dp" + android:contentDescription="@string/midi_latency" /> <LinearLayout android:layout_width="match_parent" @@ -161,7 +168,7 @@ android:id="@+id/midi_text" style="@style/MenuTextTop" android:textColor="@color/ColorDisabled" - android:text="MIDI latency" /> + android:text="@string/midi_latency" /> </LinearLayout> </LinearLayout> @@ -176,7 +183,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_receipt_black_24dp" /> + app:srcCompat="@drawable/ic_receipt_black_24dp" + android:contentDescription="@string/view_log" /> <LinearLayout android:layout_width="match_parent" @@ -186,7 +194,7 @@ <TextView style="@style/MenuTextTop" - android:text="View log" /> + android:text="@string/view_log" /> </LinearLayout> </LinearLayout> @@ -201,7 +209,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_swap_horiz_black_24dp" /> + app:srcCompat="@drawable/ic_swap_horiz_black_24dp" + android:contentDescription="@string/accelerometer_latency" /> <LinearLayout android:layout_width="match_parent" @@ -211,7 +220,7 @@ <TextView style="@style/MenuTextTop" - android:text="Accelerometer latency" /> + android:text="@string/accelerometer_latency" /> </LinearLayout> </LinearLayout> @@ -226,7 +235,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_settings_black_24dp" /> + app:srcCompat="@drawable/ic_settings_black_24dp" + android:contentDescription="@string/settings" /> <LinearLayout android:layout_width="match_parent" @@ -236,7 +246,7 @@ <TextView style="@style/MenuTextTop" - android:text="Settings" /> + android:text="@string/settings" /> </LinearLayout> @@ -252,7 +262,8 @@ <ImageView style="@style/MenuIconStyle" - android:src="@drawable/ic_help_outline_black_24dp" /> + app:srcCompat="@drawable/ic_help_outline_black_24dp" + android:contentDescription="@string/about" /> <LinearLayout android:layout_width="match_parent" @@ -262,7 +273,7 @@ <TextView style="@style/MenuTextTop" - android:text="About" /> + android:text="@string/about" /> </LinearLayout> </LinearLayout> diff --git a/android/WALT/app/src/main/res/layout/fragment_midi.xml b/android/WALT/app/src/main/res/layout/fragment_midi.xml index 70f9be5..fba287f 100644 --- a/android/WALT/app/src/main/res/layout/fragment_midi.xml +++ b/android/WALT/app/src/main/res/layout/fragment_midi.xml @@ -21,7 +21,8 @@ android:layout_height="wrap_content" android:layout_alignParentStart="true" android:tint="@color/button_tint" - android:src="@drawable/ic_input_black_24dp" /> + walt:srcCompat="@drawable/ic_input_black_24dp" + android:contentDescription="@string/start_midi_in" /> <ImageButton android:id="@+id/button_start_midi_out" @@ -29,7 +30,8 @@ android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:tint="@color/button_tint" - android:src="@drawable/ic_output_black_24dp" /> + walt:srcCompat="@drawable/ic_output_black_24dp" + android:contentDescription="@string/start_midi_out" /> </RelativeLayout> <org.chromium.latency.walt.HistogramChart diff --git a/android/WALT/app/src/main/res/layout/fragment_screen_response.xml b/android/WALT/app/src/main/res/layout/fragment_screen_response.xml index b789579..fc7c107 100644 --- a/android/WALT/app/src/main/res/layout/fragment_screen_response.xml +++ b/android/WALT/app/src/main/res/layout/fragment_screen_response.xml @@ -20,24 +20,26 @@ android:id="@+id/button_stop_screen_response" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" android:tint="@color/button_tint" - android:src="@drawable/ic_stop_black_24dp" /> + walt:srcCompat="@drawable/ic_stop_black_24dp" + android:contentDescription="@string/stop" /> <ImageButton android:id="@+id/button_start_screen_response" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" android:tint="@color/button_tint" - android:src="@drawable/ic_play_arrow_black_24dp" /> + walt:srcCompat="@drawable/ic_play_arrow_black_24dp" + android:contentDescription="@string/start" /> <Spinner android:id="@+id/spinner_screen_response" android:layout_height="45dp" android:layout_width="fill_parent" - android:layout_toRightOf="@id/button_stop_screen_response" - android:layout_toLeftOf="@id/button_start_screen_response" + android:layout_toEndOf="@id/button_stop_screen_response" + android:layout_toStartOf="@id/button_start_screen_response" android:prompt="@string/screen_response_mode"/> </RelativeLayout> diff --git a/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml b/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml index 2c701d2..28f4327 100644 --- a/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml +++ b/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml @@ -18,17 +18,19 @@ android:id="@+id/button_finish_tap" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" android:tint="@color/button_tint" - android:src="@drawable/ic_check_black_24dp" /> + walt:srcCompat="@drawable/ic_check_black_24dp" + android:contentDescription="@string/finish" /> <ImageButton android:id="@+id/button_restart_tap" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" android:tint="@color/button_tint" - android:src="@drawable/ic_play_arrow_black_24dp" /> + walt:srcCompat="@drawable/ic_play_arrow_black_24dp" + android:contentDescription="@string/restart" /> </RelativeLayout> <FrameLayout @@ -44,7 +46,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000000" - android:gravity="right" + android:gravity="end" android:orientation="horizontal"> <TextView diff --git a/android/WALT/app/src/main/res/layout/histogram.xml b/android/WALT/app/src/main/res/layout/histogram.xml index ca6dc1e..bdbda12 100644 --- a/android/WALT/app/src/main/res/layout/histogram.xml +++ b/android/WALT/app/src/main/res/layout/histogram.xml @@ -15,9 +15,9 @@ android:id="@+id/button_close_bar_chart" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" - android:layout_alignParentTop="true" + android:layout_alignTop="@id/bar_chart" + android:layout_alignEnd="@id/bar_chart" android:tint="@color/button_tint" android:layout_margin="5dp" - android:text="Close" /> + android:text="@string/close" /> </RelativeLayout> diff --git a/android/WALT/app/src/main/res/layout/line_chart.xml b/android/WALT/app/src/main/res/layout/line_chart.xml index 7de4cfb..a846a13 100644 --- a/android/WALT/app/src/main/res/layout/line_chart.xml +++ b/android/WALT/app/src/main/res/layout/line_chart.xml @@ -15,9 +15,9 @@ android:id="@+id/button_close_chart" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentRight="true" - android:layout_alignParentTop="true" + android:layout_alignTop="@id/chart" + android:layout_alignEnd="@id/chart" android:tint="@color/button_tint" android:layout_margin="5dp" - android:text="Close" /> + android:text="@string/close" /> </RelativeLayout> diff --git a/android/WALT/app/src/main/res/layout/toolbar.xml b/android/WALT/app/src/main/res/layout/toolbar.xml index d02028d..c932cdb 100644 --- a/android/WALT/app/src/main/res/layout/toolbar.xml +++ b/android/WALT/app/src/main/res/layout/toolbar.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> -<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/ColorPrimary" android:elevation="4dp"> -</android.support.v7.widget.Toolbar>
\ No newline at end of file +</androidx.appcompat.widget.Toolbar>
\ No newline at end of file diff --git a/android/WALT/app/src/main/res/menu/menu_main.xml b/android/WALT/app/src/main/res/menu/menu_main.xml index 6333e6d..e34957b 100644 --- a/android/WALT/app/src/main/res/menu/menu_main.xml +++ b/android/WALT/app/src/main/res/menu/menu_main.xml @@ -7,21 +7,21 @@ <item android:id="@+id/action_upload" android:orderInCategory="180" - android:title="Upload" + android:title="@string/upload" android:icon="@drawable/ic_file_upload_black_24dp" app:showAsAction="ifRoom" /> <item android:id="@+id/action_share" android:orderInCategory="190" - android:title="Share" + android:title="@string/share" android:icon="@drawable/ic_share_black_24dp" app:showAsAction="ifRoom" /> <item android:id="@+id/action_help" android:orderInCategory="200" - android:title="Help" + android:title="@string/help" android:icon="@drawable/ic_help_outline_black_24dp" app:showAsAction="ifRoom" /> diff --git a/android/WALT/app/src/main/res/values/dimens.xml b/android/WALT/app/src/main/res/values/dimens.xml index 47c8224..5ee798a 100644 --- a/android/WALT/app/src/main/res/values/dimens.xml +++ b/android/WALT/app/src/main/res/values/dimens.xml @@ -1,5 +1,4 @@ <resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> - <dimen name="activity_vertical_margin">16dp</dimen> </resources> diff --git a/android/WALT/app/src/main/res/values/strings.xml b/android/WALT/app/src/main/res/values/strings.xml index 7204eaa..bc83273 100644 --- a/android/WALT/app/src/main/res/values/strings.xml +++ b/android/WALT/app/src/main/res/values/strings.xml @@ -1,7 +1,6 @@ <resources> <string name="app_name">WALT</string> - <string name="action_settings">Settings</string> <string name="title_activity_crash_log">Crash Log</string> <string name="protocol_version_mismatch">WALT reports protocol version %1$s, which is not supported. Please program WALT to a firmware with protocol version %2$s. To do this @@ -16,6 +15,7 @@ <string name="disclaimer">DISCLAIMER: This is not an official Google product.</string> <string name="more_info">A WALT device is required to run the latency tests. For more information, visit github.com/google/walt</string> <string name="privacy_policy">Privacy policy:\ngithub.com/google/walt/blob/master/docs/PrivacyPolicy.md</string> + <string name="hint_url">Enter URL</string> <string name="preference_screen_blinks" translatable="false">pref_screen_blinks</string> <string name="preference_audio_in_reps" translatable="false">pref_audio_in_reps</string> <string name="preference_audio_in_threshold" translatable="false">pref_audio_in_threshold</string> @@ -29,6 +29,36 @@ <string name="preference_screen_fullscreen">pref_screen_fullscreen</string> <string name="preference_log_url">pref_log_url</string> <string name="preference_auto_upload_log">pref_auto_upload_log</string> + <string name="start">Start</string> + <string name="close">Close</string> + <string name="reconnect">Reconnect</string> + <string name="tbd_conn_status">TBD: Conn status</string> + <string name="tap_latency">Tap latency</string> + <string name="drag_latency">Drag latency</string> + <string name="screen_response">Screen response</string> + <string name="audio_latency">Audio latency</string> + <string name="midi_latency">MIDI latency</string> + <string name="view_log">View log</string> + <string name="accelerometer_latency">Accelerometer latency</string> + <string name="settings">Settings</string> + <string name="about">About</string> + <string name="diagnostics">Diagnostics</string> + <string name="tbd_connection_sync_status">TBD: Connection/sync status</string> + <string name="ping">Ping</string> + <string name="ping_over_usb_with_1_byte">Ping over USB with 1 byte</string> + <string name="re_sync_clocks">Re-sync clocks</string> + <string name="check_clock_drift">Check clock drift</string> + <string name="check_how_much_clocks_diverged">Check how much clocks diverged</string> + <string name="update_walt_firmware">Update WALT Firmware</string> + <string name="please_press_the_button_on_the_teensy_first">Please press the button on the Teensy first</string> + <string name="finish">Finish</string> + <string name="restart">Restart</string> + <string name="stop">Stop</string> + <string name="start_midi_in">Start MIDI in</string> + <string name="start_midi_out">Start MIDI out</string> + <string name="upload">Upload</string> + <string name="share">Share</string> + <string name="help">Help</string> <string-array name="audio_mode_array"> <item>Continuous Playback Latency</item> <item>Continuous Recording Latency</item> diff --git a/android/WALT/app/src/main/res/values/styles.xml b/android/WALT/app/src/main/res/values/styles.xml index 02095e7..05e7a67 100644 --- a/android/WALT/app/src/main/res/values/styles.xml +++ b/android/WALT/app/src/main/res/values/styles.xml @@ -6,7 +6,6 @@ <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> <item name="colorAccent">@color/ColorAccent</item> <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item> - <item name="android:imageButtonStyle">@style/ImageButtonStyle</item> <item name="imageButtonStyle">@style/ImageButtonStyle</item> <!-- the homeAsUpIndicator doesn't work with either png or xml icons --> <!--<item name="android:homeAsUpIndicator">@drawable/ic_chevron_left_black_24dp</item> --> @@ -16,7 +15,7 @@ <style name="MenuDivider"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">1dp</item> - <item name="android:background">?android:attr/listDivider</item> + <item name="background">?android:attr/listDivider</item> <item name="android:layout_marginLeft">72dp</item> </style> diff --git a/android/WALT/app/src/main/res/xml/backup_rules.xml b/android/WALT/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..0e782d2 --- /dev/null +++ b/android/WALT/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<full-backup-content> + <include domain="root" /> +</full-backup-content>
\ No newline at end of file diff --git a/android/WALT/app/src/main/res/xml/preferences.xml b/android/WALT/app/src/main/res/xml/preferences.xml index 612c089..58a64f6 100644 --- a/android/WALT/app/src/main/res/xml/preferences.xml +++ b/android/WALT/app/src/main/res/xml/preferences.xml @@ -1,7 +1,7 @@ -<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:walt="http://schemas.android.com/apk/res-auto"> - <android.support.v7.preference.PreferenceScreen + <androidx.preference.PreferenceScreen android:key="pref_general_screen" android:persistent="false" android:title="General"> @@ -28,9 +28,9 @@ </PreferenceCategory> - </android.support.v7.preference.PreferenceScreen> + </androidx.preference.PreferenceScreen> - <android.support.v7.preference.PreferenceScreen + <androidx.preference.PreferenceScreen android:key="pref_tap_screen" android:persistent="false" android:title="Tap latency"> @@ -40,9 +40,9 @@ android:title="Show live histogram for tap test" android:defaultValue="true" /> - </android.support.v7.preference.PreferenceScreen> + </androidx.preference.PreferenceScreen> - <android.support.v7.preference.PreferenceScreen + <androidx.preference.PreferenceScreen android:key="pref_screen_response_screen" android:persistent="false" android:title="Screen response"> @@ -71,9 +71,9 @@ android:title="Test in fullscreen mode" android:defaultValue="true" /> - </android.support.v7.preference.PreferenceScreen> + </androidx.preference.PreferenceScreen> - <android.support.v7.preference.PreferenceScreen + <androidx.preference.PreferenceScreen android:key="pref_audio_screen" android:persistent="false" android:title="Audio"> @@ -105,9 +105,9 @@ walt:maxValue="100000" walt:minValue="1" /> - </android.support.v7.preference.PreferenceScreen> + </androidx.preference.PreferenceScreen> - <android.support.v7.preference.PreferenceScreen + <androidx.preference.PreferenceScreen android:key="pref_midi_screen" android:persistent="false" android:title="MIDI"> @@ -130,6 +130,6 @@ walt:maxValue="1000" walt:minValue="1" /> - </android.support.v7.preference.PreferenceScreen> + </androidx.preference.PreferenceScreen> -</android.support.v7.preference.PreferenceScreen> +</androidx.preference.PreferenceScreen> diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java index b29ace8..7a70426 100644 --- a/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java +++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java @@ -24,7 +24,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; public class AccelerometerFragmentTest { diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java index 8365719..c43eca1 100644 --- a/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java +++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java @@ -29,7 +29,7 @@ import org.powermock.modules.junit4.PowerMockRunner; import java.util.ArrayList; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.when; import static org.powermock.api.mockito.PowerMockito.mockStatic; diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java index ed617cb..f3a3c0d 100644 --- a/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java +++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java @@ -21,7 +21,7 @@ import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; import static org.powermock.api.mockito.PowerMockito.mockStatic; diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java index 86513f4..33d8454 100644 --- a/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java +++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java @@ -25,9 +25,9 @@ import java.util.List; import java.util.Random; import static java.lang.Double.NaN; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class UtilsTest { diff --git a/android/WALT/gradle.properties b/android/WALT/gradle.properties index 1d3591c..915f0e6 100644 --- a/android/WALT/gradle.properties +++ b/android/WALT/gradle.properties @@ -15,4 +15,6 @@ # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true
\ No newline at end of file +# org.gradle.parallel=true +android.enableJetifier=true +android.useAndroidX=true
\ No newline at end of file diff --git a/pywalt/pywalt/walt.py b/pywalt/pywalt/walt.py index 9987f4f..82536fd 100644 --- a/pywalt/pywalt/walt.py +++ b/pywalt/pywalt/walt.py @@ -674,7 +674,7 @@ class TcpServer: sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.bind((self.host, self.port)) - sock.listen(1) + sock.listen(10) while True: print('Listening on port %d' % self.port) net, addr = sock.accept() |