diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 37827cb..f39d433 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,7 +35,7 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/java/org/mercury_im/messenger/MercuryImApplication.java b/app/src/main/java/org/mercury_im/messenger/MercuryImApplication.java
index a2270f6..82c5af4 100644
--- a/app/src/main/java/org/mercury_im/messenger/MercuryImApplication.java
+++ b/app/src/main/java/org/mercury_im/messenger/MercuryImApplication.java
@@ -12,7 +12,7 @@ import android.os.Build;
import org.mercury_im.messenger.di.component.AppComponent;
import org.mercury_im.messenger.di.component.DaggerAppComponent;
import org.mercury_im.messenger.di.module.AppModule;
-import org.mercury_im.messenger.service.XmppConnectionService;
+import org.mercury_im.messenger.service.MercuryConnectionService;
import org.mercury_im.messenger.util.AbstractActivityLifecycleCallbacks;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -21,8 +21,6 @@ import java.util.concurrent.atomic.AtomicInteger;
public class MercuryImApplication extends Application {
- public static final String TAG = "Mercury-IM";
-
static {
// Initialize Smack etc.
// new MercuryConfiguration();
@@ -54,9 +52,9 @@ public class MercuryImApplication extends Application {
initializeNotificationChannels(this);
- Intent serviceIntent = new Intent(getApplicationContext(), XmppConnectionService.class);
+ Intent serviceIntent = new Intent(getApplicationContext(), MercuryConnectionService.class);
- serviceIntent.setAction(XmppConnectionService.ACTION_START);
+ serviceIntent.setAction(MercuryConnectionService.ACTION_START);
if (Build.VERSION.SDK_INT < 26) {
startService(serviceIntent);
} else {
diff --git a/app/src/main/java/org/mercury_im/messenger/di/component/AppComponent.java b/app/src/main/java/org/mercury_im/messenger/di/component/AppComponent.java
index 84ff078..8c8f752 100644
--- a/app/src/main/java/org/mercury_im/messenger/di/component/AppComponent.java
+++ b/app/src/main/java/org/mercury_im/messenger/di/component/AppComponent.java
@@ -1,11 +1,10 @@
package org.mercury_im.messenger.di.component;
import org.mercury_im.messenger.MercuryImApplication;
-import org.mercury_im.messenger.data.di.MappingModule;
import org.mercury_im.messenger.data.di.RepositoryModule;
import org.mercury_im.messenger.di.module.AndroidPersistenceModule;
import org.mercury_im.messenger.di.module.AppModule;
-import org.mercury_im.messenger.service.XmppConnectionService;
+import org.mercury_im.messenger.service.MercuryConnectionService;
import org.mercury_im.messenger.ui.MainActivity;
import org.mercury_im.messenger.ui.chat.ChatActivity;
import org.mercury_im.messenger.ui.chat.ChatInputFragment;
@@ -67,6 +66,6 @@ public interface AppComponent {
// Services
- void inject(XmppConnectionService service);
+ void inject(MercuryConnectionService service);
}
diff --git a/app/src/main/java/org/mercury_im/messenger/service/XmppConnectionService.java b/app/src/main/java/org/mercury_im/messenger/service/MercuryConnectionService.java
similarity index 65%
rename from app/src/main/java/org/mercury_im/messenger/service/XmppConnectionService.java
rename to app/src/main/java/org/mercury_im/messenger/service/MercuryConnectionService.java
index 8f5ce85..981bd31 100644
--- a/app/src/main/java/org/mercury_im/messenger/service/XmppConnectionService.java
+++ b/app/src/main/java/org/mercury_im/messenger/service/MercuryConnectionService.java
@@ -6,7 +6,6 @@ import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
-import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
@@ -22,36 +21,16 @@ import org.mercury_im.messenger.ui.MainActivity;
* Started, Bound Service, which is responsible for managing {@link XMPPConnection XMPPConnections}
* affiliated with registered accounts.
*/
-public class XmppConnectionService extends Service {
-
- private static final String TAG = MercuryImApplication.TAG;
+public class MercuryConnectionService extends Service {
private static final String APP = "org.mercury-im.messenger";
- private static final String SERVICE = APP + ".XmppConnectionService";
+ private static final String SERVICE = APP + ".MercuryConnectionService";
private static final String ACTION = SERVICE + ".ACTION";
- private static final String EVENT = SERVICE + ".EVENT";
- private static final String EXTRA = SERVICE + ".EXTRA";
- private static final String STATUS = SERVICE + ".STATUS";
// ACTIONS
public static final String ACTION_START = ACTION + ".START";
public static final String ACTION_STOP = ACTION + ".STOP";
- public static final String ACTION_CONNECT = ACTION + ".CONNECT";
- public static final String ACTION_DISCONNECT = ACTION + ".DISCONNECT";
- public static final String ACTION_PING = ACTION + ".PING";
-
- // EVENTS
- public static final String EVENT_INCOMING_MESSAGE = EVENT + ".INCOMING_MESSAGE";
- public static final String EVENT_OUTGOING_MESSAGE = EVENT + ".OUTGOING_MESSAGE";
-
- // EXTRAS
- public static final String EXTRA_CONFIGURATION = EXTRA + ".CONFIGURATION";
- public static final String EXTRA_ACCOUNT_ID = EXTRA + ".ACCOUNT_ID";
-
- // STATUSES
- public static final String STATUS_SUCCESS = STATUS + ".SUCCESS";
- public static final String STATUS_FAILURE = STATUS + ".FAILURE";
@NonNull
@@ -63,27 +42,31 @@ public class XmppConnectionService extends Service {
@Override
public void onCreate() {
super.onCreate();
- Log.d(TAG, "onCreate()");
MercuryImApplication.getApplication().getAppComponent().inject(this);
+ beginLifecycleOfPingManager();
+ }
- // Begin life cycle of Ping Manager.
- // The Manager will automatically detect newly created connections and ping the server
- // every half hour if necessary.
+ /**
+ * PingManager will ensure the XMPP connection is kept alive.
+ * TODO: Move out of this service/module
+ */
+ private void beginLifecycleOfPingManager() {
ServerPingWithAlarmManager.onCreate(this);
}
@Override
public void onDestroy() {
super.onDestroy();
- Log.d(TAG, "onDestroy()");
- // End life cycle of Ping Manager.
+ endLifecycleOfPingManager();
+ }
+
+ private void endLifecycleOfPingManager() {
ServerPingWithAlarmManager.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
- Log.d(TAG, "onStartCommand(" + intent + ")");
if (intent == null) {
startAndDisplayForegroundNotification();
} else {
@@ -107,7 +90,6 @@ public class XmppConnectionService extends Service {
}
public void startAndDisplayForegroundNotification() {
- Log.d(TAG, "startAndDisplayForegroundNotification()");
Notification notification = getForegroundNotification(getApplicationContext());
startForeground(Notifications.FOREGROUND_SERVICE_ID, notification);
@@ -126,13 +108,13 @@ public class XmppConnectionService extends Service {
public class Binder extends android.os.Binder {
- private final XmppConnectionService service;
+ private final MercuryConnectionService service;
- public Binder(XmppConnectionService service) {
+ public Binder(MercuryConnectionService service) {
this.service = service;
}
- public XmppConnectionService getService() {
+ public MercuryConnectionService getService() {
return service;
}
}
diff --git a/app/src/main/java/org/mercury_im/messenger/ui/chat/ChatInputFragment.java b/app/src/main/java/org/mercury_im/messenger/ui/chat/ChatInputFragment.java
index 9a02bff..1de0c9f 100644
--- a/app/src/main/java/org/mercury_im/messenger/ui/chat/ChatInputFragment.java
+++ b/app/src/main/java/org/mercury_im/messenger/ui/chat/ChatInputFragment.java
@@ -1,6 +1,5 @@
package org.mercury_im.messenger.ui.chat;
-import static org.mercury_im.messenger.MercuryImApplication.TAG;
import android.content.Context;
import android.os.Bundle;
@@ -14,7 +13,7 @@ import android.widget.ImageButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -48,7 +47,6 @@ public class ChatInputFragment extends Fragment implements View.OnClickListener
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
- Log.d(TAG, "onCreateView");
View view = inflater.inflate(R.layout.view_compose, container, false);
ButterKnife.bind(this, view);
return view;
@@ -57,7 +55,7 @@ public class ChatInputFragment extends Fragment implements View.OnClickListener
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- mViewModel = ViewModelProviders.of(this).get(ChatInputViewModel.class);
+ mViewModel = new ViewModelProvider(this).get(ChatInputViewModel.class);
observeViewModel(mViewModel);
}
@@ -97,7 +95,6 @@ public class ChatInputFragment extends Fragment implements View.OnClickListener
@Override
@OnClick({R.id.btn_send, R.id.btn_media, R.id.btn_emoji})
public void onClick(View view) {
- Log.d(TAG, "onClick!");
switch (view.getId()) {
// Add media
case R.id.btn_media:
diff --git a/app/src/main/java/org/mercury_im/messenger/ui/chatlist/ChatListFragment.java b/app/src/main/java/org/mercury_im/messenger/ui/chatlist/ChatListFragment.java
index 468c041..fa4aca3 100644
--- a/app/src/main/java/org/mercury_im/messenger/ui/chatlist/ChatListFragment.java
+++ b/app/src/main/java/org/mercury_im/messenger/ui/chatlist/ChatListFragment.java
@@ -1,6 +1,5 @@
package org.mercury_im.messenger.ui.chatlist;
-import static org.mercury_im.messenger.MercuryImApplication.TAG;
import android.content.Context;
import android.os.Bundle;
@@ -13,7 +12,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
@@ -21,6 +20,7 @@ import com.google.android.material.floatingactionbutton.ExtendedFloatingActionBu
import butterknife.BindView;
import butterknife.ButterKnife;
+import org.mercury_im.messenger.Messenger;
import org.mercury_im.messenger.R;
public class ChatListFragment extends Fragment {
@@ -61,13 +61,13 @@ public class ChatListFragment extends Fragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
- viewModel = ViewModelProviders.of(getActivity()).get(ChatListViewModel.class);
+ viewModel = new ViewModelProvider(getActivity()).get(ChatListViewModel.class);
viewModel.getChats().observe(this, chatModels -> {
if (chatModels == null) {
- Log.d(TAG, "Displaying null chats");
+ Log.d(Messenger.TAG, "Displaying null chats");
return;
}
- Log.d(TAG, "Displaying " + chatModels.size() + " chats");
+ Log.d(Messenger.TAG, "Displaying " + chatModels.size() + " chats");
recyclerViewAdapter.setModels(chatModels);
});
}
diff --git a/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsFragment.java b/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsFragment.java
index 094bae9..07ac534 100644
--- a/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsFragment.java
+++ b/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsFragment.java
@@ -63,7 +63,6 @@ public class AccountsFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- Log.d(MercuryImApplication.TAG, "AccountsFragment.onCreateView");
View view = inflater.inflate(R.layout.fragment_account_list, container, false);
ButterKnife.bind(this, view);
viewModel = new ViewModelProvider(this).get(AccountsViewModel.class);
diff --git a/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsRecyclerViewAdapter.java b/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsRecyclerViewAdapter.java
index 564494e..aba0233 100644
--- a/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsRecyclerViewAdapter.java
+++ b/app/src/main/java/org/mercury_im/messenger/ui/login/AccountsRecyclerViewAdapter.java
@@ -12,6 +12,7 @@ import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.RecyclerView;
import org.mercury_im.messenger.MercuryImApplication;
+import org.mercury_im.messenger.Messenger;
import org.mercury_im.messenger.R;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.ui.login.AccountsFragment.OnAccountListItemClickListener;
@@ -74,7 +75,7 @@ public class AccountsRecyclerViewAdapter extends RecyclerView.Adapter() {
@Override
public void onSuccess(Account inserted) {
- Log.d(MercuryImApplication.TAG, "LoginActivity.loginDetailsEntered: Account " + inserted.getId() + " inserted.");
// connectionCenter.createConnection(account);
signinSuccessful.setValue(true);
}
diff --git a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppAccountRepository.java b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppAccountRepository.java
index 57f159b..aae3f4b 100644
--- a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppAccountRepository.java
+++ b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppAccountRepository.java
@@ -3,7 +3,7 @@ package org.mercury_im.messenger.data.repository;
import org.mercury_im.messenger.data.mapping.AccountMapping;
import org.mercury_im.messenger.data.model.AccountModel;
import org.mercury_im.messenger.data.repository.dao.AccountDao;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.util.ThreadUtils;
diff --git a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java
index ea3604c..ce37e84 100644
--- a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java
+++ b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppDirectChatRepository.java
@@ -1,11 +1,9 @@
package org.mercury_im.messenger.data.repository;
-import org.mercury_im.messenger.data.mapping.AccountMapping;
import org.mercury_im.messenger.data.mapping.DirectChatMapping;
-import org.mercury_im.messenger.data.mapping.PeerMapping;
import org.mercury_im.messenger.data.model.DirectChatModel;
import org.mercury_im.messenger.data.repository.dao.DirectChatDao;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import org.mercury_im.messenger.entity.chat.DirectChat;
import org.mercury_im.messenger.entity.chat.IDirectChat;
import org.mercury_im.messenger.entity.contact.Peer;
diff --git a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppGroupChatRepository.java b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppGroupChatRepository.java
index 99a5b69..fec5567 100644
--- a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppGroupChatRepository.java
+++ b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppGroupChatRepository.java
@@ -3,7 +3,7 @@ package org.mercury_im.messenger.data.repository;
import org.mercury_im.messenger.data.mapping.GroupChatMapping;
import org.mercury_im.messenger.data.model.GroupChatModel;
import org.mercury_im.messenger.data.repository.dao.GroupChatDao;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.entity.chat.GroupChat;
import org.mercury_im.messenger.entity.chat.IGroupChat;
diff --git a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppPeerRepository.java b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppPeerRepository.java
index 2d18c3a..bb7d894 100644
--- a/data/src/main/java/org/mercury_im/messenger/data/repository/XmppPeerRepository.java
+++ b/data/src/main/java/org/mercury_im/messenger/data/repository/XmppPeerRepository.java
@@ -2,7 +2,7 @@ package org.mercury_im.messenger.data.repository;
import org.mercury_im.messenger.data.mapping.PeerMapping;
import org.mercury_im.messenger.data.model.PeerModel;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.entity.contact.IPeer;
import org.mercury_im.messenger.entity.contact.Peer;
diff --git a/domain/src/main/java/org/mercury_im/messenger/Messenger.java b/domain/src/main/java/org/mercury_im/messenger/Messenger.java
index a3cb79d..75fab40 100644
--- a/domain/src/main/java/org/mercury_im/messenger/Messenger.java
+++ b/domain/src/main/java/org/mercury_im/messenger/Messenger.java
@@ -13,6 +13,8 @@ import javax.inject.Inject;
public class Messenger {
+ public static final String TAG = "MercuryIM";
+
private final Map connections = new HashMap<>();
@Inject
@@ -33,4 +35,12 @@ public class Messenger {
public ConnectionMethod getConnection(Account account) {
return connections.get(account.getId());
}
+
+ public void appInUse() {
+
+ }
+
+ public void appInBackground() {
+
+ }
}
diff --git a/domain/src/main/java/org/mercury_im/messenger/data/repository/AccountRepository.java b/domain/src/main/java/org/mercury_im/messenger/data/repository/AccountRepository.java
index f24af5c..7138482 100644
--- a/domain/src/main/java/org/mercury_im/messenger/data/repository/AccountRepository.java
+++ b/domain/src/main/java/org/mercury_im/messenger/data/repository/AccountRepository.java
@@ -1,7 +1,7 @@
package org.mercury_im.messenger.data.repository;
import org.mercury_im.messenger.entity.Account;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import java.util.List;
diff --git a/domain/src/main/java/org/mercury_im/messenger/data/repository/DirectChatRepository.java b/domain/src/main/java/org/mercury_im/messenger/data/repository/DirectChatRepository.java
index 1970954..ed592d0 100644
--- a/domain/src/main/java/org/mercury_im/messenger/data/repository/DirectChatRepository.java
+++ b/domain/src/main/java/org/mercury_im/messenger/data/repository/DirectChatRepository.java
@@ -1,9 +1,8 @@
package org.mercury_im.messenger.data.repository;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import org.mercury_im.messenger.entity.chat.DirectChat;
import org.mercury_im.messenger.entity.contact.Peer;
-import org.mercury_im.messenger.entity.message.Message;
import java.util.List;
diff --git a/domain/src/main/java/org/mercury_im/messenger/data/repository/GroupChatRepository.java b/domain/src/main/java/org/mercury_im/messenger/data/repository/GroupChatRepository.java
index a5d6ebb..a86abad 100644
--- a/domain/src/main/java/org/mercury_im/messenger/data/repository/GroupChatRepository.java
+++ b/domain/src/main/java/org/mercury_im/messenger/data/repository/GroupChatRepository.java
@@ -2,8 +2,7 @@ package org.mercury_im.messenger.data.repository;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.entity.chat.GroupChat;
-import org.mercury_im.messenger.entity.message.Message;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import java.util.List;
diff --git a/domain/src/main/java/org/mercury_im/messenger/data/repository/PeerRepository.java b/domain/src/main/java/org/mercury_im/messenger/data/repository/PeerRepository.java
index 8e081e0..cb4a64d 100644
--- a/domain/src/main/java/org/mercury_im/messenger/data/repository/PeerRepository.java
+++ b/domain/src/main/java/org/mercury_im/messenger/data/repository/PeerRepository.java
@@ -1,6 +1,6 @@
package org.mercury_im.messenger.data.repository;
-import org.mercury_im.messenger.data.util.Optional;
+import org.mercury_im.messenger.util.Optional;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.entity.contact.Peer;
diff --git a/domain/src/main/java/org/mercury_im/messenger/data/util/Optional.java b/domain/src/main/java/org/mercury_im/messenger/util/Optional.java
similarity index 89%
rename from domain/src/main/java/org/mercury_im/messenger/data/util/Optional.java
rename to domain/src/main/java/org/mercury_im/messenger/util/Optional.java
index c334483..ced8945 100644
--- a/domain/src/main/java/org/mercury_im/messenger/data/util/Optional.java
+++ b/domain/src/main/java/org/mercury_im/messenger/util/Optional.java
@@ -1,4 +1,4 @@
-package org.mercury_im.messenger.data.util;
+package org.mercury_im.messenger.util;
/**
* Since j.u.Optional is only available on Android since API lvl 24, we need this utility class.