Skip to content

Commit 54c7303

Browse files
committed
ASAPApplication supports now ASAPSimplePeer interface. No more code changes required when moving from
Java to Android.
1 parent 7cec8ba commit 54c7303

File tree

8 files changed

+76
-24
lines changed

8 files changed

+76
-24
lines changed

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ android {
2727

2828
dependencies {
2929
//implementation fileTree(include: ['*.jar'], dir: 'libs')
30-
implementation files('libs/ASAPJava_0.5.0.jar')
3130

3231
implementation 'com.android.support:appcompat-v7:28.0.0'
33-
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
34-
testImplementation 'junit:junit:4.12'
32+
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
33+
implementation files('libs\\ASAPJava.jar')
34+
testImplementation 'junit:junit:4.13.1'
3535
androidTestImplementation 'com.android.support.test:runner:1.0.2'
3636
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
3737
}

app/src/main/java/net/sharksystem/asap/android/apps/ASAPActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
import net.sharksystem.asap.android.service2AppMessaging.ASAPServiceRequestListener;
2626
import net.sharksystem.asap.android.service2AppMessaging.ASAPServiceRequestNotifyBroadcastReceiver;
2727
import net.sharksystem.asap.android.service2AppMessaging.ASAPServiceRequestNotifyIntent;
28-
import net.sharksystem.asap.sharknet.SNMessage;
2928

3029
import java.util.ArrayList;
3130
import java.util.Collection;
3231
import java.util.List;
32+
import java.util.Set;
3333

3434
public class ASAPActivity extends AppCompatActivity implements
3535
ASAPServiceRequestListener, ASAPServiceNotificationListener {
@@ -560,10 +560,11 @@ public void asapNotifyBTEnvironmentStopped() {
560560
* <br/><br/>
561561
* This method called whenever list of connected peers changed. This happens when
562562
* a connection is created or broken. The current list of peers comes as parameter.
563+
* @param peerList
563564
*/
564565
@Override
565566
@CallSuper
566-
public void asapNotifyOnlinePeersChanged(List<CharSequence> peerList) {
567+
public void asapNotifyOnlinePeersChanged(Set<CharSequence> peerList) {
567568
this.asapApplication.setOnlinePeersList(peerList);
568569
}
569570

app/src/main/java/net/sharksystem/asap/android/apps/ASAPApplication.java

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
import net.sharksystem.asap.android.ASAPChunkReceivedBroadcastIntent;
2222
import net.sharksystem.asap.android.ASAPServiceCreationIntent;
2323
import net.sharksystem.asap.android.Util;
24+
import net.sharksystem.asap.apps.ASAPEnvironmentChangesListener;
25+
import net.sharksystem.asap.apps.ASAPMessageReceivedListener;
26+
import net.sharksystem.asap.apps.ASAPSimplePeer;
27+
import net.sharksystem.asap.listenermanager.ASAPEnvironmentChangesListenerManager;
2428
import net.sharksystem.asap.util.Helper;
2529

2630
import java.io.IOException;
@@ -30,12 +34,14 @@
3034
import java.util.HashSet;
3135
import java.util.List;
3236
import java.util.Map;
37+
import java.util.Set;
3338

3439
import static android.support.v4.content.PermissionChecker.PERMISSION_DENIED;
3540
import static android.support.v4.content.PermissionChecker.PERMISSION_GRANTED;
3641
import static net.sharksystem.asap.ASAPEngineFS.DEFAULT_ROOT_FOLDER_NAME;
3742

38-
public class ASAPApplication extends BroadcastReceiver {
43+
// TODO inherit from ASAPBasicAbstractPeer
44+
public class ASAPApplication extends BroadcastReceiver implements ASAPSimplePeer {
3945
private static final int MY_ASK_FOR_PERMISSIONS_REQUEST = 100;
4046
private static ASAPApplication singleton;
4147
private Collection<CharSequence> supportedFormats;
@@ -54,7 +60,7 @@ public class ASAPApplication extends BroadcastReceiver {
5460
private List<String> grantedPermissions = new ArrayList<>();
5561
private List<String> deniedPermissions = new ArrayList<>();
5662
private int activityASAPActivities = 0;
57-
private List<CharSequence> onlinePeerList = new ArrayList<>();
63+
private Set<CharSequence> onlinePeerList = new HashSet<>();
5864

5965
/**
6066
* Setup application using default setting
@@ -463,7 +469,12 @@ public void chunkReceived(String format, String sender, String uri, String folde
463469
}
464470

465471
for(ASAPMessageReceivedListener messageListener : messageListeners) {
466-
messageListener.asapMessagesReceived(asapMessages);
472+
try {
473+
messageListener.asapMessagesReceived(asapMessages);
474+
} catch (IOException e) {
475+
Log.e(this.getLogStart(), "calling messageReceivedListener: "
476+
+ e.getLocalizedMessage());
477+
}
467478
}
468479
}
469480
}
@@ -499,6 +510,7 @@ public final void removeASAPUriContentChangedListener(
499510
* @param format
500511
* @param listener
501512
*/
513+
@Override
502514
public final void addASAPMessageReceivedListener(CharSequence format,
503515
ASAPMessageReceivedListener listener) {
504516
Log.d(this.getLogStart(), "going to add asap message receiver for " + format);
@@ -513,6 +525,7 @@ public final void addASAPMessageReceivedListener(CharSequence format,
513525
messageListeners.add(listener);
514526
}
515527

528+
@Override
516529
public final void removeASAPMessageReceivedListener(CharSequence format,
517530
ASAPMessageReceivedListener listener) {
518531
Collection<ASAPMessageReceivedListener> messageListeners =
@@ -525,11 +538,11 @@ public final void removeASAPMessageReceivedListener(CharSequence format,
525538
}
526539
}
527540

528-
public List<CharSequence> getOnlinePeerList() {
541+
public Set<CharSequence> getOnlinePeerList() {
529542
return this.onlinePeerList;
530543
}
531544

532-
public void setOnlinePeersList(List<CharSequence> peerList) {
545+
public void setOnlinePeersList(Set<CharSequence> peerList) {
533546
StringBuilder sb = new StringBuilder();
534547
sb.append(this.getLogStart());
535548
sb.append("#online peers: ");
@@ -549,6 +562,9 @@ public void setOnlinePeersList(List<CharSequence> peerList) {
549562
}
550563

551564
this.onlinePeerList = peerList;
565+
566+
// notify listeners
567+
this.environmentChangesListenerManager.notifyListeners(this.onlinePeerList);
552568
}
553569

554570
public void setupDrawerLayout(Activity activity) {
@@ -560,4 +576,45 @@ private String getLogStart() {
560576
// return "ASAPApplication(" + objectID + ")";
561577
return "ASAPApplication";
562578
}
579+
580+
///////////////////////////////////////////////////////////////////////////////////////////////
581+
// ASAPSimplePeer //
582+
///////////////////////////////////////////////////////////////////////////////////////////////
583+
584+
@Override
585+
public CharSequence getPeerName() {
586+
return this.asapOwner;
587+
}
588+
589+
590+
///////////////////////////////////////////////////////////////////////////////////////////////
591+
// ASAPEnvironmentChangesListener //
592+
///////////////////////////////////////////////////////////////////////////////////////////////
593+
594+
private ASAPEnvironmentChangesListenerManager environmentChangesListenerManager =
595+
new ASAPEnvironmentChangesListenerManager();
596+
597+
@Override
598+
public void addASAPEnvironmentChangesListener(ASAPEnvironmentChangesListener listener) {
599+
this.environmentChangesListenerManager.addASAPEnvironmentChangesListener(listener);
600+
}
601+
602+
@Override
603+
public void removeASAPEnvironmentChangesListener(ASAPEnvironmentChangesListener listener) {
604+
this.environmentChangesListenerManager.removeASAPEnvironmentChangesListener(listener);
605+
}
606+
607+
@Override
608+
public void sendASAPMessage(CharSequence format, CharSequence uri, byte[] message)
609+
throws ASAPException {
610+
611+
Activity activity = this.getActivity();
612+
if(activity == null) throw new ASAPException("no active activity");
613+
614+
if(! (activity instanceof ASAPActivity))
615+
throw new ASAPException("current activity not derived from ASAPActivity");
616+
617+
ASAPActivity asapActivity = (ASAPActivity)activity;
618+
asapActivity.sendASAPMessage(format, uri, message, true);
619+
}
563620
}

app/src/main/java/net/sharksystem/asap/android/apps/ASAPMessageReceivedListener.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

app/src/main/java/net/sharksystem/asap/android/example/ASAPExampleActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import net.sharksystem.asap.android.R;
1414

1515
import java.io.IOException;
16-
import java.util.List;
16+
import java.util.Set;
1717

1818
import static net.sharksystem.asap.android.example.ASAPExampleApplication.ASAP_EXAMPLE_APPNAME;
1919

@@ -68,7 +68,7 @@ else if(view == findViewById(R.id.startDiscoverableAndDiscovery)) {
6868
// changes in active layer 2 connections //
6969
///////////////////////////////////////////////////////////////////////////////////////////
7070

71-
public void asapNotifyOnlinePeersChanged(List<CharSequence> onlinePeerList) {
71+
public void asapNotifyOnlinePeersChanged(Set<CharSequence> onlinePeerList) {
7272
super.asapNotifyOnlinePeersChanged(onlinePeerList);
7373

7474
TextView peerListTextView = this.findViewById(R.id.onlinePeersList);

app/src/main/java/net/sharksystem/asap/android/example/ASAPExampleMessagingActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
import net.sharksystem.asap.ASAPException;
1111
import net.sharksystem.asap.android.R;
12-
import net.sharksystem.asap.android.apps.ASAPMessageReceivedListener;
1312
import net.sharksystem.asap.ASAPMessages;
13+
import net.sharksystem.asap.apps.ASAPMessageReceivedListener;
1414

1515
import java.io.IOException;
1616
import java.util.ArrayList;

app/src/main/java/net/sharksystem/asap/android/service2AppMessaging/ASAPServiceNotificationListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package net.sharksystem.asap.android.service2AppMessaging;
22

3-
import java.util.List;
3+
import java.util.Set;
44

55
public interface ASAPServiceNotificationListener {
66
void asapNotifyBTDiscoverableStopped();
@@ -15,5 +15,5 @@ public interface ASAPServiceNotificationListener {
1515

1616
void asapNotifyBTEnvironmentStopped();
1717

18-
void asapNotifyOnlinePeersChanged(List<CharSequence> peerList);
18+
void asapNotifyOnlinePeersChanged(Set<CharSequence> peerList);
1919
}

app/src/main/java/net/sharksystem/asap/android/service2AppMessaging/ASAPServiceRequestNotifyBroadcastReceiver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import net.sharksystem.asap.util.Helper;
1010

1111
import java.util.List;
12+
import java.util.Set;
1213

1314
public class ASAPServiceRequestNotifyBroadcastReceiver extends BroadcastReceiver {
1415
private final ASAPServiceRequestListener requestListener;
@@ -84,8 +85,8 @@ public void onReceive(Context context, Intent intent) {
8485
Log.d(this.getLogStart(), "notified online peers changed");
8586
String peers = intent.getStringExtra(ASAPServiceRequestNotifyIntent.ASAP_PARAMETER_1);
8687
Log.d(this.getLogStart(), "new peers: " + peers);
87-
List<CharSequence> peersList = Helper.string2CharSequenceList(peers);
88-
this.notificationListener.asapNotifyOnlinePeersChanged(peersList);
88+
Set<CharSequence> peersSet = Helper.string2CharSequenceSet(peers);
89+
this.notificationListener.asapNotifyOnlinePeersChanged(peersSet);
8990
break;
9091

9192
default:

0 commit comments

Comments
 (0)