diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 249edd7..bdcd3a6 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index f334320..7cf04a6 100644 Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ diff --git a/app/build.gradle b/app/build.gradle index ed6e91f..0c03cdc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,13 +21,14 @@ android { } dependencies { - implementation 'com.android.support:design:28.0.0' + implementation 'com.google.android.material:material:1.0.0' implementation fileTree(include: ['*.jar'], dir: 'libs') testImplementation 'junit:junit:4.12' - implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'com.google.android.gms:play-services:12.0.1' - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'org.apmem.tools:layouts:1.10@aar' + implementation 'androidx.preference:preference:1.0.0' //compile 'com.google.android.support:wearable:1.3.0' //compile 'com.google.android.gms:play-services-wearable:8.4.0' //provided 'com.google.android.wearable:wearable:1.0.0' diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java b/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java index 5a385e6..d863320 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/MainActivity.java @@ -12,7 +12,7 @@ import android.os.Build; import android.os.Bundle; import android.os.SystemClock; import android.preference.PreferenceManager; -import android.support.v4.app.ActivityCompat; +import androidx.core.app.ActivityCompat; //import android.support.wearable.activity.WearableActivity; import android.util.Log; import android.view.View; @@ -35,7 +35,6 @@ import java.util.Set; import de.fhws.indoor.sensorreadout.sensors.GpsNew; import de.fhws.indoor.sensorreadout.sensors.GroundTruth; import de.fhws.indoor.sensorreadout.sensors.Logger; -import de.fhws.indoor.sensorreadout.sensors.LoggerRAM; import de.fhws.indoor.sensorreadout.sensors.PedestrianActivity; import de.fhws.indoor.sensorreadout.sensors.PedestrianActivityButton; import de.fhws.indoor.sensorreadout.sensors.PhoneSensors; @@ -445,6 +444,7 @@ public class MainActivity extends Activity { }); } if(activeSensors.contains("GPS")) { + Log.i("Sensors", "Using GPS"); //log gps using sensor number 16 final GpsNew gps = new GpsNew(this); sensors.add(gps); @@ -454,25 +454,29 @@ public class MainActivity extends Activity { }); } if(activeSensors.contains("WIFI")) { - // log wifi using sensor number 8 - final WiFi wifi = new WiFi(this); - sensors.add(wifi); - wifi.setListener(new mySensor.SensorListener() { - @Override public void onData(final long timestamp, final String csv) { add(SensorType.WIFI, csv, timestamp); } - @Override public void onData(final SensorType id, final long timestamp, final String csv) {return; } - }); + boolean useWifiFtm = preferences.getBoolean("prefUseWifiFTM", false); + if(useWifiFtm && WiFiRTT.isSupported()) { + Log.i("Sensors", "Using Wifi[FTM]"); + // log wifi RTT using sensor number 17 + final WiFiRTT wifirtt = new WiFiRTT(this); + sensors.add(wifirtt); + wifirtt.setListener(new mySensor.SensorListener() { + @Override public void onData(final long timestamp, final String csv) { add(SensorType.WIFIRTT, csv, timestamp); } + @Override public void onData(final SensorType id, final long timestamp, final String csv) { add(SensorType.WIFIRTT, csv, timestamp); } + }); + } else { + Log.i("Sensors", "Using Wifi"); + // log wifi using sensor number 8 + final WiFi wifi = new WiFi(this); + sensors.add(wifi); + wifi.setListener(new mySensor.SensorListener() { + @Override public void onData(final long timestamp, final String csv) { add(SensorType.WIFI, csv, timestamp); } + @Override public void onData(final SensorType id, final long timestamp, final String csv) {return; } + }); + } } -// if(activeSensors.contains("WIFI")) { -// // log wifi RTT using sensor number 17 -// final WiFiRTT wifirtt = new WiFiRTT(this); -// sensors.add(wifirtt); -// wifirtt.setListener(new mySensor.SensorListener() { -// @Override public void onData(final long timestamp, final String csv) { add(SensorType.WIFIRTT, csv, timestamp); } -// @Override public void onData(final SensorType id, final long timestamp, final String csv) { add(SensorType.WIFIRTT, csv, timestamp); } -// }); -// -// } if(activeSensors.contains("BLUETOOTH")) { + Log.i("Sensors", "Using Bluetooth"); // bluetooth permission if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) { diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsActivity.java b/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsActivity.java index 4bcc46f..19f23e0 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsActivity.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsActivity.java @@ -1,7 +1,6 @@ package de.fhws.indoor.sensorreadout; -import android.preference.PreferenceManager; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class SettingsActivity extends AppCompatActivity { @@ -9,6 +8,10 @@ public class SettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); + getSupportFragmentManager() + .beginTransaction() + .replace(android.R.id.content, new SettingsFragment()) + .commit(); + } } diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsFragment.java b/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsFragment.java index 18f185c..95b068f 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsFragment.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/SettingsFragment.java @@ -1,16 +1,21 @@ package de.fhws.indoor.sensorreadout; import android.os.Bundle; -import android.preference.PreferenceFragment; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.SwitchPreferenceCompat; -public class SettingsFragment extends PreferenceFragment { +import de.fhws.indoor.sensorreadout.sensors.WiFiRTT; + +public class SettingsFragment extends PreferenceFragmentCompat { @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - addPreferencesFromResource(R.xml.preferences); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.preferences, rootKey); + if(!WiFiRTT.isSupported()) { + SwitchPreferenceCompat useFtmPreference = (SwitchPreferenceCompat)findPreference("prefUseWifiFTM"); + useFtmPreference.setEnabled(false); + } } } diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Gps.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Gps.java index 63b71d7..2ef3e03 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Gps.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Gps.java @@ -10,7 +10,7 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Build; import android.os.Bundle; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; /** * Created by student on 20.03.17. diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/GpsNew.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/GpsNew.java index bf085de..16124ea 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/GpsNew.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/GpsNew.java @@ -5,11 +5,10 @@ import android.app.Activity; import android.content.pm.PackageManager; import android.location.Location; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.ActivityCompat; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.ActivityCompat; import android.util.Log; -import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; @@ -22,8 +21,6 @@ import com.google.android.gms.location.LocationServices; import java.text.DateFormat; import java.util.Date; -import de.fhws.indoor.sensorreadout.R; - import static android.content.ContentValues.TAG; /** diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Logger.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Logger.java index 264f1a8..815800b 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Logger.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/Logger.java @@ -1,9 +1,8 @@ package de.fhws.indoor.sensorreadout.sensors; import android.content.Context; -import android.os.AsyncTask; import android.os.SystemClock; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.Log; import java.io.File; diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/LoggerRAM.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/LoggerRAM.java index e56590c..f40dd8d 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/LoggerRAM.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/LoggerRAM.java @@ -2,7 +2,7 @@ package de.fhws.indoor.sensorreadout.sensors; import android.content.Context; import android.os.SystemClock; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.Log; import java.io.File; diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/OrderedLogger.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/OrderedLogger.java index 5e8c9d3..6e86315 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/OrderedLogger.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/OrderedLogger.java @@ -2,7 +2,7 @@ package de.fhws.indoor.sensorreadout.sensors; import android.content.Context; import android.os.SystemClock; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.Log; import java.io.File; diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PedestrianActivityButton.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PedestrianActivityButton.java index 7d13aab..0663e7c 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PedestrianActivityButton.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/PedestrianActivityButton.java @@ -2,8 +2,8 @@ package de.fhws.indoor.sensorreadout.sensors; import android.content.Context; import android.graphics.Color; -import android.support.annotation.DrawableRes; -import android.view.View; +import androidx.annotation.DrawableRes; + import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/UnorderedLogger.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/UnorderedLogger.java index ee81367..9c38ea7 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/UnorderedLogger.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/UnorderedLogger.java @@ -1,17 +1,14 @@ package de.fhws.indoor.sensorreadout.sensors; import android.content.Context; -import android.os.AsyncTask; import android.os.SystemClock; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.Log; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.util.PriorityQueue; import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.Semaphore; /** * log sensor data to file diff --git a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFiRTT.java b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFiRTT.java index 93175b8..3cfdd58 100644 --- a/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFiRTT.java +++ b/app/src/main/java/de/fhws/indoor/sensorreadout/sensors/WiFiRTT.java @@ -12,13 +12,12 @@ import android.net.wifi.rtt.RangingRequest; import android.net.wifi.rtt.RangingResult; import android.net.wifi.rtt.RangingResultCallback; import android.net.wifi.rtt.WifiRttManager; -import android.support.v4.app.ActivityCompat; +import androidx.core.app.ActivityCompat; + +import android.os.Build; import android.util.Log; -import java.lang.reflect.Array; -import java.lang.reflect.Constructor; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executor; @@ -163,4 +162,11 @@ public class WiFiRTT extends mySensor { } } }; + + public static final boolean isSupported() { + return (Build.VERSION.SDK_INT >= 28); + + //TODO markusb Implement a proper test for whether FTM is supported + // If this needs a context / activity, no problem + } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 20873b7..02216ac 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -7,7 +7,7 @@ tools:context=".SettingsActivity" android:orientation="vertical"> - - + + app:entries="@array/prefActiveSensorsEntries" + app:entryValues="@array/prefActiveSensorsValues" + app:defaultValue="@array/prefActiveSensorsDefault" + app:key="prefActiveSensors" + app:summary="@string/prefActiveSensorsSummary" + app:title="@string/prefActiveSensors" /> + + app:entries="@array/prefActiveActionsEntries" + app:entryValues="@array/prefActiveActionsValues" + app:defaultValue="@array/prefActiveActionsDefault" + app:key="prefActiveActions" + app:summary="@string/prefActiveActionsSummary" + app:title="@string/prefActiveActions" /> \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 1d3591c..915f0e6 100644 --- a/gradle.properties +++ b/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