Add ArrayList for ActivityRecognitionAPI
This commit is contained in:
parent
c5a5881c58
commit
a8f7892e23
|
|
@ -10,8 +10,11 @@ import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.google.android.gms.location.ActivityRecognition;
|
||||||
import com.google.android.gms.location.DetectedActivity;
|
import com.google.android.gms.location.DetectedActivity;
|
||||||
import com.pureix.easylocator.controller.service.ActivityRecognitionAPI;
|
import com.pureix.easylocator.controller.service.ActivityRecognitionAPI;
|
||||||
import com.pureix.easylocator.controller.service.BatteryAPI;
|
import com.pureix.easylocator.controller.service.BatteryAPI;
|
||||||
|
|
@ -25,9 +28,14 @@ import com.pureix.easylocator.service.locatonService.Listener.LocationReceiverLi
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import static com.pureix.easylocator.controller.service.ActivityRecognitionAPI.MONITORED_ACTIVITIES;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
private TextView txt;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
@ -35,16 +43,28 @@ public class MainActivity extends AppCompatActivity {
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
|
|
||||||
ActivityRecognitionAPI.setActivitiesRecognitionListener(new ActivityRecognitionListener() {
|
txt = (TextView) findViewById(R.id.txt);
|
||||||
|
|
||||||
|
ActivityRecognitionAPI.setActivitiesRecognitionListener(new ActivityRecognitionListener()
|
||||||
|
{
|
||||||
@Override
|
@Override
|
||||||
public void updateDetectedActivitiesList(ArrayList<DetectedActivity> updatedActivities) {
|
public void updateDetectedActivitiesList(ArrayList<DetectedActivity> updatedActivities) {
|
||||||
//Toast.makeText(MainActivity.this, "okay", Toast.LENGTH_SHORT).show();
|
//Toast.makeText(MainActivity.this, "okay", Toast.LENGTH_SHORT).show();
|
||||||
|
ArrayList<DetectedActivity> tempList = ActivityRecognitionAPI.getArrayList(updatedActivities);
|
||||||
|
|
||||||
|
for (int i = 0; i < tempList.size(); i++) {
|
||||||
|
txt.append(MONITORED_ACTIVITIES[tempList.get(i).getType()-1] +" - "
|
||||||
|
+ tempList.get(i).getConfidence() +" - "
|
||||||
|
+ tempList.get(i).getVersionCode()+"\n");
|
||||||
|
}
|
||||||
|
Toast.makeText(MainActivity.this, ""+tempList, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
InternetAPI.networkListener(new ConnectivityReceiverListener() {
|
InternetAPI.networkListener(new ConnectivityReceiverListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onNetworkConnectionChanged(boolean isConnected, int connectionProvider) {
|
public void onNetworkConnectionChanged(boolean isConnected, int connectionProvider) {
|
||||||
|
//txt.append();
|
||||||
//Toast.makeText(MainActivity.this, ""+isConnected, Toast.LENGTH_SHORT).show();
|
//Toast.makeText(MainActivity.this, ""+isConnected, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,15 @@
|
||||||
tools:context="com.pureix.sampleeasylocator.MainActivity"
|
tools:context="com.pureix.sampleeasylocator.MainActivity"
|
||||||
tools:showIn="@layout/activity_main">
|
tools:showIn="@layout/activity_main">
|
||||||
|
|
||||||
<TextView
|
<ScrollView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent">
|
||||||
android:text="Hello World!" />
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/txt"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="" />
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,26 @@ package com.pureix.easylocator.controller.service;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
|
||||||
|
import com.google.android.gms.location.DetectedActivity;
|
||||||
import com.pureix.easylocator.service.activityRecognitionService.ActivitiesRecognitionService;
|
import com.pureix.easylocator.service.activityRecognitionService.ActivitiesRecognitionService;
|
||||||
|
import com.pureix.easylocator.service.activityRecognitionService.Constants;
|
||||||
import com.pureix.easylocator.service.activityRecognitionService.broadcastReceiver.InitializeActivityRecognitionBroadcast;
|
import com.pureix.easylocator.service.activityRecognitionService.broadcastReceiver.InitializeActivityRecognitionBroadcast;
|
||||||
import com.pureix.easylocator.service.activityRecognitionService.listener.ActivityRecognitionListener;
|
import com.pureix.easylocator.service.activityRecognitionService.listener.ActivityRecognitionListener;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by MelDiSooQi on 2/11/2017.
|
* Created by MelDiSooQi on 2/11/2017.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ActivityRecognitionAPI
|
public class ActivityRecognitionAPI
|
||||||
{
|
{
|
||||||
|
public static final int[] MONITORED_ACTIVITIES = Constants.MONITORED_ACTIVITIES;
|
||||||
|
private static ArrayAdapter<DetectedActivity> arrayAdapter;
|
||||||
|
|
||||||
private static InitializeActivityRecognitionBroadcast broadcast;
|
private static InitializeActivityRecognitionBroadcast broadcast;
|
||||||
public static ActivityRecognitionListener activitiesRecognitionListener;
|
public static ActivityRecognitionListener activitiesRecognitionListener;
|
||||||
|
|
||||||
|
|
@ -34,4 +43,47 @@ public class ActivityRecognitionAPI
|
||||||
public static void setActivitiesRecognitionListener(ActivityRecognitionListener activitiesRecognitionListener) {
|
public static void setActivitiesRecognitionListener(ActivityRecognitionListener activitiesRecognitionListener) {
|
||||||
ActivityRecognitionAPI.activitiesRecognitionListener = activitiesRecognitionListener;
|
ActivityRecognitionAPI.activitiesRecognitionListener = activitiesRecognitionListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process list of recently detected activities and updates the list of {@code DetectedActivity}
|
||||||
|
* objects backing this adapter.
|
||||||
|
*
|
||||||
|
* @param detectedActivities the freshly detected activities
|
||||||
|
*/
|
||||||
|
public static ArrayList<DetectedActivity> getArrayList(ArrayList<DetectedActivity> detectedActivities)
|
||||||
|
{
|
||||||
|
HashMap<Integer, Integer> detectedActivitiesMap = new HashMap<>();
|
||||||
|
for (DetectedActivity activity : detectedActivities) {
|
||||||
|
detectedActivitiesMap.put(activity.getType(), activity.getConfidence());
|
||||||
|
}
|
||||||
|
// Every time we detect new activities, we want to reset the confidence level of ALL
|
||||||
|
// activities that we monitor. Since we cannot directly change the confidence
|
||||||
|
// of a DetectedActivity, we use a temporary list of DetectedActivity objects. If an
|
||||||
|
// activity was freshly detected, we use its confidence level. Otherwise, we set the
|
||||||
|
// confidence level to zero.
|
||||||
|
ArrayList<DetectedActivity> tempList = new ArrayList<DetectedActivity>();
|
||||||
|
for (int i = 0; i < ActivityRecognitionAPI.MONITORED_ACTIVITIES.length; i++) {
|
||||||
|
int confidence = detectedActivitiesMap.containsKey(ActivityRecognitionAPI.MONITORED_ACTIVITIES[i]) ?
|
||||||
|
detectedActivitiesMap.get(ActivityRecognitionAPI.MONITORED_ACTIVITIES[i]) : 0;
|
||||||
|
|
||||||
|
tempList.add(new DetectedActivity(ActivityRecognitionAPI.MONITORED_ACTIVITIES[i],
|
||||||
|
confidence));
|
||||||
|
}
|
||||||
|
|
||||||
|
return tempList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayAdapter<DetectedActivity> getArrayAdapter(ArrayList<DetectedActivity> tempList)
|
||||||
|
{
|
||||||
|
// Remove all items.
|
||||||
|
arrayAdapter.clear();
|
||||||
|
|
||||||
|
// Adding the new list items notifies attached observers that the underlying data has
|
||||||
|
// changed and views reflecting the data should refresh.
|
||||||
|
for (DetectedActivity detectedActivity: tempList) {
|
||||||
|
arrayAdapter.add(detectedActivity);
|
||||||
|
}
|
||||||
|
|
||||||
|
return arrayAdapter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ public final class Constants {
|
||||||
/**
|
/**
|
||||||
* List of DetectedActivity types that we monitor in this sample.
|
* List of DetectedActivity types that we monitor in this sample.
|
||||||
*/
|
*/
|
||||||
protected static final int[] MONITORED_ACTIVITIES = {
|
public static final int[] MONITORED_ACTIVITIES = {
|
||||||
DetectedActivity.STILL,
|
DetectedActivity.STILL,
|
||||||
DetectedActivity.ON_FOOT,
|
DetectedActivity.ON_FOOT,
|
||||||
DetectedActivity.WALKING,
|
DetectedActivity.WALKING,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue