Refactor to androidx, add pref to switch between wifi and wifi ftm

This commit is contained in:
Markus Ebner
2020-04-07 17:24:02 +02:00
parent d5477a077a
commit 5c939eb458
17 changed files with 87 additions and 68 deletions

View File

@@ -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'

View File

@@ -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)) {

View File

@@ -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();
}
}

View File

@@ -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);
}
}
}

View File

@@ -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.

View File

@@ -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;
/**

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -7,7 +7,7 @@
tools:context=".SettingsActivity"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"

View File

@@ -1,19 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<MultiSelectListPreference
android:entries="@array/prefActiveSensorsEntries"
android:entryValues="@array/prefActiveSensorsValues"
android:defaultValue="@array/prefActiveSensorsDefault"
android:key="prefActiveSensors"
android:summary="@string/prefActiveSensorsSummary"
android:title="@string/prefActiveSensors" />
app:entries="@array/prefActiveSensorsEntries"
app:entryValues="@array/prefActiveSensorsValues"
app:defaultValue="@array/prefActiveSensorsDefault"
app:key="prefActiveSensors"
app:summary="@string/prefActiveSensorsSummary"
app:title="@string/prefActiveSensors" />
<SwitchPreferenceCompat
app:defaultValue="false"
app:key="prefUseWifiFTM"
app:title="Use WiFi FTM"
app:summary="Use FTM instead of conventional WiFi scanning"/>
<MultiSelectListPreference
android:entries="@array/prefActiveActionsEntries"
android:entryValues="@array/prefActiveActionsValues"
android:defaultValue="@array/prefActiveActionsDefault"
android:key="prefActiveActions"
android:summary="@string/prefActiveActionsSummary"
android:title="@string/prefActiveActions" />
app:entries="@array/prefActiveActionsEntries"
app:entryValues="@array/prefActiveActionsValues"
app:defaultValue="@array/prefActiveActionsDefault"
app:key="prefActiveActions"
app:summary="@string/prefActiveActionsSummary"
app:title="@string/prefActiveActions" />
</PreferenceScreen>