Link Search Menu Expand Document

4.0.5 version

Table of Contents

What’s New in ExpoFP Fplan version 4.0.5

Bugs have been fixed.

Setup

Add Maven repository reference to settings.gradle file(in root of your project):

repositories {
    maven { url "https://s01.oss.sonatype.org/content/repositories/releases" }
    
    //If you want to use navigation from CrowdConnected, add a link to the repository
    //maven { url "https://maven2.crowdconnected.net/" }
	
    //If you want to use navigation from IndoorAtlas, add a link to the repository
    //maven { url "https://dl.cloudsmith.io/public/indooratlas/mvn-public/maven/" }
    ...
}

Add dependency to build.gradle file(in module):

dependencies {
    implementation 'com.expofp:common:4.0.5'
    implementation 'com.expofp:fplan:4.0.5'
    
    //If you want to use navigation from CrowdConnected, add a link to the package
    //implementation 'com.expofp:crowdconnected:4.0.5'
    
    //If you want to use navigation from IndoorAtlas, add a link to the package
    //implementation 'com.expofp:indooratlas:4.0.5'
    
    ... 
}

Add permissions in “AndroidManifest.xml” file:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Usage

Add FplanView to layout:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <com.expofp.fplan.FplanView
        android:id="@+id/fplanView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Init FplanView:

Settings settings = new Settings("https://demo.expofp.com")
                //.withLocationProvider(new CrowdConnectedProvider(getApplication(), new com.expofp.crowdconnected.Settings("APP_KEY","TOKEN","SECRET")))
                //.withLocationProvider(new IndoorAtlasProvider(getApplication(), "API_KEY", "API_SECRET_KEY"))
                //.withGlobalLocationProvider()
                .withEventsListener(new FplanEventsListener() {
                    @Override
                    public void onFpConfigured() {
                    }

                    @Override
                    public void onBoothClick(@Nullable String id, @Nullable String name) {
                    }

                    @Override
                    public void onDirection(@Nullable Route route) {
                    }

                    @Override
                    public void onDetails(@Nullable Details details) {
                    }

                    @Override
                    public void onExhibitorCustomButtonClick(String externalId, int buttonNumber, String buttonUrl) {
                    }

                    @Override
                    public void onMessageReceived(@Nullable String message) {
                    }
                });

_fplanView = findViewById(R.id.fplanView);
_fplanView.init(settings);

Stop FplanView.
After you finish working with FplanView, you need to stop it.
To do this, you need to call the ‘destroy’ function:

_fplanView = findViewById(R.id.fplanView);
_fplanView.destroy();

Functions

Select booth:

_fplanView.selectBooth("720");

Select exhibitor:

_fplanView.selectExhibitor("ExpoPlatform");

Build route:

_fplanView.selectRoute("720", "751");

Set current position(Blue-dot):

_fplanView.selectCurrentPosition(2875, 1734);

Clear floor plan:

_fplanView.clear();

Events

Floor plan ready event:

@Override
public void onFpConfigured() {
}

Select booth event:

@Override
public void onBoothClick(@Nullable String id, @Nullable String name) {
}

Route create event:

@Override
public void onDirection(@Nullable Route route) {
}

Receive message event:

@Override
public void onMessageReceived(@Nullable String message) {
}

Details open event:

@Override
public void onDetails(@Nullable Details details) {
}

Exhibitor custom button click event:

@Override
public void onExhibitorCustomButtonClick(String externalId, int buttonNumber, String buttonUrl) {
}

There are 2 ways to use navigation in FplanView. The first way is to explicitly specify the provider in the FplanView settings. In this case, FplanView will start and stop the LocationProvider on its own.

LocationProvider locationProvider = ...;

Settings settings = new Settings("https://demo.expofp.com", false)
                .withLocationProvider(locationProvider);

_fplanView = findViewById(R.id.fplanView);
_fplanView.init(settings);

The second way is to run the GlobalLocationProvider when the program starts:

LocationProvider locationProvider = ...;

GlobalLocationProvider.init(locationProvider);
GlobalLocationProvider.start();

When using the GlobalLocationProvider in the FplanView settings, you need to call the ‘withGlobalLocationProvider’ function:

Settings settings = new Settings("https://demo.expofp.com", false)
                 .withGlobalLocationProvider();

_fplanView = findViewById(R.id.fplanView);
_fplanView.init(settings);

When the program terminates, the GlobalLocationProvider must also be stopped:

GlobalLocationProvider.stop();

CrowdConnected location provider

Setup:

Add Maven repository reference to settings.gradle file(in root of your project):

repositories {
    maven { url "https://maven2.crowdconnected.net/" }
    ...
}

Add dependency to build.gradle file(in module):

dependencies {
    implementation 'com.expofp:crowdconnected:4.0.5'
    implementation 'net.crowdconnected.android.core:android-core:1.3.4'
    implementation 'net.crowdconnected.android.ips:android-ips:1.3.4'
    implementation 'net.crowdconnected.android.geo:android-geo:1.3.4'
    
    ... 
}

Add permissions in “AndroidManifest.xml” file:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

LocationProvider initialization:

com.expofp.crowdconnected.Settings lpSettings = new com.expofp.crowdconnected.Settings("APP_KEY", "TOKEN", "SECRET", Mode.IPS_ONLY);
LocationProvider locationProvider = new com.expofp.crowdconnected.CrowdConnectedProvider(getApplication(), lpSettings);

Aliases:

com.expofp.crowdconnected.Settings lpSettings = new com.expofp.crowdconnected.Settings("APP_KEY", "TOKEN", "SECRET", Mode.IPS_ONLY);
lpSettings.setAlias("KEY_1", "VALUE_1");
lpSettings.setAlias("KEY_2", "VALUE_2");
LocationProvider locationProvider = new com.expofp.crowdconnected.CrowdConnectedProvider(getApplication(), lpSettings);

Notification settings:

com.expofp.crowdconnected.Settings lpSettings = new com.expofp.crowdconnected.Settings("APP_KEY", "TOKEN", "SECRET", Mode.IPS_ONLY);
lpSettings.setServiceNotificationInfo("NOTIFICATION_TEXT", SERVICE_ICON);
LocationProvider locationProvider = new com.expofp.crowdconnected.CrowdConnectedProvider(getApplication(), lpSettings);

IndoorAtlas location provider

Setup:

Add Maven repository reference to settings.gradle file(in root of your project):

repositories {
    maven { url "https://dl.cloudsmith.io/public/indooratlas/mvn-public/maven/" }
    ...
}

Add dependency to build.gradle file(in module):

dependencies {
    implementation 'com.expofp:indooratlas:4.0.5'
    implementation "com.indooratlas.android:indooratlas-android-sdk:3.5.5@aar"
    
    ... 
}

Add permissions in “AndroidManifest.xml” file:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

LocationProvider initialization:

LocationProvider locationProvider = new com.expofp.indooratlas.IndoorAtlasProvider(getApplication(), "API_KEY", "API_SECRET_KEY");