diff --git a/ebc_enclave_messaging b/ebc_enclave_messaging index 9b0f55007d93bbe13e48f2750d0b887c880a8add..9d89587c13406c3fd4a52ac1f6b3067ccc3405c8 160000 --- a/ebc_enclave_messaging +++ b/ebc_enclave_messaging @@ -1 +1 @@ -Subproject commit 9b0f55007d93bbe13e48f2750d0b887c880a8add +Subproject commit 9d89587c13406c3fd4a52ac1f6b3067ccc3405c8 diff --git a/ebclibrary/build.gradle b/ebclibrary/build.gradle index 9d5fc0ae64412b96bc322d1cb5bbcbf26fb99935..dd9bf6fc9e96b8635dd0553ef994f42a3e4b456c 100644 --- a/ebclibrary/build.gradle +++ b/ebclibrary/build.gradle @@ -55,6 +55,7 @@ dependencies { //implementation fileTree(include: ['*.jar'], dir: '../ebcutils/build/libs') implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:support-v4:26.1.0' + implementation 'com.android.support:design:26.1.0' androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) diff --git a/ebclibrary/src/main/AndroidManifest.xml b/ebclibrary/src/main/AndroidManifest.xml index ba2ea2b9fa2a33ec7279f6b846818530a7c53539..dd30e1a4918040935fea2cb6a052a1c7e3141f38 100644 --- a/ebclibrary/src/main/AndroidManifest.xml +++ b/ebclibrary/src/main/AndroidManifest.xml @@ -14,8 +14,6 @@ - - @@ -35,6 +33,7 @@ android:exported="true" android:readPermission="READPERM" android:writePermission="WRITEPERM" /> + \ No newline at end of file diff --git a/ebclibrary/src/main/java/org/mpisws/encounters/EncounterBasedCommunication.java b/ebclibrary/src/main/java/org/mpisws/encounters/EncounterBasedCommunication.java index 768f763161344903339c2384aea9fdc05e671213..5ccd60b1b346b8f013d8a1678ac9a62ea46fdd17 100644 --- a/ebclibrary/src/main/java/org/mpisws/encounters/EncounterBasedCommunication.java +++ b/ebclibrary/src/main/java/org/mpisws/encounters/EncounterBasedCommunication.java @@ -195,9 +195,7 @@ public class EncounterBasedCommunication { * @param context The calling application context */ public void initialize(Context context, int configResId) { - // so we can connect to jni code to do stuff SDDR_Native.c_mallocRadio(); - Preferences preferences = new Preferences(context); GlobalObjectRegistry.addObject(preferences); diff --git a/ebclibrary/src/main/java/org/mpisws/encounters/dbplatform/ContentProviderBase.java b/ebclibrary/src/main/java/org/mpisws/encounters/dbplatform/ContentProviderBase.java index 038186c67c39bd9ae534c656e66d5d3c16be0e0a..ea1e43f18bb644a16cad49e88193df03f0f49897 100644 --- a/ebclibrary/src/main/java/org/mpisws/encounters/dbplatform/ContentProviderBase.java +++ b/ebclibrary/src/main/java/org/mpisws/encounters/dbplatform/ContentProviderBase.java @@ -10,11 +10,13 @@ import android.content.UriMatcher; import android.database.Cursor; import android.database.SQLException; import android.net.Uri; +import android.util.Log; import net.sqlcipher.database.SQLiteDatabase; import net.sqlcipher.database.SQLiteOpenHelper; import org.mpisws.database.DBModel; +import org.mpisws.embeddedsocial.ESClient; import org.mpisws.helpers.ESCredentials; import org.mpisws.helpers.GlobalObjectRegistry; import org.mpisws.encounters.encounterhistory.EncounterHistoryAPM; @@ -22,6 +24,7 @@ import org.mpisws.encounters.encounterhistory.EncounterHistoryAPM; import java.util.ArrayList; public abstract class ContentProviderBase extends ContentProvider { + private final String TAG = ContentProviderBase.class.getSimpleName(); private final UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); protected SQLiteOpenHelper dbHelper; @@ -119,6 +122,7 @@ public abstract class ContentProviderBase extends ContentProvider { @Override public synchronized int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { if (GlobalObjectRegistry.getObject(ESCredentials.class) == null) return -1; + Log.d(TAG, "User handle is " + GlobalObjectRegistry.getObject(ESCredentials.class).getUserHandle()); final SQLiteDatabase db = dbHelper.getWritableDatabase(GlobalObjectRegistry.getObject(ESCredentials.class).getUserHandle()); final MatchType matchType = codeToModel(matcher.match(uri)); final String realselection = matchType.isRow() ? addPKIDConditionToWhereClause(selection, uri.getLastPathSegment()) : selection; diff --git a/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationCore.java b/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationCore.java index ede9ffc96b7b4a2c79a2d36bbc75da30bd4e1145..dc931cf5de9cfdc171f0bfa734e2f737f15fb244 100644 --- a/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationCore.java +++ b/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationCore.java @@ -15,9 +15,12 @@ import android.util.Log; import org.apache.commons.lang3.tuple.Pair; import org.mpisws.embeddedsocial.ESClient; +import org.mpisws.encounters.lib.Preferences; +import org.mpisws.helpers.GlobalObjectRegistry; import org.mpisws.helpers.Identifier; import org.mpisws.encounters.encounterhistory.bridges.EncounterEntriesBridge; import org.mpisws.encounters.encounterhistory.events.EncounterConfirmEvent; +import org.mpisws.helpers.Utils; import java.util.HashMap; import java.util.Map; @@ -57,6 +60,9 @@ public class EncounterFormationCore implements Runnable { private void initialize() { Looper.prepare(); + if (SDDR_Native.c_RadioPtr <= 0) { + SDDR_Native.c_mallocRadio(); + } Log.v(TAG, "Initialize SDDRCore on thread " + Thread.currentThread().getName()); this.bluetoothManager = (BluetoothManager) mService.getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter(); @@ -68,6 +74,17 @@ public class EncounterFormationCore implements Runnable { changeEpochTime = System.currentTimeMillis() + CHANGE_EPOCH_TIME; encounterConfirmationAndEpochLinking = new EncounterConfirmationAndEpochLinking(mService); + + // deal with login credentials here + Preferences preferences; + if ((preferences = GlobalObjectRegistry.getObject(Preferences.class)) == null) { + preferences = new Preferences(mService); + GlobalObjectRegistry.addObject(preferences); + } + // try to get ES Credentials + Log.d(TAG, "UserHandle, Auth: " + preferences.getUserHandle() + ", " + preferences.getAuthorizationToken()); + ESClient.getInstance().setESCredentials(preferences.getUserHandle(), preferences.getAuthorizationToken()); + new EncounterEntriesBridge(mService).finalizeOldEncounters(); } @@ -79,7 +96,8 @@ public class EncounterFormationCore implements Runnable { } public void stop() { - //SDDR_Native.c_freeRadio(); + if (SDDR_Native.c_RadioPtr > 0) + SDDR_Native.c_freeRadio(); mAdvertiser.stopAdvertising(); mScannerProcessor.stopScanning(); } diff --git a/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationService.java b/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationService.java index 5f20a6b1c3eadb9492e13f812c7e6bec5d03ad70..e294982b2f4fe1ddb62c5d4bfe089c20e5b9eeb4 100644 --- a/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationService.java +++ b/ebclibrary/src/main/java/org/mpisws/encounters/encounterformation/EncounterFormationService.java @@ -1,9 +1,6 @@ package org.mpisws.encounters.encounterformation; import android.Manifest; -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; import android.app.Service; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothManager; @@ -15,13 +12,6 @@ import android.support.v4.app.ActivityCompat; import android.util.Log; import android.widget.Toast; -import org.mpisws.encounters.R; -import org.mpisws.helpers.ESCredentials; -import org.mpisws.helpers.GlobalObjectRegistry; - -import static android.app.NotificationChannel.DEFAULT_CHANNEL_ID; -import static android.support.v4.app.NotificationCompat.PRIORITY_LOW; - /** * Created by tslilyai on 10/27/17. */ @@ -74,30 +64,12 @@ public class EncounterFormationService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startID) { - /*if (GlobalObjectRegistry.getObject(ESCredentials.class) == null || - GlobalObjectRegistry.getObject(ESCredentials.class).getUserHandle() == null) { - Intent dialogIntent = new Intent(this, Login.class); - dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(dialogIntent); - }*/ - if (intent == null) { return START_STICKY; } if (intent.getExtras().containsKey("@string.start_sddr_service")) { check_and_start_core(); - Intent notificationIntent = new Intent(this, getApplicationContext().getClass()); - PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); - - Notification notification = new Notification.Builder(this, DEFAULT_CHANNEL_ID) - .setContentTitle("EbC") - .setContentText("Forming encounters") - .setSmallIcon(R.drawable.ic_ebc_formation) - .setContentIntent(pendingIntent) - .setTicker("EbCTicker?") - .build(); - startForeground(FOREGROUND_SERVICE_ON, notification); return START_STICKY; } diff --git a/ebclibrary/src/main/java/org/mpisws/encounters/encounterhistory/bridges/EncounterEntriesBridge.java b/ebclibrary/src/main/java/org/mpisws/encounters/encounterhistory/bridges/EncounterEntriesBridge.java index 8e709ef7463fd49b7f06dd7f6c56406ab79df4f6..8ac97ab0bfdf172d08ace5e7ee54308128edf7c8 100644 --- a/ebclibrary/src/main/java/org/mpisws/encounters/encounterhistory/bridges/EncounterEntriesBridge.java +++ b/ebclibrary/src/main/java/org/mpisws/encounters/encounterhistory/bridges/EncounterEntriesBridge.java @@ -184,7 +184,7 @@ public class EncounterEntriesBridge extends AbstractEncountersBridge ? OR " + PEncounterEntries.Columns.timestampEnd + " = -1)" + " AND " + PEncounterEntries.Columns.sharedSecret + " IS NOT NULL"; - String sortOrder = PEncounterEntries.Columns.timestampStart + " ASC"; + String sortOrder = PEncounterEntries.Columns.timestampEnd + " ASC"; final Cursor cursor = context.getContentResolver().query(EncounterHistoryAPM.getContentURI(EncounterHistoryAPM.encounterEntries), null, whereClause, selectionArgs, sortOrder); List locs = new ArrayList(); diff --git a/ebclibrary/src/main/java/org/mpisws/encounters/lib/Preferences.java b/ebclibrary/src/main/java/org/mpisws/encounters/lib/Preferences.java index 42f61a9beb3bb29502cf89ce3d6c727bfe3ef2c7..f4e5afbbec0304ab4e6a307d1ec8177116949d3b 100644 --- a/ebclibrary/src/main/java/org/mpisws/encounters/lib/Preferences.java +++ b/ebclibrary/src/main/java/org/mpisws/encounters/lib/Preferences.java @@ -16,11 +16,9 @@ import org.mpisws.helpers.GlobalObjectRegistry; public class Preferences { private static final String PREF_FILE_NAME = "com.microsoft.embeddedsocial.pref"; - private static final String INSTANCE_ID = "instance_id"; private static final String USER_HANDLE = "userhandle"; private static final String AUTHORIZATION = "authorization"; private static final String encEntryDBTimestamp = "encEntrys"; - private static final String locationDBTimestamp = "locations"; private static final String ebCKey = "ebCKey"; private static final String latestReadMessageCursor = "lrmc"; diff --git a/ebclibrary/src/main/res/drawable-hdpi/ic_action_stat_reply.png b/ebclibrary/src/main/res/drawable-hdpi/ic_action_stat_reply.png deleted file mode 100644 index 835d96fc6c3354801c672e6ccfd3661774618b95..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-hdpi/ic_action_stat_reply.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-hdpi/ic_action_stat_share.png b/ebclibrary/src/main/res/drawable-hdpi/ic_action_stat_share.png deleted file mode 100644 index c329f58daae65d1f35d2959a5c2cac0a0cc7d218..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-hdpi/ic_action_stat_share.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-hdpi/ic_ebc_formation.png b/ebclibrary/src/main/res/drawable-hdpi/ic_ebc_formation.png deleted file mode 100644 index d2cbb747279ea3b6a96393436082e952e839a88c..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-hdpi/ic_ebc_formation.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-mdpi/ic_action_stat_reply.png b/ebclibrary/src/main/res/drawable-mdpi/ic_action_stat_reply.png deleted file mode 100644 index 9e344659eedcf226ea91afe4846a69827357435d..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-mdpi/ic_action_stat_reply.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-mdpi/ic_action_stat_share.png b/ebclibrary/src/main/res/drawable-mdpi/ic_action_stat_share.png deleted file mode 100644 index 056deb57b92875e9361c4ee2a769023e55aec274..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-mdpi/ic_action_stat_share.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-mdpi/ic_ebc_formation.png b/ebclibrary/src/main/res/drawable-mdpi/ic_ebc_formation.png deleted file mode 100644 index be0035f5c1001fb2b84f44fa736b32e2eead73d7..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-mdpi/ic_ebc_formation.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-nodpi/example_picture.png b/ebclibrary/src/main/res/drawable-nodpi/example_picture.png deleted file mode 100644 index e0627f532897da9f078e79c32ae6d7d5792803a4..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-nodpi/example_picture.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-xhdpi/ic_action_stat_reply.png b/ebclibrary/src/main/res/drawable-xhdpi/ic_action_stat_reply.png deleted file mode 100644 index 4cc854ab8001c0bd06aeaafd49467d157a1a9995..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-xhdpi/ic_action_stat_reply.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-xhdpi/ic_action_stat_share.png b/ebclibrary/src/main/res/drawable-xhdpi/ic_action_stat_share.png deleted file mode 100644 index 15549b04eff0aaf80ecd4f5989785bd8bcb1d5fa..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-xhdpi/ic_action_stat_share.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-xhdpi/ic_ebc_formation.png b/ebclibrary/src/main/res/drawable-xhdpi/ic_ebc_formation.png deleted file mode 100644 index 03d62697fdb83472776d96a2931d06639d0b6c79..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-xhdpi/ic_ebc_formation.png and /dev/null differ diff --git a/ebclibrary/src/main/res/drawable-xxhdpi/ic_ebc_formation.png b/ebclibrary/src/main/res/drawable-xxhdpi/ic_ebc_formation.png deleted file mode 100644 index bcd06f8bd579c02673480137d08f492cab131c56..0000000000000000000000000000000000000000 Binary files a/ebclibrary/src/main/res/drawable-xxhdpi/ic_ebc_formation.png and /dev/null differ