diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5cb1fb1..19861c3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -84,13 +84,6 @@
-
-
-
0;
+ }
+
@Override
public void cleanup() {
SQLiteDatabase db = sql.getWritableDatabase();
diff --git a/app/src/main/java/ch/dissem/apps/abit/repositories/AndroidMessageRepository.java b/app/src/main/java/ch/dissem/apps/abit/repositories/AndroidMessageRepository.java
index b290834..30bacb8 100644
--- a/app/src/main/java/ch/dissem/apps/abit/repositories/AndroidMessageRepository.java
+++ b/app/src/main/java/ch/dissem/apps/abit/repositories/AndroidMessageRepository.java
@@ -21,6 +21,7 @@ import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteConstraintException;
import android.database.sqlite.SQLiteDatabase;
+
import ch.dissem.apps.abit.R;
import ch.dissem.bitmessage.InternalContext;
import ch.dissem.bitmessage.entity.BitmessageAddress;
@@ -29,6 +30,7 @@ import ch.dissem.bitmessage.entity.valueobject.InventoryVector;
import ch.dissem.bitmessage.entity.valueobject.Label;
import ch.dissem.bitmessage.ports.MessageRepository;
import ch.dissem.bitmessage.utils.Encode;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -184,6 +186,11 @@ public class AndroidMessageRepository implements MessageRepository, InternalCont
return find("status='" + status.name() + "' AND recipient='" + recipient.getAddress() + "'");
}
+ @Override
+ public List findMessages(BitmessageAddress sender) {
+ return find("sender=" + sender.getAddress());
+ }
+
@Override
public List findMessages(Plaintext.Status status) {
return find("status='" + status.name() + "'");
diff --git a/app/src/main/java/ch/dissem/apps/abit/service/BitmessageService.java b/app/src/main/java/ch/dissem/apps/abit/service/BitmessageService.java
deleted file mode 100644
index a55d3e1..0000000
--- a/app/src/main/java/ch/dissem/apps/abit/service/BitmessageService.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package ch.dissem.apps.abit.service;
-
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.IBinder;
-import android.support.v7.app.NotificationCompat;
-import ch.dissem.apps.abit.R;
-import ch.dissem.bitmessage.BitmessageContext;
-import ch.dissem.bitmessage.entity.BitmessageAddress;
-import ch.dissem.bitmessage.entity.Plaintext;
-import ch.dissem.bitmessage.entity.valueobject.Label;
-
-import java.util.List;
-
-public class BitmessageService extends Service {
- private static BitmessageContext ctx;
- private ServiceBinder binder = new ServiceBinder();
- private NotificationCompat.Builder ongoingNotificationBuilder = new NotificationCompat.Builder(this);
- private NotificationManager notifyManager;
-
- public BitmessageService() {
- if (ctx == null) {
- ctx = Singleton.getBitmessageContext(this);
- }
- }
-
- @Override
- public void onCreate() {
- super.onCreate();
- ongoingNotificationBuilder.setOngoing(true);
- ongoingNotificationBuilder.setContentTitle(getString(R.string.bitmessage_active));
- ongoingNotificationBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
-// ongoingNotificationBuilder.setSmallIcon(R.drawable.ic_bitmessage);
- notifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- }
-
- public void startService() {
- if (!ctx.isRunning()) {
- notifyManager.notify(0, ongoingNotificationBuilder.build());
- ctx.startup(new BitmessageContext.Listener() {
- @Override
- public void receive(Plaintext plaintext) {
- Notification notification = new NotificationCompat.Builder(BitmessageService.this)
- .setContentTitle(plaintext.getSubject())
- .setContentText(plaintext.getText())
- .setVisibility(NotificationCompat.VISIBILITY_PRIVATE)
- .setPriority(plaintext.getType() == Plaintext.Type.BROADCAST
- ? NotificationCompat.PRIORITY_DEFAULT
- : NotificationCompat.PRIORITY_HIGH)
- .build();
- notifyManager.notify(plaintext.getInventoryVector().hashCode(), notification);
- }
- });
- }
- }
-
- public void stopService() {
- ctx.shutdown();
- notifyManager.cancel(0);
- }
-
- public List getIdentities() {
- return ctx.addresses().getIdentities();
- }
-
- public List getContacts() {
- return ctx.addresses().getContacts();
- }
-
- public List getMessages(Label label) {
- return ctx.messages().findMessages(label);
- }
-
- @Override
- public IBinder onBind(Intent intent) {
- return binder;
- }
-
- public class ServiceBinder extends Binder {
- public BitmessageService getService() {
- return BitmessageService.this;
- }
- }
-
- public enum NetworkChoice {
- /**
- * A full node, receiving and relaying objects all the time.
- */
- FULL,
- /**
- * Connect to a trusted node from time to time to get all new objects and disconnect afterwards
- * (see {@link android.content.AbstractThreadedSyncAdapter})
- */
- TRUSTED,
- /**
- * Offline
- */
- NONE
- }
-}
diff --git a/app/src/main/java/ch/dissem/apps/abit/service/Singleton.java b/app/src/main/java/ch/dissem/apps/abit/service/Singleton.java
index 46b46e1..76c3301 100644
--- a/app/src/main/java/ch/dissem/apps/abit/service/Singleton.java
+++ b/app/src/main/java/ch/dissem/apps/abit/service/Singleton.java
@@ -1,6 +1,8 @@
package ch.dissem.apps.abit.service;
+import android.app.NotificationManager;
import android.content.Context;
+
import ch.dissem.apps.abit.listeners.MessageListener;
import ch.dissem.apps.abit.repositories.AndroidAddressRepository;
import ch.dissem.apps.abit.repositories.AndroidInventory;
@@ -18,11 +20,11 @@ public class Singleton {
private static BitmessageContext bitmessageContext;
private static MessageListener messageListener;
- public static BitmessageContext getBitmessageContext(Context ctx) {
+ public static BitmessageContext getBitmessageContext(Context context) {
if (bitmessageContext == null) {
synchronized (Singleton.class) {
if (bitmessageContext == null) {
- ctx = ctx.getApplicationContext();
+ final Context ctx = context.getApplicationContext();
SqlHelper sqlHelper = new SqlHelper(ctx);
bitmessageContext = new BitmessageContext.Builder()
.security(new SpongySecurity())
@@ -31,6 +33,7 @@ public class Singleton {
.addressRepo(new AndroidAddressRepository(sqlHelper))
.messageRepo(new AndroidMessageRepository(sqlHelper, ctx))
.networkHandler(new DefaultNetworkHandler())
+ .listener(getMessageListener(ctx))
.build();
}
}
diff --git a/app/src/main/res/layout-sw600dp/activity_message_list.xml b/app/src/main/res/layout-sw600dp/activity_message_list.xml
index d1b7b00..e955b6b 100644
--- a/app/src/main/res/layout-sw600dp/activity_message_list.xml
+++ b/app/src/main/res/layout-sw600dp/activity_message_list.xml
@@ -1,4 +1,5 @@
@@ -8,7 +9,9 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
- android:elevation="4dp"/>
+ android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
+ android:elevation="4dp" />